@tatchi-xyz/sdk 0.21.0 → 0.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cjs/_virtual/rolldown_runtime.js +0 -13
- package/dist/cjs/base-styles.js +0 -1
- package/dist/cjs/base-styles.js.map +1 -1
- package/dist/cjs/build-paths.js +0 -1
- package/dist/cjs/build-paths.js.map +1 -1
- package/dist/cjs/config.js +0 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/core/ChainsigAddressManager/index.js +0 -3
- package/dist/cjs/core/ChainsigAddressManager/index.js.map +1 -1
- package/dist/cjs/core/EmailRecovery/emailRecoveryPendingStore.js +48 -60
- package/dist/cjs/core/EmailRecovery/emailRecoveryPendingStore.js.map +1 -1
- package/dist/cjs/core/EmailRecovery/index.js +19 -34
- package/dist/cjs/core/EmailRecovery/index.js.map +1 -1
- package/dist/cjs/core/ExtensionWallet/detect.js +0 -1
- package/dist/cjs/core/ExtensionWallet/detect.js.map +1 -1
- package/dist/cjs/core/IndexedDBManager/index.js +85 -92
- package/dist/cjs/core/IndexedDBManager/index.js.map +1 -1
- package/dist/cjs/core/IndexedDBManager/passkeyClientDB.js +648 -646
- package/dist/cjs/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
- package/dist/cjs/core/IndexedDBManager/passkeyNearKeysDB.js +223 -154
- package/dist/cjs/core/IndexedDBManager/passkeyNearKeysDB.js.map +1 -1
- package/dist/cjs/core/NearClient.js +9 -8
- package/dist/cjs/core/NearClient.js.map +1 -1
- package/dist/cjs/core/NearRpcError.js +0 -1
- package/dist/cjs/core/NearRpcError.js.map +1 -1
- package/dist/cjs/core/OfflineExport/overlay.js +0 -1
- package/dist/cjs/core/OfflineExport/overlay.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/actions.js +86 -132
- package/dist/cjs/core/TatchiPasskey/actions.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/delegateAction.js +4 -4
- package/dist/cjs/core/TatchiPasskey/delegateAction.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/emailRecovery.js +866 -852
- package/dist/cjs/core/TatchiPasskey/emailRecovery.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/faucets/createAccountRelayServer.js +28 -16
- package/dist/cjs/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/index.js +128 -91
- package/dist/cjs/core/TatchiPasskey/index.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/linkDevice.js +85 -30
- package/dist/cjs/core/TatchiPasskey/linkDevice.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/login.js +372 -193
- package/dist/cjs/core/TatchiPasskey/login.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/registration.js +189 -77
- package/dist/cjs/core/TatchiPasskey/registration.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/relay.js +0 -2
- package/dist/cjs/core/TatchiPasskey/relay.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/scanDevice.js +2 -9
- package/dist/cjs/core/TatchiPasskey/scanDevice.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/signNEP413.js +12 -5
- package/dist/cjs/core/TatchiPasskey/signNEP413.js.map +1 -1
- package/dist/cjs/core/TatchiPasskey/syncAccount.js +505 -0
- package/dist/cjs/core/TatchiPasskey/syncAccount.js.map +1 -0
- package/dist/cjs/core/WalletIframe/client/IframeTransport.js +166 -134
- package/dist/cjs/core/WalletIframe/client/IframeTransport.js.map +1 -1
- package/dist/cjs/core/WalletIframe/client/on-events-progress-bus.js +4 -6
- package/dist/cjs/core/WalletIframe/client/on-events-progress-bus.js.map +1 -1
- package/dist/cjs/core/WalletIframe/client/overlay-controller.js +0 -1
- package/dist/cjs/core/WalletIframe/client/overlay-controller.js.map +1 -1
- package/dist/cjs/core/WalletIframe/client/overlay-styles.js +0 -1
- package/dist/cjs/core/WalletIframe/client/overlay-styles.js.map +1 -1
- package/dist/cjs/core/WalletIframe/client/router.js +204 -170
- package/dist/cjs/core/WalletIframe/client/router.js.map +1 -1
- package/dist/cjs/core/WalletIframe/events.js +0 -1
- package/dist/cjs/core/WalletIframe/events.js.map +1 -1
- package/dist/cjs/core/WalletIframe/host-mode.js +4 -1
- package/dist/cjs/core/WalletIframe/host-mode.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +1 -2
- package/dist/cjs/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +5 -15
- package/dist/cjs/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/LitElementWithProps.js +22 -18
- package/dist/cjs/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/index.js +1 -2
- package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/index.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +1 -3
- package/dist/cjs/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/asset-base.js +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/asset-base.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/common/formatters.js +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/common/formatters.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui-types.js +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui.js +3 -5
- package/dist/cjs/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/css/css-loader.js +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/css/css-loader.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/ensure-defined.js +1 -6
- package/dist/cjs/core/WebAuthnManager/LitComponents/ensure-defined.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/lit-events.js +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/lit-events.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/tags.js +0 -31
- package/dist/cjs/core/WebAuthnManager/LitComponents/tags.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +0 -11
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +10 -14
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +5 -9
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +6 -8
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js +46 -0
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js.map +1 -0
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +3 -8
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +0 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +0 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +13 -10
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +204 -48
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +170 -30
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +3 -10
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +274 -86
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +5 -12
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/index.js +15 -10
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js +0 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +15 -5
- package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +1 -4
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +1 -6
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +1 -4
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +1 -11
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +30 -7
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +7 -30
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +0 -3
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +38 -4
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +76 -64
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +0 -3
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +82 -81
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +17 -9
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +8 -6
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +17 -15
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +6 -4
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +36 -4
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +6 -4
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/index.js +37 -4
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +54 -65
- package/dist/cjs/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js +34 -0
- package/dist/cjs/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js.map +1 -0
- package/dist/cjs/core/WebAuthnManager/credentialsHelpers.js +18 -26
- package/dist/cjs/core/WebAuthnManager/credentialsHelpers.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/index.js +355 -53
- package/dist/cjs/core/WebAuthnManager/index.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js +92 -0
- package/dist/cjs/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js.map +1 -0
- package/dist/cjs/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js +144 -0
- package/dist/cjs/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js.map +1 -0
- package/dist/cjs/core/WebAuthnManager/touchIdPrompt.js +200 -211
- package/dist/cjs/core/WebAuthnManager/touchIdPrompt.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/userHandle.js +0 -4
- package/dist/cjs/core/WebAuthnManager/userHandle.js.map +1 -1
- package/dist/cjs/core/WebAuthnManager/userPreferences.js +119 -37
- package/dist/cjs/core/WebAuthnManager/userPreferences.js.map +1 -1
- package/dist/cjs/core/defaultConfigs.js +58 -58
- package/dist/cjs/core/defaultConfigs.js.map +1 -1
- package/dist/cjs/core/digests/intentDigest.js +100 -0
- package/dist/cjs/core/digests/intentDigest.js.map +1 -0
- package/dist/cjs/core/nearCrypto.js +3 -30
- package/dist/cjs/core/nearCrypto.js.map +1 -1
- package/dist/cjs/core/nonceManager.js +6 -16
- package/dist/cjs/core/nonceManager.js.map +1 -1
- package/dist/cjs/core/rpcCalls.js +263 -24
- package/dist/cjs/core/rpcCalls.js.map +1 -1
- package/dist/cjs/core/sdkPaths/base.js +0 -1
- package/dist/cjs/core/sdkPaths/base.js.map +1 -1
- package/dist/cjs/core/sdkPaths/workers.js +7 -6
- package/dist/cjs/core/sdkPaths/workers.js.map +1 -1
- package/dist/cjs/core/threshold/thresholdEd25519AuthSession.js +145 -0
- package/dist/cjs/core/threshold/thresholdEd25519AuthSession.js.map +1 -0
- package/dist/cjs/core/threshold/thresholdEd25519RelayerHealth.js +117 -0
- package/dist/cjs/core/threshold/thresholdEd25519RelayerHealth.js.map +1 -0
- package/dist/cjs/core/threshold/thresholdSessionPolicy.js +67 -0
- package/dist/cjs/core/threshold/thresholdSessionPolicy.js.map +1 -0
- package/dist/cjs/core/types/accountIds.js +0 -11
- package/dist/cjs/core/types/accountIds.js.map +1 -1
- package/dist/cjs/core/types/actions.js +18 -27
- package/dist/cjs/core/types/actions.js.map +1 -1
- package/dist/cjs/core/types/emailRecovery.js +25 -26
- package/dist/cjs/core/types/emailRecovery.js.map +1 -1
- package/dist/cjs/core/types/linkDevice.js +0 -1
- package/dist/cjs/core/types/linkDevice.js.map +1 -1
- package/dist/cjs/core/types/rpc.js +9 -19
- package/dist/cjs/core/types/rpc.js.map +1 -1
- package/dist/cjs/core/types/sdkSentEvents.js +107 -118
- package/dist/cjs/core/types/sdkSentEvents.js.map +1 -1
- package/dist/cjs/core/types/signer-worker.js +94 -18
- package/dist/cjs/core/types/signer-worker.js.map +1 -1
- package/dist/cjs/core/types/vrf-worker.js +3 -13
- package/dist/cjs/core/types/vrf-worker.js.map +1 -1
- package/dist/cjs/core/workerControlMessages.js +0 -1
- package/dist/cjs/core/workerControlMessages.js.map +1 -1
- package/dist/cjs/index.js +9 -25
- package/dist/cjs/plugins/headers.js +3 -11
- package/dist/cjs/plugins/headers.js.map +1 -1
- package/dist/cjs/plugins/next.js +21 -11
- package/dist/cjs/plugins/next.js.map +1 -1
- package/dist/cjs/plugins/plugin-utils.js +1 -7
- package/dist/cjs/plugins/plugin-utils.js.map +1 -1
- package/dist/cjs/plugins/utils/validation.js +29 -0
- package/dist/cjs/plugins/utils/validation.js.map +1 -0
- package/dist/cjs/plugins/vite.js +18 -11
- package/dist/cjs/plugins/vite.js.map +1 -1
- package/dist/cjs/react/_virtual/rolldown_runtime.js +0 -13
- package/dist/cjs/react/build-paths.js +54 -0
- package/dist/cjs/react/build-paths.js.map +1 -0
- package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal-C-RBcCPI.css +452 -0
- package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal-C-RBcCPI.css.map +1 -0
- package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal2.js +6 -5
- package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal2.js.map +1 -1
- package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown-BCW8a1XS.css +120 -0
- package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown-BCW8a1XS.css.map +1 -0
- package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown2.js +3 -1
- package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown2.js.map +1 -1
- package/dist/cjs/react/components/AccountMenuButton/TransactionSettingsSection.js +37 -3
- package/dist/cjs/react/components/AccountMenuButton/TransactionSettingsSection.js.map +1 -1
- package/dist/cjs/react/components/AccountMenuButton/Web3AuthProfileButton-QsQWyQ9D.css +77 -0
- package/dist/cjs/react/components/AccountMenuButton/Web3AuthProfileButton-QsQWyQ9D.css.map +1 -0
- package/dist/cjs/react/components/AccountMenuButton/icons/TouchIcon-BRVcqcso.css +41 -0
- package/dist/cjs/react/components/AccountMenuButton/icons/TouchIcon-BRVcqcso.css.map +1 -0
- package/dist/cjs/react/components/AccountMenuButton/index.js +25 -4
- package/dist/cjs/react/components/AccountMenuButton/index.js.map +1 -1
- package/dist/cjs/react/components/AccountMenuButton/types.js +0 -1
- package/dist/cjs/react/components/AccountMenuButton/types.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-D2eRb2-S.css +1011 -0
- package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-D2eRb2-S.css.map +1 -0
- package/dist/cjs/react/components/PasskeyAuthMenu/adapters/tatchi.js +0 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/adapters/tatchi.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/authMenuTypes.js +2 -3
- package/dist/cjs/react/components/PasskeyAuthMenu/authMenuTypes.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/client.js +10 -10
- package/dist/cjs/react/components/PasskeyAuthMenu/client.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/controller/mode.js +4 -4
- package/dist/cjs/react/components/PasskeyAuthMenu/controller/mode.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/controller/proceedEligibility.js +0 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/controller/proceedEligibility.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.js +3 -3
- package/dist/cjs/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/controller/useSDKEvents.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/features/recentLoginPrefill.js +0 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/features/recentLoginPrefill.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/passkeyAuthMenuCompat.js +0 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/passkeyAuthMenuCompat.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/preload.js +1 -2
- package/dist/cjs/react/components/PasskeyAuthMenu/preload.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/shell.js +52 -13
- package/dist/cjs/react/components/PasskeyAuthMenu/shell.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/skeleton.js +5 -3
- package/dist/cjs/react/components/PasskeyAuthMenu/skeleton.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/ui/AccountExistsBadge.js +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/ui/AccountExistsBadge.js.map +1 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js +280 -367
- package/dist/cjs/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js.map +1 -1
- package/dist/cjs/react/components/ShowQRCode-DGCJv1Cw.css +113 -0
- package/dist/cjs/react/components/ShowQRCode-DGCJv1Cw.css.map +1 -0
- package/dist/cjs/react/components/ShowQRCode2.js +1 -2
- package/dist/cjs/react/components/ShowQRCode2.js.map +1 -1
- package/dist/cjs/react/components/theme/ThemeProvider.js +18 -18
- package/dist/cjs/react/components/theme/ThemeProvider.js.map +1 -1
- package/dist/cjs/react/components/theme/design-tokens.js +1 -2
- package/dist/cjs/react/components/theme/design-tokens.js.map +1 -1
- package/dist/cjs/react/components/theme/utils.js +0 -1
- package/dist/cjs/react/components/theme/utils.js.map +1 -1
- package/dist/cjs/react/context/tatchiManagerSingleton.js +2 -4
- package/dist/cjs/react/context/tatchiManagerSingleton.js.map +1 -1
- package/dist/cjs/react/context/useLoginStateRefresher.js +1 -2
- package/dist/cjs/react/context/useLoginStateRefresher.js.map +1 -1
- package/dist/cjs/react/context/useTatchiContextValue.js +17 -9
- package/dist/cjs/react/context/useTatchiContextValue.js.map +1 -1
- package/dist/cjs/react/context/useTatchiWithSdkFlow.js +9 -10
- package/dist/cjs/react/context/useTatchiWithSdkFlow.js.map +1 -1
- package/dist/cjs/react/context/useWalletIframeLifecycle.js +1 -2
- package/dist/cjs/react/context/useWalletIframeLifecycle.js.map +1 -1
- package/dist/cjs/react/deviceDetection.js +92 -81
- package/dist/cjs/react/deviceDetection.js.map +1 -1
- package/dist/cjs/react/hooks/useAccountInput.js +1 -2
- package/dist/cjs/react/hooks/useAccountInput.js.map +1 -1
- package/dist/cjs/react/hooks/useDeviceLinking.js +1 -1
- package/dist/cjs/react/hooks/useNearClient.js +2 -3
- package/dist/cjs/react/hooks/useNearClient.js.map +1 -1
- package/dist/cjs/react/hooks/usePreconnectWalletAssets.js +1 -1
- package/dist/cjs/react/hooks/useQRCamera.js +1 -2
- package/dist/cjs/react/hooks/useQRCamera.js.map +1 -1
- package/dist/cjs/react/hooks/useQRFileUpload.js +1 -1
- package/dist/cjs/react/index.js +8 -21
- package/dist/cjs/react/src/base-styles.js +20 -0
- package/dist/cjs/react/src/base-styles.js.map +1 -0
- package/dist/cjs/react/src/config.js +34 -0
- package/dist/cjs/react/src/config.js.map +1 -0
- package/dist/cjs/react/src/core/ChainsigAddressManager/index.js +27 -0
- package/dist/cjs/react/src/core/ChainsigAddressManager/index.js.map +1 -0
- package/dist/cjs/react/src/core/EmailRecovery/emailRecoveryPendingStore.js +57 -0
- package/dist/cjs/react/src/core/EmailRecovery/emailRecoveryPendingStore.js.map +1 -0
- package/dist/cjs/react/src/core/EmailRecovery/index.js +99 -0
- package/dist/cjs/react/src/core/EmailRecovery/index.js.map +1 -0
- package/dist/cjs/react/src/core/IndexedDBManager/index.js +133 -0
- package/dist/cjs/react/src/core/IndexedDBManager/index.js.map +1 -0
- package/dist/cjs/react/src/core/IndexedDBManager/passkeyClientDB.js +687 -0
- package/dist/cjs/react/src/core/IndexedDBManager/passkeyClientDB.js.map +1 -0
- package/dist/cjs/react/src/core/IndexedDBManager/passkeyNearKeysDB.js +261 -0
- package/dist/cjs/react/src/core/IndexedDBManager/passkeyNearKeysDB.js.map +1 -0
- package/dist/cjs/react/src/core/NearClient.js +274 -0
- package/dist/cjs/react/src/core/NearClient.js.map +1 -0
- package/dist/cjs/react/src/core/NearRpcError.js +115 -0
- package/dist/cjs/react/src/core/NearRpcError.js.map +1 -0
- package/dist/cjs/react/src/core/OfflineExport/overlay.js +55 -0
- package/dist/cjs/react/src/core/OfflineExport/overlay.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/actions.js +406 -0
- package/dist/cjs/react/src/core/TatchiPasskey/actions.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/delegateAction.js +76 -0
- package/dist/cjs/react/src/core/TatchiPasskey/delegateAction.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/emailRecovery.js +933 -0
- package/dist/cjs/react/src/core/TatchiPasskey/emailRecovery.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +109 -0
- package/dist/cjs/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/index.js +1335 -0
- package/dist/cjs/react/src/core/TatchiPasskey/index.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/linkDevice.js +766 -0
- package/dist/cjs/react/src/core/TatchiPasskey/linkDevice.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/login.js +757 -0
- package/dist/cjs/react/src/core/TatchiPasskey/login.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/registration.js +452 -0
- package/dist/cjs/react/src/core/TatchiPasskey/registration.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/relay.js +110 -0
- package/dist/cjs/react/src/core/TatchiPasskey/relay.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/scanDevice.js +99 -0
- package/dist/cjs/react/src/core/TatchiPasskey/scanDevice.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/signNEP413.js +96 -0
- package/dist/cjs/react/src/core/TatchiPasskey/signNEP413.js.map +1 -0
- package/dist/cjs/react/src/core/TatchiPasskey/syncAccount.js +505 -0
- package/dist/cjs/react/src/core/TatchiPasskey/syncAccount.js.map +1 -0
- package/dist/cjs/react/src/core/WalletIframe/client/IframeTransport.js +362 -0
- package/dist/cjs/react/src/core/WalletIframe/client/IframeTransport.js.map +1 -0
- package/dist/cjs/react/src/core/WalletIframe/client/on-events-progress-bus.js +208 -0
- package/dist/cjs/react/src/core/WalletIframe/client/on-events-progress-bus.js.map +1 -0
- package/dist/cjs/react/src/core/WalletIframe/client/overlay-controller.js +99 -0
- package/dist/cjs/react/src/core/WalletIframe/client/overlay-controller.js.map +1 -0
- package/dist/cjs/react/src/core/WalletIframe/client/overlay-styles.js +127 -0
- package/dist/cjs/react/src/core/WalletIframe/client/overlay-styles.js.map +1 -0
- package/dist/cjs/react/src/core/WalletIframe/client/router.js +1096 -0
- package/dist/cjs/react/src/core/WalletIframe/client/router.js.map +1 -0
- package/dist/cjs/react/src/core/WalletIframe/events.js +10 -0
- package/dist/cjs/react/src/core/WalletIframe/events.js.map +1 -0
- package/dist/cjs/react/src/core/WalletIframe/host-mode.js +14 -0
- package/dist/cjs/react/src/core/WalletIframe/host-mode.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/Drawer/index.js +660 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/Drawer/index.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +222 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js +135 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +189 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +248 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js +261 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js +281 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js +260 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js +146 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/index.js +502 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/index.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js +211 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +181 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/asset-base.js +45 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/asset-base.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js +55 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/common/formatters.js +67 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/common/formatters.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js +9 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js +219 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/css/css-loader.js +109 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/css/css-loader.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/ensure-defined.js +19 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/ensure-defined.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/lit-events.js +34 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/lit-events.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/tags.js +35 -0
- package/dist/cjs/react/src/core/WebAuthnManager/LitComponents/tags.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +28 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +67 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +45 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +71 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js +46 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +64 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +26 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +45 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +121 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +16 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +261 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +220 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +57 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +302 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +75 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/index.js +457 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js +35 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +93 -0
- package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +58 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js +49 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +51 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +31 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js +46 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +44 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +76 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +87 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +17 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +63 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +124 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +148 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +49 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +174 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +127 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js +21 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js +26 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +54 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js +32 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js +30 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js +49 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +158 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +61 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js +26 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +80 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +61 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js +44 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js +53 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js +30 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js +27 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js +29 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js +41 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/index.js +408 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js +25 -0
- package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +199 -0
- package/dist/cjs/react/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js +34 -0
- package/dist/cjs/react/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/credentialsHelpers.js +293 -0
- package/dist/cjs/react/src/core/WebAuthnManager/credentialsHelpers.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/index.js +1192 -0
- package/dist/cjs/react/src/core/WebAuthnManager/index.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js +92 -0
- package/dist/cjs/react/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js +144 -0
- package/dist/cjs/react/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/touchIdPrompt.js +271 -0
- package/dist/cjs/react/src/core/WebAuthnManager/touchIdPrompt.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/userHandle.js +35 -0
- package/dist/cjs/react/src/core/WebAuthnManager/userHandle.js.map +1 -0
- package/dist/cjs/react/src/core/WebAuthnManager/userPreferences.js +390 -0
- package/dist/cjs/react/src/core/WebAuthnManager/userPreferences.js.map +1 -0
- package/dist/cjs/react/src/core/defaultConfigs.js +110 -0
- package/dist/cjs/react/src/core/defaultConfigs.js.map +1 -0
- package/dist/cjs/react/src/core/digests/intentDigest.js +100 -0
- package/dist/cjs/react/src/core/digests/intentDigest.js.map +1 -0
- package/dist/cjs/react/src/core/nearCrypto.js +30 -0
- package/dist/cjs/react/src/core/nearCrypto.js.map +1 -0
- package/dist/cjs/react/src/core/nonceManager.js +393 -0
- package/dist/cjs/react/src/core/nonceManager.js.map +1 -0
- package/dist/cjs/react/src/core/rpcCalls.js +685 -0
- package/dist/cjs/react/src/core/rpcCalls.js.map +1 -0
- package/dist/cjs/react/src/core/sdkPaths/base.js +48 -0
- package/dist/cjs/react/src/core/sdkPaths/base.js.map +1 -0
- package/dist/cjs/react/src/core/sdkPaths/workers.js +46 -0
- package/dist/cjs/react/src/core/sdkPaths/workers.js.map +1 -0
- package/dist/cjs/react/src/core/threshold/thresholdEd25519AuthSession.js +145 -0
- package/dist/cjs/react/src/core/threshold/thresholdEd25519AuthSession.js.map +1 -0
- package/dist/cjs/react/src/core/threshold/thresholdEd25519RelayerHealth.js +117 -0
- package/dist/cjs/react/src/core/threshold/thresholdEd25519RelayerHealth.js.map +1 -0
- package/dist/cjs/react/src/core/threshold/thresholdSessionPolicy.js +67 -0
- package/dist/cjs/react/src/core/threshold/thresholdSessionPolicy.js.map +1 -0
- package/dist/cjs/react/src/core/types/accountIds.js +24 -0
- package/dist/cjs/react/src/core/types/accountIds.js.map +1 -0
- package/dist/cjs/react/src/core/types/actions.js +265 -0
- package/dist/cjs/react/src/core/types/actions.js.map +1 -0
- package/dist/cjs/react/src/core/types/authenticatorOptions.js +51 -0
- package/dist/cjs/react/src/core/types/authenticatorOptions.js.map +1 -0
- package/dist/cjs/react/src/core/types/emailRecovery.js +32 -0
- package/dist/cjs/react/src/core/types/emailRecovery.js.map +1 -0
- package/dist/cjs/react/src/core/types/linkDevice.js +24 -0
- package/dist/cjs/react/src/core/types/linkDevice.js.map +1 -0
- package/dist/cjs/react/src/core/types/rpc.js +15 -0
- package/dist/cjs/react/src/core/types/rpc.js.map +1 -0
- package/dist/cjs/react/src/core/types/sdkSentEvents.js +122 -0
- package/dist/cjs/react/src/core/types/sdkSentEvents.js.map +1 -0
- package/dist/cjs/react/src/core/types/signer-worker.js +145 -0
- package/dist/cjs/react/src/core/types/signer-worker.js.map +1 -0
- package/dist/cjs/react/src/core/types/vrf-worker.js +64 -0
- package/dist/cjs/react/src/core/types/vrf-worker.js.map +1 -0
- package/dist/cjs/react/src/core/workerControlMessages.js +20 -0
- package/dist/cjs/react/src/core/workerControlMessages.js.map +1 -0
- package/dist/cjs/react/src/theme/base-styles.js +156 -0
- package/dist/cjs/react/src/theme/base-styles.js.map +1 -0
- package/dist/cjs/react/src/theme/palette.js +208 -0
- package/dist/cjs/react/src/theme/palette.js.map +1 -0
- package/dist/cjs/react/src/threshold/participants.js +78 -0
- package/dist/cjs/react/src/threshold/participants.js.map +1 -0
- package/dist/cjs/react/src/utils/base58.js +21 -0
- package/dist/cjs/react/src/utils/base58.js.map +1 -0
- package/dist/cjs/react/src/utils/base64.js +71 -0
- package/dist/cjs/react/src/utils/base64.js.map +1 -0
- package/dist/cjs/react/src/utils/digests.js +28 -0
- package/dist/cjs/react/src/utils/digests.js.map +1 -0
- package/dist/cjs/react/src/utils/errors.js +141 -0
- package/dist/cjs/react/src/utils/errors.js.map +1 -0
- package/dist/cjs/react/src/utils/qrScanner.js +319 -0
- package/dist/cjs/react/src/utils/qrScanner.js.map +1 -0
- package/dist/cjs/react/src/utils/validation.js +160 -0
- package/dist/cjs/react/src/utils/validation.js.map +1 -0
- package/dist/cjs/react/utils/walletIframe.js +0 -1
- package/dist/cjs/react/utils/walletIframe.js.map +1 -1
- package/dist/cjs/server/core/AuthService.js +187 -65
- package/dist/cjs/server/core/AuthService.js.map +1 -1
- package/dist/cjs/server/core/SessionService.js.map +1 -1
- package/dist/cjs/server/core/ShamirService.js +1 -1
- package/dist/cjs/server/core/ShamirService.js.map +1 -1
- package/dist/cjs/server/core/ThresholdService/ThresholdSigningService.js +978 -0
- package/dist/cjs/server/core/ThresholdService/ThresholdSigningService.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/config.js +102 -0
- package/dist/cjs/server/core/ThresholdService/config.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/coordinatorGrant.js +201 -0
- package/dist/cjs/server/core/ThresholdService/coordinatorGrant.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/cosigners.js +282 -0
- package/dist/cjs/server/core/ThresholdService/cosigners.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/createThresholdSigningService.js +98 -0
- package/dist/cjs/server/core/ThresholdService/createThresholdSigningService.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/keygenStrategy.js +116 -0
- package/dist/cjs/server/core/ThresholdService/keygenStrategy.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/kv.js +340 -0
- package/dist/cjs/server/core/ThresholdService/kv.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/relayerKeyMaterial.js +66 -0
- package/dist/cjs/server/core/ThresholdService/relayerKeyMaterial.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/signingHandlers.js +1179 -0
- package/dist/cjs/server/core/ThresholdService/signingHandlers.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/stores/AuthSessionStore.js +258 -0
- package/dist/cjs/server/core/ThresholdService/stores/AuthSessionStore.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/stores/KeyStore.js +136 -0
- package/dist/cjs/server/core/ThresholdService/stores/KeyStore.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/stores/SessionStore.js +228 -0
- package/dist/cjs/server/core/ThresholdService/stores/SessionStore.js.map +1 -0
- package/dist/cjs/server/core/ThresholdService/validation.js +558 -0
- package/dist/cjs/server/core/ThresholdService/validation.js.map +1 -0
- package/dist/cjs/server/core/config.js +25 -18
- package/dist/cjs/server/core/config.js.map +1 -1
- package/dist/cjs/server/core/errors.js +3 -1
- package/dist/cjs/server/core/errors.js.map +1 -1
- package/dist/cjs/server/core/logger.js +2 -1
- package/dist/cjs/server/core/logger.js.map +1 -1
- package/dist/cjs/server/core/nearKeys.js +15 -0
- package/dist/cjs/server/core/nearKeys.js.map +1 -0
- package/dist/cjs/server/core/shamirHandlers.js +1 -1
- package/dist/cjs/server/core/shamirHandlers.js.map +1 -1
- package/dist/cjs/server/core/shamirWorker.js +94 -0
- package/dist/cjs/server/core/shamirWorker.js.map +1 -1
- package/dist/cjs/server/core/utils.js +1 -1
- package/dist/cjs/server/core/utils.js.map +1 -1
- package/dist/cjs/server/delegateAction/index.js.map +1 -1
- package/dist/cjs/server/email-recovery/emailEncryptor.js +1 -1
- package/dist/cjs/server/email-recovery/emailParsers.js +5 -5
- package/dist/cjs/server/email-recovery/emailParsers.js.map +1 -1
- package/dist/cjs/server/email-recovery/index.js +10 -5
- package/dist/cjs/server/email-recovery/index.js.map +1 -1
- package/dist/cjs/server/email-recovery/rpcCalls.js +2 -4
- package/dist/cjs/server/email-recovery/rpcCalls.js.map +1 -1
- package/dist/cjs/server/email-recovery/zkEmail/proverClient.js +2 -4
- package/dist/cjs/server/email-recovery/zkEmail/proverClient.js.map +1 -1
- package/dist/cjs/server/index.js +8 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/curve.js +244 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/curve.js.map +1 -1
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/edwards.js +401 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/edwards.js.map +1 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/modular.js +369 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/modular.js.map +1 -1
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/ed25519.js +52 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/ed25519.js.map +1 -1
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/utils.js +35 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/utils.js.map +1 -1
- package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_md.js +20 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_md.js.map +1 -1
- package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_u64.js +65 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_u64.js.map +1 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/sha2.js +223 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/sha2.js.map +1 -1
- package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/utils.js +17 -0
- package/dist/cjs/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/utils.js.map +1 -1
- package/dist/cjs/server/router/cloudflare.js +1117 -684
- package/dist/cjs/server/router/cloudflare.js.map +1 -1
- package/dist/cjs/server/router/express.js +812 -350
- package/dist/cjs/server/router/express.js.map +1 -1
- package/dist/cjs/server/sdk/src/core/NearClient.js +8 -1
- package/dist/cjs/server/sdk/src/core/NearClient.js.map +1 -1
- package/dist/cjs/server/sdk/src/core/defaultConfigs.js +7 -0
- package/dist/cjs/server/sdk/src/core/defaultConfigs.js.map +1 -1
- package/dist/cjs/server/sdk/src/core/nearCrypto.js +3 -36
- package/dist/cjs/server/sdk/src/core/nearCrypto.js.map +1 -1
- package/dist/cjs/server/sdk/src/core/types/actions.js.map +1 -1
- package/dist/cjs/server/sdk/src/core/types/rpc.js +1 -0
- package/dist/cjs/server/sdk/src/core/types/rpc.js.map +1 -1
- package/dist/cjs/server/sdk/src/threshold/participants.js +28 -0
- package/dist/cjs/server/sdk/src/threshold/participants.js.map +1 -0
- package/dist/cjs/server/sdk/src/utils/base64.js +34 -0
- package/dist/cjs/server/sdk/src/utils/base64.js.map +1 -1
- package/dist/cjs/server/sdk/src/utils/digests.js +28 -0
- package/dist/cjs/server/sdk/src/utils/digests.js.map +1 -0
- package/dist/cjs/server/sdk/src/utils/errors.js +18 -0
- package/dist/cjs/server/sdk/src/utils/errors.js.map +1 -1
- package/dist/cjs/server/sdk/src/utils/validation.js +95 -0
- package/dist/cjs/server/sdk/src/utils/validation.js.map +1 -0
- package/dist/cjs/theme/base-styles.js +0 -1
- package/dist/cjs/theme/base-styles.js.map +1 -1
- package/dist/cjs/theme/palette.js +0 -1
- package/dist/cjs/theme/palette.js.map +1 -1
- package/dist/cjs/threshold/participants.js +78 -0
- package/dist/cjs/threshold/participants.js.map +1 -0
- package/dist/cjs/utils/base58.js +12 -15
- package/dist/cjs/utils/base58.js.map +1 -1
- package/dist/cjs/utils/base64.js +32 -20
- package/dist/cjs/utils/base64.js.map +1 -1
- package/dist/cjs/utils/digests.js +28 -0
- package/dist/cjs/utils/digests.js.map +1 -0
- package/dist/cjs/utils/errors.js +0 -10
- package/dist/cjs/utils/errors.js.map +1 -1
- package/dist/cjs/utils/validation.js +102 -9
- package/dist/cjs/utils/validation.js.map +1 -1
- package/dist/esm/core/ChainsigAddressManager/index.js +2 -4
- package/dist/esm/core/ChainsigAddressManager/index.js.map +1 -1
- package/dist/esm/core/EmailRecovery/emailRecoveryPendingStore.js +50 -56
- package/dist/esm/core/EmailRecovery/emailRecoveryPendingStore.js.map +1 -1
- package/dist/esm/core/EmailRecovery/index.js +23 -32
- package/dist/esm/core/EmailRecovery/index.js.map +1 -1
- package/dist/esm/core/IndexedDBManager/index.js +88 -89
- package/dist/esm/core/IndexedDBManager/index.js.map +1 -1
- package/dist/esm/core/IndexedDBManager/passkeyClientDB.js +652 -645
- package/dist/esm/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
- package/dist/esm/core/IndexedDBManager/passkeyNearKeysDB.js +224 -150
- package/dist/esm/core/IndexedDBManager/passkeyNearKeysDB.js.map +1 -1
- package/dist/esm/core/NearClient.js +10 -8
- package/dist/esm/core/NearClient.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/actions.js +89 -134
- package/dist/esm/core/TatchiPasskey/actions.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/delegateAction.js +7 -6
- package/dist/esm/core/TatchiPasskey/delegateAction.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/emailRecovery.js +875 -850
- package/dist/esm/core/TatchiPasskey/emailRecovery.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/faucets/createAccountRelayServer.js +31 -18
- package/dist/esm/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/index.js +124 -87
- package/dist/esm/core/TatchiPasskey/index.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/linkDevice.js +91 -35
- package/dist/esm/core/TatchiPasskey/linkDevice.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/login.js +378 -193
- package/dist/esm/core/TatchiPasskey/login.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/registration.js +192 -79
- package/dist/esm/core/TatchiPasskey/registration.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/relay.js +1 -2
- package/dist/esm/core/TatchiPasskey/relay.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/scanDevice.js +4 -10
- package/dist/esm/core/TatchiPasskey/scanDevice.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/signNEP413.js +13 -5
- package/dist/esm/core/TatchiPasskey/signNEP413.js.map +1 -1
- package/dist/esm/core/TatchiPasskey/syncAccount.js +505 -0
- package/dist/esm/core/TatchiPasskey/syncAccount.js.map +1 -0
- package/dist/esm/core/WalletIframe/client/IframeTransport.js +167 -134
- package/dist/esm/core/WalletIframe/client/IframeTransport.js.map +1 -1
- package/dist/esm/core/WalletIframe/client/on-events-progress-bus.js +5 -6
- package/dist/esm/core/WalletIframe/client/on-events-progress-bus.js.map +1 -1
- package/dist/esm/core/WalletIframe/client/router.js +205 -170
- package/dist/esm/core/WalletIframe/client/router.js.map +1 -1
- package/dist/esm/core/WalletIframe/host-mode.js +4 -0
- package/dist/esm/core/WalletIframe/host-mode.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +1 -2
- package/dist/esm/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +1 -2
- package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +4 -14
- package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/LitElementWithProps.js +22 -18
- package/dist/esm/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/TxTree/index.js +1 -2
- package/dist/esm/core/WebAuthnManager/LitComponents/TxTree/index.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +1 -2
- package/dist/esm/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/confirm-ui.js +2 -3
- package/dist/esm/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/ensure-defined.js +2 -6
- package/dist/esm/core/WebAuthnManager/LitComponents/ensure-defined.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/tags.js +1 -26
- package/dist/esm/core/WebAuthnManager/LitComponents/tags.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +2 -7
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +13 -16
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +8 -12
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +9 -11
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js +44 -0
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js.map +1 -0
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +6 -11
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +1 -2
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +1 -2
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +14 -11
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +1 -0
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +208 -52
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +172 -32
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +4 -10
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +278 -90
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +8 -14
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/index.js +18 -12
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +15 -4
- package/dist/esm/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +2 -4
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +2 -6
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +1 -3
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +1 -10
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +31 -7
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +7 -29
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +0 -2
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +39 -4
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +78 -65
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +1 -3
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +86 -84
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +18 -9
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +9 -6
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +14 -11
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +7 -4
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +37 -4
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +7 -4
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/index.js +37 -3
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +55 -61
- package/dist/esm/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js +34 -0
- package/dist/esm/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js.map +1 -0
- package/dist/esm/core/WebAuthnManager/credentialsHelpers.js +19 -21
- package/dist/esm/core/WebAuthnManager/credentialsHelpers.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/index.js +359 -56
- package/dist/esm/core/WebAuthnManager/index.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js +92 -0
- package/dist/esm/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js.map +1 -0
- package/dist/esm/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js +144 -0
- package/dist/esm/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js.map +1 -0
- package/dist/esm/core/WebAuthnManager/touchIdPrompt.js +203 -208
- package/dist/esm/core/WebAuthnManager/touchIdPrompt.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/userHandle.js +1 -4
- package/dist/esm/core/WebAuthnManager/userHandle.js.map +1 -1
- package/dist/esm/core/WebAuthnManager/userPreferences.js +121 -38
- package/dist/esm/core/WebAuthnManager/userPreferences.js.map +1 -1
- package/dist/esm/core/defaultConfigs.js +57 -53
- package/dist/esm/core/defaultConfigs.js.map +1 -1
- package/dist/esm/core/digests/intentDigest.js +95 -0
- package/dist/esm/core/digests/intentDigest.js.map +1 -0
- package/dist/esm/core/nearCrypto.js +2 -23
- package/dist/esm/core/nearCrypto.js.map +1 -1
- package/dist/esm/core/nonceManager.js +7 -16
- package/dist/esm/core/nonceManager.js.map +1 -1
- package/dist/esm/core/rpcCalls.js +264 -23
- package/dist/esm/core/rpcCalls.js.map +1 -1
- package/dist/esm/core/sdkPaths/workers.js +7 -5
- package/dist/esm/core/sdkPaths/workers.js.map +1 -1
- package/dist/esm/core/threshold/thresholdEd25519AuthSession.js +140 -0
- package/dist/esm/core/threshold/thresholdEd25519AuthSession.js.map +1 -0
- package/dist/esm/core/threshold/thresholdEd25519RelayerHealth.js +117 -0
- package/dist/esm/core/threshold/thresholdEd25519RelayerHealth.js.map +1 -0
- package/dist/esm/core/threshold/thresholdSessionPolicy.js +65 -0
- package/dist/esm/core/threshold/thresholdSessionPolicy.js.map +1 -0
- package/dist/esm/core/types/accountIds.js +2 -7
- package/dist/esm/core/types/accountIds.js.map +1 -1
- package/dist/esm/core/types/actions.js +19 -22
- package/dist/esm/core/types/actions.js.map +1 -1
- package/dist/esm/core/types/emailRecovery.js +25 -22
- package/dist/esm/core/types/emailRecovery.js.map +1 -1
- package/dist/esm/core/types/rpc.js +10 -15
- package/dist/esm/core/types/rpc.js.map +1 -1
- package/dist/esm/core/types/sdkSentEvents.js +106 -112
- package/dist/esm/core/types/sdkSentEvents.js.map +1 -1
- package/dist/esm/core/types/signer-worker.js +88 -14
- package/dist/esm/core/types/signer-worker.js.map +1 -1
- package/dist/esm/core/types/vrf-worker.js +4 -8
- package/dist/esm/core/types/vrf-worker.js.map +1 -1
- package/dist/esm/index.js +11 -26
- package/dist/esm/plugins/headers.js +4 -11
- package/dist/esm/plugins/headers.js.map +1 -1
- package/dist/esm/plugins/next.js +21 -11
- package/dist/esm/plugins/next.js.map +1 -1
- package/dist/esm/plugins/plugin-utils.js +2 -7
- package/dist/esm/plugins/plugin-utils.js.map +1 -1
- package/dist/esm/plugins/utils/validation.js +27 -0
- package/dist/esm/plugins/utils/validation.js.map +1 -0
- package/dist/esm/plugins/vite.js +19 -12
- package/dist/esm/plugins/vite.js.map +1 -1
- package/dist/esm/react/build-paths.js.map +1 -0
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal-BCrFe5p3.css +452 -0
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal-BCrFe5p3.css.map +1 -0
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal2.js +6 -5
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal2.js.map +1 -1
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown-CRJrtxDb.css +120 -0
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown-CRJrtxDb.css.map +1 -0
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown2.js +3 -1
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown2.js.map +1 -1
- package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +37 -3
- package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js.map +1 -1
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton-DXFRw8ND.css +77 -0
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton-DXFRw8ND.css.map +1 -0
- package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon-DNgbAK_i.css +41 -0
- package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon-DNgbAK_i.css.map +1 -0
- package/dist/esm/react/components/AccountMenuButton/index.js +26 -5
- package/dist/esm/react/components/AccountMenuButton/index.js.map +1 -1
- package/dist/esm/react/components/AccountMenuButton/types.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-qTHAv58Z.css +1011 -0
- package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-qTHAv58Z.css.map +1 -0
- package/dist/esm/react/components/PasskeyAuthMenu/authMenuTypes.js +2 -2
- package/dist/esm/react/components/PasskeyAuthMenu/authMenuTypes.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/client.js +10 -10
- package/dist/esm/react/components/PasskeyAuthMenu/client.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/controller/mode.js +4 -4
- package/dist/esm/react/components/PasskeyAuthMenu/controller/mode.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.js +3 -3
- package/dist/esm/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/controller/useSDKEvents.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/preload.js +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/preload.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/shell.js +52 -13
- package/dist/esm/react/components/PasskeyAuthMenu/shell.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/skeleton.js +5 -3
- package/dist/esm/react/components/PasskeyAuthMenu/skeleton.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/ui/AccountExistsBadge.js +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/ui/AccountExistsBadge.js.map +1 -1
- package/dist/esm/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js +280 -367
- package/dist/esm/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js.map +1 -1
- package/dist/esm/react/components/ShowQRCode-CL4gsszN.css +113 -0
- package/dist/esm/react/components/ShowQRCode-CL4gsszN.css.map +1 -0
- package/dist/esm/react/components/ShowQRCode2.js +1 -2
- package/dist/esm/react/components/ShowQRCode2.js.map +1 -1
- package/dist/esm/react/components/theme/ThemeProvider.js +18 -18
- package/dist/esm/react/components/theme/ThemeProvider.js.map +1 -1
- package/dist/esm/react/components/theme/design-tokens.js +1 -1
- package/dist/esm/react/context/tatchiManagerSingleton.js +2 -3
- package/dist/esm/react/context/tatchiManagerSingleton.js.map +1 -1
- package/dist/esm/react/context/useLoginStateRefresher.js +1 -2
- package/dist/esm/react/context/useLoginStateRefresher.js.map +1 -1
- package/dist/esm/react/context/useTatchiContextValue.js +17 -9
- package/dist/esm/react/context/useTatchiContextValue.js.map +1 -1
- package/dist/esm/react/context/useTatchiWithSdkFlow.js +9 -10
- package/dist/esm/react/context/useTatchiWithSdkFlow.js.map +1 -1
- package/dist/esm/react/context/useWalletIframeLifecycle.js +1 -2
- package/dist/esm/react/context/useWalletIframeLifecycle.js.map +1 -1
- package/dist/esm/react/deviceDetection.js +93 -72
- package/dist/esm/react/deviceDetection.js.map +1 -1
- package/dist/esm/react/hooks/useAccountInput.js +1 -2
- package/dist/esm/react/hooks/useAccountInput.js.map +1 -1
- package/dist/esm/react/hooks/useDeviceLinking.js +1 -1
- package/dist/esm/react/hooks/useNearClient.js +2 -3
- package/dist/esm/react/hooks/useNearClient.js.map +1 -1
- package/dist/esm/react/hooks/usePreconnectWalletAssets.js +1 -1
- package/dist/esm/react/hooks/useQRCamera.js +2 -3
- package/dist/esm/react/hooks/useQRCamera.js.map +1 -1
- package/dist/esm/react/hooks/useQRFileUpload.js +1 -1
- package/dist/esm/react/index.js +6 -15
- package/dist/esm/react/src/base-styles.js.map +1 -0
- package/dist/esm/react/src/config.js.map +1 -0
- package/dist/esm/react/src/core/ChainsigAddressManager/index.js +27 -0
- package/dist/esm/react/src/core/ChainsigAddressManager/index.js.map +1 -0
- package/dist/esm/react/src/core/EmailRecovery/emailRecoveryPendingStore.js +57 -0
- package/dist/esm/react/src/core/EmailRecovery/emailRecoveryPendingStore.js.map +1 -0
- package/dist/esm/react/src/core/EmailRecovery/index.js +96 -0
- package/dist/esm/react/src/core/EmailRecovery/index.js.map +1 -0
- package/dist/esm/react/src/core/IndexedDBManager/index.js +132 -0
- package/dist/esm/react/src/core/IndexedDBManager/index.js.map +1 -0
- package/dist/esm/react/src/core/IndexedDBManager/passkeyClientDB.js +685 -0
- package/dist/esm/react/src/core/IndexedDBManager/passkeyClientDB.js.map +1 -0
- package/dist/esm/react/src/core/IndexedDBManager/passkeyNearKeysDB.js +259 -0
- package/dist/esm/react/src/core/IndexedDBManager/passkeyNearKeysDB.js.map +1 -0
- package/dist/esm/react/src/core/NearClient.js +273 -0
- package/dist/esm/react/src/core/NearClient.js.map +1 -0
- package/dist/esm/react/src/core/NearRpcError.js.map +1 -0
- package/dist/esm/react/src/core/OfflineExport/overlay.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/actions.js +403 -0
- package/dist/esm/react/src/core/TatchiPasskey/actions.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/delegateAction.js +76 -0
- package/dist/esm/react/src/core/TatchiPasskey/delegateAction.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/emailRecovery.js +933 -0
- package/dist/esm/react/src/core/TatchiPasskey/emailRecovery.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +109 -0
- package/dist/esm/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/index.js +1335 -0
- package/dist/esm/react/src/core/TatchiPasskey/index.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/linkDevice.js +766 -0
- package/dist/esm/react/src/core/TatchiPasskey/linkDevice.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/login.js +754 -0
- package/dist/esm/react/src/core/TatchiPasskey/login.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/registration.js +451 -0
- package/dist/esm/react/src/core/TatchiPasskey/registration.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/relay.js +110 -0
- package/dist/esm/react/src/core/TatchiPasskey/relay.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/scanDevice.js +98 -0
- package/dist/esm/react/src/core/TatchiPasskey/scanDevice.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/signNEP413.js +96 -0
- package/dist/esm/react/src/core/TatchiPasskey/signNEP413.js.map +1 -0
- package/dist/esm/react/src/core/TatchiPasskey/syncAccount.js +505 -0
- package/dist/esm/react/src/core/TatchiPasskey/syncAccount.js.map +1 -0
- package/dist/esm/react/src/core/WalletIframe/client/IframeTransport.js +362 -0
- package/dist/esm/react/src/core/WalletIframe/client/IframeTransport.js.map +1 -0
- package/dist/esm/react/src/core/WalletIframe/client/on-events-progress-bus.js +207 -0
- package/dist/esm/react/src/core/WalletIframe/client/on-events-progress-bus.js.map +1 -0
- package/dist/esm/react/src/core/WalletIframe/client/overlay-controller.js.map +1 -0
- package/dist/esm/react/src/core/WalletIframe/client/overlay-styles.js.map +1 -0
- package/dist/esm/react/src/core/WalletIframe/client/router.js +1096 -0
- package/dist/esm/react/src/core/WalletIframe/client/router.js.map +1 -0
- package/dist/esm/react/src/core/WalletIframe/events.js.map +1 -0
- package/dist/esm/react/src/core/WalletIframe/host-mode.js +13 -0
- package/dist/esm/react/src/core/WalletIframe/host-mode.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/Drawer/index.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +218 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +187 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +245 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js +258 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/index.js +499 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/index.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +181 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/asset-base.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/common/formatters.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js +218 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/css/css-loader.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/ensure-defined.js +19 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/ensure-defined.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/lit-events.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/tags.js +22 -0
- package/dist/esm/react/src/core/WebAuthnManager/LitComponents/tags.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +27 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +67 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +42 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +68 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js +44 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +61 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +23 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +42 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +118 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +15 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +258 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +217 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +55 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +299 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +74 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/index.js +457 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +92 -0
- package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +54 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +50 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +30 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +44 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +87 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +17 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +63 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +124 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +148 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +49 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +174 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +127 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +54 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +158 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +61 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +79 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +61 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/index.js +408 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +197 -0
- package/dist/esm/react/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js +34 -0
- package/dist/esm/react/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/credentialsHelpers.js +286 -0
- package/dist/esm/react/src/core/WebAuthnManager/credentialsHelpers.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/index.js +1192 -0
- package/dist/esm/react/src/core/WebAuthnManager/index.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js +92 -0
- package/dist/esm/react/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js +144 -0
- package/dist/esm/react/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/touchIdPrompt.js +265 -0
- package/dist/esm/react/src/core/WebAuthnManager/touchIdPrompt.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/userHandle.js +35 -0
- package/dist/esm/react/src/core/WebAuthnManager/userHandle.js.map +1 -0
- package/dist/esm/react/src/core/WebAuthnManager/userPreferences.js +390 -0
- package/dist/esm/react/src/core/WebAuthnManager/userPreferences.js.map +1 -0
- package/dist/esm/react/src/core/defaultConfigs.js +106 -0
- package/dist/esm/react/src/core/defaultConfigs.js.map +1 -0
- package/dist/esm/react/src/core/digests/intentDigest.js +95 -0
- package/dist/esm/react/src/core/digests/intentDigest.js.map +1 -0
- package/dist/esm/react/src/core/nearCrypto.js +27 -0
- package/dist/esm/react/src/core/nearCrypto.js.map +1 -0
- package/dist/esm/react/src/core/nonceManager.js +393 -0
- package/dist/esm/react/src/core/nonceManager.js.map +1 -0
- package/dist/esm/react/src/core/rpcCalls.js +672 -0
- package/dist/esm/react/src/core/rpcCalls.js.map +1 -0
- package/dist/esm/react/src/core/sdkPaths/base.js.map +1 -0
- package/dist/esm/react/src/core/sdkPaths/workers.js +44 -0
- package/dist/esm/react/src/core/sdkPaths/workers.js.map +1 -0
- package/dist/esm/react/src/core/threshold/thresholdEd25519AuthSession.js +140 -0
- package/dist/esm/react/src/core/threshold/thresholdEd25519AuthSession.js.map +1 -0
- package/dist/esm/react/src/core/threshold/thresholdEd25519RelayerHealth.js +117 -0
- package/dist/esm/react/src/core/threshold/thresholdEd25519RelayerHealth.js.map +1 -0
- package/dist/esm/react/src/core/threshold/thresholdSessionPolicy.js +65 -0
- package/dist/esm/react/src/core/threshold/thresholdSessionPolicy.js.map +1 -0
- package/dist/esm/react/src/core/types/accountIds.js +23 -0
- package/dist/esm/react/src/core/types/accountIds.js.map +1 -0
- package/dist/esm/react/src/core/types/actions.js +260 -0
- package/dist/esm/react/src/core/types/actions.js.map +1 -0
- package/dist/esm/react/src/core/types/authenticatorOptions.js +47 -0
- package/dist/esm/react/src/core/types/authenticatorOptions.js.map +1 -0
- package/dist/esm/react/src/core/types/emailRecovery.js +29 -0
- package/dist/esm/react/src/core/types/emailRecovery.js.map +1 -0
- package/dist/esm/react/src/core/types/linkDevice.js.map +1 -0
- package/dist/esm/react/src/core/types/rpc.js +14 -0
- package/dist/esm/react/src/core/types/rpc.js.map +1 -0
- package/dist/esm/react/src/core/types/sdkSentEvents.js +110 -0
- package/dist/esm/react/src/core/types/sdkSentEvents.js.map +1 -0
- package/dist/esm/react/src/core/types/signer-worker.js +125 -0
- package/dist/esm/react/src/core/types/signer-worker.js.map +1 -0
- package/dist/esm/react/src/core/types/vrf-worker.js +62 -0
- package/dist/esm/react/src/core/types/vrf-worker.js.map +1 -0
- package/dist/esm/react/src/core/workerControlMessages.js.map +1 -0
- package/dist/esm/react/src/theme/base-styles.js.map +1 -0
- package/dist/esm/react/src/theme/palette.js.map +1 -0
- package/dist/esm/react/src/threshold/participants.js +76 -0
- package/dist/esm/react/src/threshold/participants.js.map +1 -0
- package/dist/esm/react/src/utils/base58.js +19 -0
- package/dist/esm/react/src/utils/base58.js.map +1 -0
- package/dist/esm/react/src/utils/base64.js +67 -0
- package/dist/esm/react/src/utils/base64.js.map +1 -0
- package/dist/esm/react/src/utils/digests.js +26 -0
- package/dist/esm/react/src/utils/digests.js.map +1 -0
- package/dist/esm/react/src/utils/errors.js +136 -0
- package/dist/esm/react/src/utils/errors.js.map +1 -0
- package/dist/esm/react/src/utils/qrScanner.js.map +1 -0
- package/dist/esm/react/src/utils/validation.js +144 -0
- package/dist/esm/react/src/utils/validation.js.map +1 -0
- package/dist/esm/react/styles/styles.css +2 -0
- package/dist/esm/sdk/EmailRecovery-Y7rurd4B.js +9 -0
- package/dist/esm/sdk/EmailRecovery-lsjLWApQ.js +147 -0
- package/dist/esm/sdk/HaloBorder-DYOOQFjI.js +1116 -0
- package/dist/esm/sdk/IndexedDBManager-CmdN7smS.js +1351 -0
- package/dist/esm/sdk/accountIds-DVDhXwVA.js +15 -0
- package/dist/esm/sdk/actions-fHadejPs.js +250 -0
- package/dist/esm/sdk/base64-dqpWgddX.js +66 -0
- package/dist/esm/sdk/browser-CH0Ca-MX.js +2443 -0
- package/dist/esm/sdk/chunk-DitdNFGZ.js +28 -0
- package/dist/esm/sdk/collectAuthenticationCredentialForVrfChallenge-C9p90e5Z.js +1404 -0
- package/dist/esm/sdk/collectAuthenticationCredentialForVrfChallenge-C9p90e5Z.js.map +1 -0
- package/dist/esm/sdk/collectAuthenticationCredentialForVrfChallenge-DqzPzwvU.js +138 -0
- package/dist/esm/sdk/config-BbNXtVtu.js +100 -0
- package/dist/esm/sdk/createAdapters-4c8mBiD5.js +3758 -0
- package/dist/esm/sdk/createAdapters-4c8mBiD5.js.map +1 -0
- package/dist/esm/sdk/createAdapters-DF32SIZa.js +515 -0
- package/dist/esm/sdk/css-loader-CAIkFQ3i.js +1143 -0
- package/dist/esm/sdk/css-loader-DWW-_Vli.js +1191 -0
- package/dist/esm/sdk/css-loader-DWW-_Vli.js.map +1 -0
- package/dist/esm/sdk/defaultConfigs-BQqiXif-.js +105 -0
- package/dist/esm/sdk/delegateAction-DdkvFFKA.js +76 -0
- package/dist/esm/sdk/emailRecovery-C0LSDleV.js +963 -0
- package/dist/esm/sdk/errors-DevlT39D.js +135 -0
- package/dist/esm/sdk/events-D2g80q67.js +8 -0
- package/dist/esm/sdk/export-private-key-viewer.js +22 -17
- package/dist/esm/sdk/getDeviceNumber-WiNzKx1x.js +601 -0
- package/dist/esm/sdk/getDeviceNumber-WiNzKx1x.js.map +1 -0
- package/dist/esm/sdk/getDeviceNumber-y3mMtky6.js +26 -0
- package/dist/esm/sdk/halo-border.js +1 -1
- package/dist/esm/sdk/host-mode-BIUqo9hg.js +44 -0
- package/dist/esm/sdk/host-mode-CgqmYAwZ.js +13 -0
- package/dist/esm/sdk/host-mode-CgqmYAwZ.js.map +1 -0
- package/dist/esm/sdk/iframe-export-bootstrap.js +3 -4
- package/dist/esm/sdk/iframe-host-BVt1hvOt.js +213 -0
- package/dist/esm/sdk/iframe-host-d_rrsoyL.js +212 -0
- package/dist/esm/sdk/iframe-host-d_rrsoyL.js.map +1 -0
- package/dist/esm/sdk/intentDigest-yivVENNK.js +117 -0
- package/dist/esm/sdk/linkDevice-Ds1GNIDk.js +772 -0
- package/dist/esm/sdk/localOnly-COpDBMkm.js +133 -0
- package/dist/esm/sdk/localOnly-COpDBMkm.js.map +1 -0
- package/dist/esm/sdk/localOnly-DQQuqgjJ.js +129 -0
- package/dist/esm/sdk/login-BKhTuGcy.js +1540 -0
- package/dist/esm/sdk/offline-export-app.js +2369 -1065
- package/dist/esm/sdk/offline-export-app.js.map +1 -1
- package/dist/esm/sdk/overlay-Ci2FOQKE.js +433 -0
- package/dist/esm/sdk/passkey-halo-loading.js +1 -1
- package/dist/esm/sdk/registration-BR2G9tz_.js +156 -0
- package/dist/esm/sdk/registration-R70lvG_o.js +145 -0
- package/dist/esm/sdk/registration-R70lvG_o.js.map +1 -0
- package/dist/esm/sdk/relay-Dq9D7fhG.js +109 -0
- package/dist/esm/sdk/router-2aGn-CTp.js +1868 -0
- package/dist/esm/sdk/rpc-Dq3ioE9T.js +13 -0
- package/dist/esm/sdk/rpcCalls-BPI0icZG.js +12 -0
- package/dist/esm/sdk/rpcCalls-BW3M_q3-.js +671 -0
- package/dist/esm/sdk/safari-fallbacks-BcMFntiP.js +480 -0
- package/dist/esm/sdk/scanDevice-BBSehlMx.js +109 -0
- package/dist/esm/sdk/sdkSentEvents-CzAZBFjP.js +109 -0
- package/dist/esm/sdk/signNEP413-DsyWH_Jo.js +95 -0
- package/dist/esm/sdk/signer-worker-DK847sXj.js +473 -0
- package/dist/esm/sdk/syncAccount-DEZHBiRa.js +16 -0
- package/dist/esm/sdk/syncAccount-DHKtl-xh.js +533 -0
- package/dist/esm/sdk/tags-ByzxP7Cc.js +22 -0
- package/dist/esm/sdk/touchIdPrompt-JPhrOx8o.js +263 -0
- package/dist/esm/sdk/transactions-Cg1TIUyK.js +182 -0
- package/dist/esm/sdk/transactions-CxsklyCK.js +169 -0
- package/dist/esm/sdk/transactions-CxsklyCK.js.map +1 -0
- package/dist/esm/sdk/tx-confirm-ui.js +58 -45
- package/dist/esm/sdk/tx-confirmer-wrapper-DWKpXTUW.js +3248 -0
- package/dist/esm/sdk/validation-BTq6LGPp.js +143 -0
- package/dist/esm/sdk/validation-hUZgySTx.js +108 -0
- package/dist/esm/sdk/validation-hUZgySTx.js.map +1 -0
- package/dist/esm/sdk/vrf-worker-BzQsJ5BW.js +61 -0
- package/dist/esm/sdk/w3a-components.css +0 -3
- package/dist/esm/sdk/w3a-tx-confirmer.js +9 -10
- package/dist/esm/sdk/wallet-iframe-host.js +6568 -10203
- package/dist/esm/server/core/AuthService.js +186 -64
- package/dist/esm/server/core/AuthService.js.map +1 -1
- package/dist/esm/server/core/SessionService.js.map +1 -1
- package/dist/esm/server/core/ShamirService.js +1 -1
- package/dist/esm/server/core/ShamirService.js.map +1 -1
- package/dist/esm/server/core/ThresholdService/ThresholdSigningService.js +976 -0
- package/dist/esm/server/core/ThresholdService/ThresholdSigningService.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/config.js +96 -0
- package/dist/esm/server/core/ThresholdService/config.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/coordinatorGrant.js +200 -0
- package/dist/esm/server/core/ThresholdService/coordinatorGrant.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/cosigners.js +278 -0
- package/dist/esm/server/core/ThresholdService/cosigners.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/createThresholdSigningService.js +98 -0
- package/dist/esm/server/core/ThresholdService/createThresholdSigningService.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/keygenStrategy.js +114 -0
- package/dist/esm/server/core/ThresholdService/keygenStrategy.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/kv.js +335 -0
- package/dist/esm/server/core/ThresholdService/kv.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/relayerKeyMaterial.js +65 -0
- package/dist/esm/server/core/ThresholdService/relayerKeyMaterial.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/signingHandlers.js +1177 -0
- package/dist/esm/server/core/ThresholdService/signingHandlers.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/stores/AuthSessionStore.js +258 -0
- package/dist/esm/server/core/ThresholdService/stores/AuthSessionStore.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/stores/KeyStore.js +136 -0
- package/dist/esm/server/core/ThresholdService/stores/KeyStore.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/stores/SessionStore.js +228 -0
- package/dist/esm/server/core/ThresholdService/stores/SessionStore.js.map +1 -0
- package/dist/esm/server/core/ThresholdService/validation.js +544 -0
- package/dist/esm/server/core/ThresholdService/validation.js.map +1 -0
- package/dist/esm/server/core/config.js +26 -18
- package/dist/esm/server/core/config.js.map +1 -1
- package/dist/esm/server/core/errors.js +3 -1
- package/dist/esm/server/core/errors.js.map +1 -1
- package/dist/esm/server/core/logger.js +2 -1
- package/dist/esm/server/core/logger.js.map +1 -1
- package/dist/esm/server/core/nearKeys.js +13 -0
- package/dist/esm/server/core/nearKeys.js.map +1 -0
- package/dist/esm/server/core/shamirHandlers.js +1 -1
- package/dist/esm/server/core/shamirHandlers.js.map +1 -1
- package/dist/esm/server/core/shamirWorker.js +94 -0
- package/dist/esm/server/core/shamirWorker.js.map +1 -1
- package/dist/esm/server/core/utils.js +1 -1
- package/dist/esm/server/core/utils.js.map +1 -1
- package/dist/esm/server/delegateAction/index.js.map +1 -1
- package/dist/esm/server/email-recovery/emailEncryptor.js +1 -1
- package/dist/esm/server/email-recovery/emailParsers.js +4 -4
- package/dist/esm/server/email-recovery/emailParsers.js.map +1 -1
- package/dist/esm/server/email-recovery/index.js +11 -6
- package/dist/esm/server/email-recovery/index.js.map +1 -1
- package/dist/esm/server/email-recovery/rpcCalls.js +2 -4
- package/dist/esm/server/email-recovery/rpcCalls.js.map +1 -1
- package/dist/esm/server/email-recovery/zkEmail/proverClient.js +3 -4
- package/dist/esm/server/email-recovery/zkEmail/proverClient.js.map +1 -1
- package/dist/esm/server/index.js +5 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/curve.js +243 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/curve.js.map +1 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/edwards.js +400 -0
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/edwards.js.map +1 -0
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/modular.js +367 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/abstract/modular.js.map +1 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/ed25519.js +53 -2
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/ed25519.js.map +1 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/utils.js +32 -2
- package/dist/esm/server/node_modules/.pnpm/@noble_curves@2.0.1/node_modules/@noble/curves/utils.js.map +1 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_md.js +20 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_md.js.map +1 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_u64.js +51 -0
- package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/_u64.js.map +1 -0
- package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/sha2.js +224 -2
- package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/sha2.js.map +1 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/utils.js +17 -1
- package/dist/esm/server/node_modules/.pnpm/@noble_hashes@2.0.1/node_modules/@noble/hashes/utils.js.map +1 -1
- package/dist/esm/server/router/cloudflare.js +1117 -684
- package/dist/esm/server/router/cloudflare.js.map +1 -1
- package/dist/esm/server/router/express.js +812 -350
- package/dist/esm/server/router/express.js.map +1 -1
- package/dist/esm/server/sdk/src/core/NearClient.js +8 -1
- package/dist/esm/server/sdk/src/core/NearClient.js.map +1 -1
- package/dist/esm/server/sdk/src/core/defaultConfigs.js +5 -1
- package/dist/esm/server/sdk/src/core/defaultConfigs.js.map +1 -1
- package/dist/esm/server/sdk/src/core/nearCrypto.js +2 -34
- package/dist/esm/server/sdk/src/core/nearCrypto.js.map +1 -1
- package/dist/esm/server/sdk/src/core/types/actions.js.map +1 -1
- package/dist/esm/server/sdk/src/core/types/rpc.js +1 -0
- package/dist/esm/server/sdk/src/core/types/rpc.js.map +1 -1
- package/dist/esm/server/sdk/src/threshold/participants.js +27 -0
- package/dist/esm/server/sdk/src/threshold/participants.js.map +1 -0
- package/dist/esm/server/sdk/src/utils/base64.js +33 -1
- package/dist/esm/server/sdk/src/utils/base64.js.map +1 -1
- package/dist/esm/server/sdk/src/utils/digests.js +26 -0
- package/dist/esm/server/sdk/src/utils/digests.js.map +1 -0
- package/dist/esm/server/sdk/src/utils/errors.js +18 -1
- package/dist/esm/server/sdk/src/utils/errors.js.map +1 -1
- package/dist/esm/server/sdk/src/utils/validation.js +84 -0
- package/dist/esm/server/sdk/src/utils/validation.js.map +1 -0
- package/dist/esm/threshold/participants.js +76 -0
- package/dist/esm/threshold/participants.js.map +1 -0
- package/dist/esm/utils/base58.js +13 -11
- package/dist/esm/utils/base58.js.map +1 -1
- package/dist/esm/utils/base64.js +33 -16
- package/dist/esm/utils/base64.js.map +1 -1
- package/dist/esm/utils/digests.js +26 -0
- package/dist/esm/utils/digests.js.map +1 -0
- package/dist/esm/utils/errors.js +1 -5
- package/dist/esm/utils/errors.js.map +1 -1
- package/dist/esm/utils/validation.js +88 -5
- package/dist/esm/utils/validation.js.map +1 -1
- package/dist/esm/wasm_signer_worker/pkg/wasm_signer_worker.js +381 -225
- package/dist/esm/wasm_signer_worker/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm_vrf_worker/pkg/wasm_vrf_worker.js +103 -11
- package/dist/esm/wasm_vrf_worker/pkg/wasm_vrf_worker_bg.wasm +0 -0
- package/dist/types/src/__tests__/e2e/thresholdEd25519.testUtils.d.ts +25 -0
- package/dist/types/src/__tests__/e2e/thresholdEd25519.testUtils.d.ts.map +1 -0
- package/dist/types/src/__tests__/helpers/thresholdEd25519TestUtils.d.ts +23 -0
- package/dist/types/src/__tests__/helpers/thresholdEd25519TestUtils.d.ts.map +1 -0
- package/dist/types/src/__tests__/relayer/helpers.d.ts +1 -0
- package/dist/types/src/__tests__/relayer/helpers.d.ts.map +1 -1
- package/dist/types/src/__tests__/setup/bootstrap.d.ts.map +1 -1
- package/dist/types/src/__tests__/setup/flows.d.ts +11 -3
- package/dist/types/src/__tests__/setup/flows.d.ts.map +1 -1
- package/dist/types/src/__tests__/setup/index.d.ts +1 -1
- package/dist/types/src/__tests__/setup/index.d.ts.map +1 -1
- package/dist/types/src/__tests__/setup/webauthn-mocks.d.ts.map +1 -1
- package/dist/types/src/core/EmailRecovery/emailRecoveryPendingStore.d.ts +1 -1
- package/dist/types/src/core/EmailRecovery/emailRecoveryPendingStore.d.ts.map +1 -1
- package/dist/types/src/core/IndexedDBManager/index.d.ts +3 -3
- package/dist/types/src/core/IndexedDBManager/index.d.ts.map +1 -1
- package/dist/types/src/core/IndexedDBManager/passkeyClientDB.d.ts +11 -2
- package/dist/types/src/core/IndexedDBManager/passkeyClientDB.d.ts.map +1 -1
- package/dist/types/src/core/IndexedDBManager/passkeyNearKeysDB.d.ts +33 -16
- package/dist/types/src/core/IndexedDBManager/passkeyNearKeysDB.d.ts.map +1 -1
- package/dist/types/src/core/NearClient.d.ts +2 -0
- package/dist/types/src/core/NearClient.d.ts.map +1 -1
- package/dist/types/src/core/OfflineExport/offline-export-app.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/actions.d.ts +10 -7
- package/dist/types/src/core/TatchiPasskey/actions.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/delegateAction.d.ts +1 -1
- package/dist/types/src/core/TatchiPasskey/delegateAction.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/emailRecovery.d.ts +3 -35
- package/dist/types/src/core/TatchiPasskey/emailRecovery.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/faucets/createAccountRelayServer.d.ts +22 -6
- package/dist/types/src/core/TatchiPasskey/faucets/createAccountRelayServer.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/index.d.ts +66 -33
- package/dist/types/src/core/TatchiPasskey/index.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/linkDevice.d.ts +1 -0
- package/dist/types/src/core/TatchiPasskey/linkDevice.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/login.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/registration.d.ts +1 -1
- package/dist/types/src/core/TatchiPasskey/registration.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/signNEP413.d.ts +3 -1
- package/dist/types/src/core/TatchiPasskey/signNEP413.d.ts.map +1 -1
- package/dist/types/src/core/TatchiPasskey/syncAccount.d.ts +112 -0
- package/dist/types/src/core/TatchiPasskey/syncAccount.d.ts.map +1 -0
- package/dist/types/src/core/WalletIframe/TatchiPasskeyIframe.d.ts +39 -15
- package/dist/types/src/core/WalletIframe/TatchiPasskeyIframe.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/client/IframeTransport.d.ts +11 -0
- package/dist/types/src/core/WalletIframe/client/IframeTransport.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/client/router.d.ts +66 -72
- package/dist/types/src/core/WalletIframe/client/router.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/host/context.d.ts +2 -2
- package/dist/types/src/core/WalletIframe/host/context.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/host/iframe-lit-elem-mounter.d.ts +41 -20
- package/dist/types/src/core/WalletIframe/host/iframe-lit-elem-mounter.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/host/iframe-lit-element-registry.d.ts +0 -34
- package/dist/types/src/core/WalletIframe/host/iframe-lit-element-registry.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/host/mounter-styles.d.ts +1 -1
- package/dist/types/src/core/WalletIframe/host/mounter-styles.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/host/wallet-iframe-handlers.d.ts +1 -2
- package/dist/types/src/core/WalletIframe/host/wallet-iframe-handlers.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/host/wallet-iframe-host.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/host-mode.d.ts.map +1 -1
- package/dist/types/src/core/WalletIframe/shared/messages.d.ts +78 -10
- package/dist/types/src/core/WalletIframe/shared/messages.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/LitElementWithProps.d.ts +5 -3
- package/dist/types/src/core/WebAuthnManager/LitComponents/LitElementWithProps.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/ensure-defined.d.ts +1 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/ensure-defined.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/tags.d.ts +0 -52
- package/dist/types/src/core/WebAuthnManager/LitComponents/tags.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.d.ts +2 -2
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.d.ts +13 -0
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveThresholdEd25519ClientVerifyingShare.d.ts.map +1 -0
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/index.d.ts +1 -0
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/index.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.d.ts +11 -5
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.d.ts +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.d.ts +3 -2
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.d.ts +2 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.d.ts +5 -5
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.d.ts +2 -2
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/index.d.ts +19 -4
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/index.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.d.ts +6 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/thresholdSessionHelpers.d.ts +1 -0
- package/dist/types/src/core/WebAuthnManager/SignerWorkerManager/thresholdSessionHelpers.d.ts.map +1 -0
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/interfaces.d.ts +3 -3
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/interfaces.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.d.ts +2 -7
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.d.ts +2 -2
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.d.ts +9 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.d.ts +17 -2
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.d.ts +2 -2
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/index.d.ts +9 -2
- package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/index.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.d.ts +22 -0
- package/dist/types/src/core/WebAuthnManager/collectAuthenticationCredentialForVrfChallenge.d.ts.map +1 -0
- package/dist/types/src/core/WebAuthnManager/credentialsHelpers.d.ts +8 -3
- package/dist/types/src/core/WebAuthnManager/credentialsHelpers.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/index.d.ts +119 -15
- package/dist/types/src/core/WebAuthnManager/index.d.ts.map +1 -1
- package/dist/types/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.d.ts +46 -0
- package/dist/types/src/core/WebAuthnManager/threshold/enrollThresholdEd25519Key.d.ts.map +1 -0
- package/dist/types/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.d.ts +48 -0
- package/dist/types/src/core/WebAuthnManager/threshold/rotateThresholdEd25519KeyPostRegistration.d.ts.map +1 -0
- package/dist/types/src/core/WebAuthnManager/userPreferences.d.ts +36 -1
- package/dist/types/src/core/WebAuthnManager/userPreferences.d.ts.map +1 -1
- package/dist/types/src/core/defaultConfigs.d.ts +5 -0
- package/dist/types/src/core/defaultConfigs.d.ts.map +1 -1
- package/dist/types/src/core/digests/intentDigest.d.ts +19 -0
- package/dist/types/src/core/digests/intentDigest.d.ts.map +1 -0
- package/dist/types/src/core/nearCrypto.d.ts +2 -16
- package/dist/types/src/core/nearCrypto.d.ts.map +1 -1
- package/dist/types/src/core/nonceManager.d.ts.map +1 -1
- package/dist/types/src/core/rpcCalls.d.ts +64 -2
- package/dist/types/src/core/rpcCalls.d.ts.map +1 -1
- package/dist/types/src/core/sdkPaths/workers.d.ts +1 -1
- package/dist/types/src/core/sdkPaths/workers.d.ts.map +1 -1
- package/dist/types/src/core/threshold/index.d.ts +1 -0
- package/dist/types/src/core/threshold/index.d.ts.map +1 -0
- package/dist/types/src/core/threshold/thresholdEd25519AuthSession.d.ts +42 -0
- package/dist/types/src/core/threshold/thresholdEd25519AuthSession.d.ts.map +1 -0
- package/dist/types/src/core/threshold/thresholdEd25519RelayerHealth.d.ts +31 -0
- package/dist/types/src/core/threshold/thresholdEd25519RelayerHealth.d.ts.map +1 -0
- package/dist/types/src/core/threshold/thresholdSessionPolicy.d.ts +45 -0
- package/dist/types/src/core/threshold/thresholdSessionPolicy.d.ts.map +1 -0
- package/dist/types/src/core/types/delegate.d.ts +5 -2
- package/dist/types/src/core/types/delegate.d.ts.map +1 -1
- package/dist/types/src/core/types/emailRecovery.d.ts +82 -0
- package/dist/types/src/core/types/emailRecovery.d.ts.map +1 -1
- package/dist/types/src/core/types/rpc.d.ts +1 -0
- package/dist/types/src/core/types/rpc.d.ts.map +1 -1
- package/dist/types/src/core/types/sdkSentEvents.d.ts +82 -30
- package/dist/types/src/core/types/sdkSentEvents.d.ts.map +1 -1
- package/dist/types/src/core/types/signer-worker.d.ts +137 -20
- package/dist/types/src/core/types/signer-worker.d.ts.map +1 -1
- package/dist/types/src/core/types/tatchi.d.ts +10 -1
- package/dist/types/src/core/types/tatchi.d.ts.map +1 -1
- package/dist/types/src/core/types/vrf-worker.d.ts +27 -1
- package/dist/types/src/core/types/vrf-worker.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/plugins/headers.d.ts.map +1 -1
- package/dist/types/src/plugins/plugin-utils.d.ts +1 -1
- package/dist/types/src/plugins/plugin-utils.d.ts.map +1 -1
- package/dist/types/src/plugins/vite.d.ts.map +1 -1
- package/dist/types/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts.map +1 -1
- package/dist/types/src/react/components/AccountMenuButton/ProfileDropdown.d.ts.map +1 -1
- package/dist/types/src/react/components/AccountMenuButton/TransactionSettingsSection.d.ts.map +1 -1
- package/dist/types/src/react/components/AccountMenuButton/index.d.ts.map +1 -1
- package/dist/types/src/react/components/AccountMenuButton/types.d.ts +5 -0
- package/dist/types/src/react/components/AccountMenuButton/types.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/authMenuTypes.d.ts +4 -4
- package/dist/types/src/react/components/PasskeyAuthMenu/authMenuTypes.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/client.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.d.ts +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/controller/usePasskeyAuthMenuController.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/controller/useSDKEvents.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/preload.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/shell.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/skeleton.d.ts +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/skeleton.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/types.d.ts +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/types.d.ts.map +1 -1
- package/dist/types/src/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.d.ts.map +1 -1
- package/dist/types/src/react/context/useTatchiWithSdkFlow.d.ts +2 -2
- package/dist/types/src/react/context/useTatchiWithSdkFlow.d.ts.map +1 -1
- package/dist/types/src/react/index.d.ts +2 -4
- package/dist/types/src/react/index.d.ts.map +1 -1
- package/dist/types/src/react/types.d.ts +8 -25
- package/dist/types/src/react/types.d.ts.map +1 -1
- package/dist/types/src/server/core/AuthService.d.ts +14 -2
- package/dist/types/src/server/core/AuthService.d.ts.map +1 -1
- package/dist/types/src/server/core/SessionService.d.ts +3 -3
- package/dist/types/src/server/core/SessionService.d.ts.map +1 -1
- package/dist/types/src/server/core/ThresholdService/ThresholdSigningService.d.ts +91 -0
- package/dist/types/src/server/core/ThresholdService/ThresholdSigningService.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/config.d.ts +21 -0
- package/dist/types/src/server/core/ThresholdService/config.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/coordinatorGrant.d.ts +35 -0
- package/dist/types/src/server/core/ThresholdService/coordinatorGrant.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/cosigners.d.ts +47 -0
- package/dist/types/src/server/core/ThresholdService/cosigners.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/createThresholdSigningService.d.ts +11 -0
- package/dist/types/src/server/core/ThresholdService/createThresholdSigningService.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/index.d.ts +6 -0
- package/dist/types/src/server/core/ThresholdService/index.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/keygenStrategy.d.ts +79 -0
- package/dist/types/src/server/core/ThresholdService/keygenStrategy.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/kv.d.ts +47 -0
- package/dist/types/src/server/core/ThresholdService/kv.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/relayerKeyMaterial.d.ts +27 -0
- package/dist/types/src/server/core/ThresholdService/relayerKeyMaterial.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/signingHandlers.d.ts +66 -0
- package/dist/types/src/server/core/ThresholdService/signingHandlers.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/stores/AuthSessionStore.d.ts +32 -0
- package/dist/types/src/server/core/ThresholdService/stores/AuthSessionStore.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/stores/KeyStore.d.ts +18 -0
- package/dist/types/src/server/core/ThresholdService/stores/KeyStore.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/stores/SessionStore.d.ts +66 -0
- package/dist/types/src/server/core/ThresholdService/stores/SessionStore.d.ts.map +1 -0
- package/dist/types/src/server/core/ThresholdService/validation.d.ts +129 -0
- package/dist/types/src/server/core/ThresholdService/validation.d.ts.map +1 -0
- package/dist/types/src/server/core/config.d.ts.map +1 -1
- package/dist/types/src/server/core/errors.d.ts.map +1 -1
- package/dist/types/src/server/core/logger.d.ts +1 -0
- package/dist/types/src/server/core/logger.d.ts.map +1 -1
- package/dist/types/src/server/core/nearKeys.d.ts +2 -0
- package/dist/types/src/server/core/nearKeys.d.ts.map +1 -0
- package/dist/types/src/server/core/shamirWorker.d.ts.map +1 -1
- package/dist/types/src/server/core/types.d.ts +321 -1
- package/dist/types/src/server/core/types.d.ts.map +1 -1
- package/dist/types/src/server/email-recovery/emailParsers.d.ts +1 -1
- package/dist/types/src/server/email-recovery/emailParsers.d.ts.map +1 -1
- package/dist/types/src/server/email-recovery/index.d.ts +1 -1
- package/dist/types/src/server/email-recovery/index.d.ts.map +1 -1
- package/dist/types/src/server/email-recovery/rpcCalls.d.ts +1 -1
- package/dist/types/src/server/email-recovery/rpcCalls.d.ts.map +1 -1
- package/dist/types/src/server/email-recovery/zkEmail/proverClient.d.ts.map +1 -1
- package/dist/types/src/server/index.d.ts +2 -0
- package/dist/types/src/server/index.d.ts.map +1 -1
- package/dist/types/src/server/router/cloudflare/createCloudflareRouter.d.ts +22 -0
- package/dist/types/src/server/router/cloudflare/createCloudflareRouter.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/cron.d.ts +18 -0
- package/dist/types/src/server/router/cloudflare/cron.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/email.d.ts +22 -0
- package/dist/types/src/server/router/cloudflare/email.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/http.d.ts +12 -0
- package/dist/types/src/server/router/cloudflare/http.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/createAccountAndRegisterUser.d.ts +3 -0
- package/dist/types/src/server/router/cloudflare/routes/createAccountAndRegisterUser.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/health.d.ts +4 -0
- package/dist/types/src/server/router/cloudflare/routes/health.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/recoverEmail.d.ts +3 -0
- package/dist/types/src/server/router/cloudflare/routes/recoverEmail.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/sessions.d.ts +5 -0
- package/dist/types/src/server/router/cloudflare/routes/sessions.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/shamir.d.ts +3 -0
- package/dist/types/src/server/router/cloudflare/routes/shamir.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/signedDelegate.d.ts +3 -0
- package/dist/types/src/server/router/cloudflare/routes/signedDelegate.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/thresholdEd25519.d.ts +3 -0
- package/dist/types/src/server/router/cloudflare/routes/thresholdEd25519.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/verifyAuthenticationResponse.d.ts +3 -0
- package/dist/types/src/server/router/cloudflare/routes/verifyAuthenticationResponse.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/routes/wellKnown.d.ts +3 -0
- package/dist/types/src/server/router/cloudflare/routes/wellKnown.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare/types.d.ts +49 -0
- package/dist/types/src/server/router/cloudflare/types.d.ts.map +1 -0
- package/dist/types/src/server/router/cloudflare-adaptor.d.ts +7 -106
- package/dist/types/src/server/router/cloudflare-adaptor.d.ts.map +1 -1
- package/dist/types/src/server/router/commonRouterUtils.d.ts +26 -0
- package/dist/types/src/server/router/commonRouterUtils.d.ts.map +1 -0
- package/dist/types/src/server/router/express/cors.d.ts +4 -0
- package/dist/types/src/server/router/express/cors.d.ts.map +1 -0
- package/dist/types/src/server/router/express/createRelayRouter.d.ts +16 -0
- package/dist/types/src/server/router/express/createRelayRouter.d.ts.map +1 -0
- package/dist/types/src/server/router/express/cron.d.ts +12 -0
- package/dist/types/src/server/router/express/cron.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/createAccountAndRegisterUser.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/createAccountAndRegisterUser.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/health.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/health.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/recoverEmail.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/recoverEmail.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/sessions.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/sessions.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/shamir.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/shamir.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/signedDelegate.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/signedDelegate.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/thresholdEd25519.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/thresholdEd25519.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/verifyAuthenticationResponse.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/verifyAuthenticationResponse.d.ts.map +1 -0
- package/dist/types/src/server/router/express/routes/wellKnown.d.ts +4 -0
- package/dist/types/src/server/router/express/routes/wellKnown.d.ts.map +1 -0
- package/dist/types/src/server/router/express-adaptor.d.ts +4 -54
- package/dist/types/src/server/router/express-adaptor.d.ts.map +1 -1
- package/dist/types/src/server/router/logger.d.ts +3 -2
- package/dist/types/src/server/router/logger.d.ts.map +1 -1
- package/dist/types/src/server/router/relay.d.ts +93 -0
- package/dist/types/src/server/router/relay.d.ts.map +1 -0
- package/dist/types/src/server/router/routerOptions.d.ts +4 -0
- package/dist/types/src/server/router/routerOptions.d.ts.map +1 -0
- package/dist/types/src/server/threshold/statusCodes.d.ts +6 -0
- package/dist/types/src/server/threshold/statusCodes.d.ts.map +1 -0
- package/dist/types/src/threshold/participants.d.ts +41 -0
- package/dist/types/src/threshold/participants.d.ts.map +1 -0
- package/dist/types/src/utils/digests.d.ts +3 -0
- package/dist/types/src/utils/digests.d.ts.map +1 -0
- package/dist/types/src/utils/index.d.ts +1 -0
- package/dist/types/src/utils/index.d.ts.map +1 -1
- package/dist/types/src/utils/validation.d.ts +60 -0
- package/dist/types/src/utils/validation.d.ts.map +1 -1
- package/dist/types/src/wasm_signer_worker/pkg/wasm_signer_worker.d.ts +182 -79
- package/dist/types/src/wasm_signer_worker/pkg/wasm_signer_worker.d.ts.map +1 -1
- package/dist/types/src/wasm_vrf_worker/pkg/wasm_vrf_worker.d.ts +45 -1
- package/dist/types/src/wasm_vrf_worker/pkg/wasm_vrf_worker.d.ts.map +1 -1
- package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
- package/dist/workers/wasm_vrf_worker_bg.wasm +0 -0
- package/dist/workers/web3authn-signer.worker.js +83 -47
- package/dist/workers/web3authn-vrf.worker.js +82 -13
- package/package.json +3 -8
- package/dist/cjs/core/TatchiPasskey/recoverAccount.js +0 -429
- package/dist/cjs/core/TatchiPasskey/recoverAccount.js.map +0 -1
- package/dist/cjs/core/WalletIframe/validation.js +0 -67
- package/dist/cjs/core/WalletIframe/validation.js.map +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js +0 -363
- package/dist/cjs/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js.map +0 -1
- package/dist/cjs/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js +0 -707
- package/dist/cjs/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js.map +0 -1
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js +0 -30
- package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js.map +0 -1
- package/dist/cjs/core/WebAuthnManager/WebAuthnFallbacks/index.js +0 -17
- package/dist/cjs/core/WebAuthnManager/WebAuthnFallbacks/index.js.map +0 -1
- package/dist/cjs/core/WebAuthnManager/txDigest.js +0 -85
- package/dist/cjs/core/WebAuthnManager/txDigest.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css +0 -452
- package/dist/cjs/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css.map +0 -1
- package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown-BG_6hcim.css +0 -120
- package/dist/cjs/react/components/AccountMenuButton/ProfileDropdown-BG_6hcim.css.map +0 -1
- package/dist/cjs/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css +0 -77
- package/dist/cjs/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css.map +0 -1
- package/dist/cjs/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css +0 -41
- package/dist/cjs/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css.map +0 -1
- package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-DKMiLeT9.css +0 -1009
- package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-DKMiLeT9.css.map +0 -1
- package/dist/cjs/react/components/SendTxButtonWithTooltip.js +0 -218
- package/dist/cjs/react/components/SendTxButtonWithTooltip.js.map +0 -1
- package/dist/cjs/react/components/ShowQRCode-CB0UCQ_h.css +0 -113
- package/dist/cjs/react/components/ShowQRCode-CB0UCQ_h.css.map +0 -1
- package/dist/cjs/react/components/WalletIframeTxButtonHost.js +0 -177
- package/dist/cjs/react/components/WalletIframeTxButtonHost.js.map +0 -1
- package/dist/cjs/react/index.js.map +0 -1
- 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
- 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
- package/dist/cjs/react/sdk/build-paths.js +0 -55
- package/dist/cjs/react/sdk/build-paths.js.map +0 -1
- package/dist/cjs/react/sdk/src/base-styles.js +0 -21
- package/dist/cjs/react/sdk/src/base-styles.js.map +0 -1
- package/dist/cjs/react/sdk/src/config.js +0 -35
- package/dist/cjs/react/sdk/src/config.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/ChainsigAddressManager/index.js +0 -30
- package/dist/cjs/react/sdk/src/core/ChainsigAddressManager/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/EmailRecovery/emailRecoveryPendingStore.js +0 -69
- package/dist/cjs/react/sdk/src/core/EmailRecovery/emailRecoveryPendingStore.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/EmailRecovery/index.js +0 -115
- package/dist/cjs/react/sdk/src/core/EmailRecovery/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/IndexedDBManager/index.js +0 -140
- package/dist/cjs/react/sdk/src/core/IndexedDBManager/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/IndexedDBManager/passkeyClientDB.js +0 -685
- package/dist/cjs/react/sdk/src/core/IndexedDBManager/passkeyClientDB.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/IndexedDBManager/passkeyNearKeysDB.js +0 -192
- package/dist/cjs/react/sdk/src/core/IndexedDBManager/passkeyNearKeysDB.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/NearClient.js +0 -273
- package/dist/cjs/react/sdk/src/core/NearClient.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/NearRpcError.js +0 -116
- package/dist/cjs/react/sdk/src/core/NearRpcError.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/OfflineExport/overlay.js +0 -56
- package/dist/cjs/react/sdk/src/core/OfflineExport/overlay.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/actions.js +0 -452
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/actions.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/delegateAction.js +0 -76
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/delegateAction.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/emailRecovery.js +0 -919
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/emailRecovery.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +0 -97
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/index.js +0 -1298
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/linkDevice.js +0 -711
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/linkDevice.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/login.js +0 -578
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/login.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/recoverAccount.js +0 -429
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/recoverAccount.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/registration.js +0 -340
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/registration.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/relay.js +0 -112
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/relay.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/scanDevice.js +0 -106
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/scanDevice.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/signNEP413.js +0 -89
- package/dist/cjs/react/sdk/src/core/TatchiPasskey/signNEP413.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/IframeTransport.js +0 -330
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/IframeTransport.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/on-events-progress-bus.js +0 -210
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/on-events-progress-bus.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/overlay-controller.js +0 -100
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/overlay-controller.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/overlay-styles.js +0 -128
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/overlay-styles.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/router.js +0 -1062
- package/dist/cjs/react/sdk/src/core/WalletIframe/client/router.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WalletIframe/events.js +0 -11
- package/dist/cjs/react/sdk/src/core/WalletIframe/events.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WalletIframe/host-mode.js +0 -11
- package/dist/cjs/react/sdk/src/core/WalletIframe/host-mode.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WalletIframe/validation.js +0 -71
- package/dist/cjs/react/sdk/src/core/WalletIframe/validation.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/Drawer/index.js +0 -660
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/Drawer/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +0 -223
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js +0 -135
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js +0 -363
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js +0 -707
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +0 -190
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +0 -258
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js +0 -261
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js +0 -281
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js +0 -256
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js +0 -146
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/index.js +0 -503
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js +0 -212
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +0 -183
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/asset-base.js +0 -46
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/asset-base.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js +0 -55
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/common/formatters.js +0 -68
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/common/formatters.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js +0 -10
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui.js +0 -221
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/css/css-loader.js +0 -110
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/css/css-loader.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/ensure-defined.js +0 -24
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/ensure-defined.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/lit-events.js +0 -35
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/lit-events.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/tags.js +0 -66
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/LitComponents/tags.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +0 -39
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +0 -71
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +0 -49
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +0 -73
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +0 -69
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +0 -27
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +0 -46
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +0 -118
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +0 -16
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +0 -105
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +0 -80
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +0 -64
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +0 -114
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +0 -82
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/index.js +0 -452
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js +0 -36
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +0 -83
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +0 -61
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js +0 -50
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +0 -56
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +0 -34
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js +0 -47
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +0 -54
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +0 -77
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +0 -64
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +0 -40
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +0 -66
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +0 -90
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +0 -136
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +0 -52
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +0 -173
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +0 -119
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js +0 -22
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js +0 -27
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +0 -52
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js +0 -33
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js +0 -31
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js +0 -50
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +0 -156
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js +0 -30
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +0 -59
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js +0 -27
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +0 -48
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +0 -59
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js +0 -45
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js +0 -54
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js +0 -31
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js +0 -28
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js +0 -30
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js +0 -42
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/index.js +0 -375
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js +0 -26
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/index.js +0 -17
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +0 -210
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/credentialsHelpers.js +0 -301
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/credentialsHelpers.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/index.js +0 -890
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/touchIdPrompt.js +0 -282
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/touchIdPrompt.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/txDigest.js +0 -85
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/txDigest.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/userHandle.js +0 -39
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/userHandle.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/userPreferences.js +0 -308
- package/dist/cjs/react/sdk/src/core/WebAuthnManager/userPreferences.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/defaultConfigs.js +0 -110
- package/dist/cjs/react/sdk/src/core/defaultConfigs.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/nearCrypto.js +0 -57
- package/dist/cjs/react/sdk/src/core/nearCrypto.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/nonceManager.js +0 -403
- package/dist/cjs/react/sdk/src/core/nonceManager.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/rpcCalls.js +0 -446
- package/dist/cjs/react/sdk/src/core/rpcCalls.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/sdkPaths/base.js +0 -49
- package/dist/cjs/react/sdk/src/core/sdkPaths/base.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/sdkPaths/workers.js +0 -45
- package/dist/cjs/react/sdk/src/core/sdkPaths/workers.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/accountIds.js +0 -33
- package/dist/cjs/react/sdk/src/core/types/accountIds.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/actions.js +0 -274
- package/dist/cjs/react/sdk/src/core/types/actions.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/authenticatorOptions.js +0 -51
- package/dist/cjs/react/sdk/src/core/types/authenticatorOptions.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/emailRecovery.js +0 -33
- package/dist/cjs/react/sdk/src/core/types/emailRecovery.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/linkDevice.js +0 -25
- package/dist/cjs/react/sdk/src/core/types/linkDevice.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/rpc.js +0 -25
- package/dist/cjs/react/sdk/src/core/types/rpc.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/sdkSentEvents.js +0 -133
- package/dist/cjs/react/sdk/src/core/types/sdkSentEvents.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/signer-worker.js +0 -69
- package/dist/cjs/react/sdk/src/core/types/signer-worker.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/types/vrf-worker.js +0 -74
- package/dist/cjs/react/sdk/src/core/types/vrf-worker.js.map +0 -1
- package/dist/cjs/react/sdk/src/core/workerControlMessages.js +0 -21
- package/dist/cjs/react/sdk/src/core/workerControlMessages.js.map +0 -1
- package/dist/cjs/react/sdk/src/theme/base-styles.js +0 -157
- package/dist/cjs/react/sdk/src/theme/base-styles.js.map +0 -1
- package/dist/cjs/react/sdk/src/theme/palette.js +0 -209
- package/dist/cjs/react/sdk/src/theme/palette.js.map +0 -1
- package/dist/cjs/react/sdk/src/utils/base58.js +0 -24
- package/dist/cjs/react/sdk/src/utils/base58.js.map +0 -1
- package/dist/cjs/react/sdk/src/utils/base64.js +0 -59
- package/dist/cjs/react/sdk/src/utils/base64.js.map +0 -1
- package/dist/cjs/react/sdk/src/utils/encoders.js +0 -18
- package/dist/cjs/react/sdk/src/utils/encoders.js.map +0 -1
- package/dist/cjs/react/sdk/src/utils/errors.js +0 -151
- package/dist/cjs/react/sdk/src/utils/errors.js.map +0 -1
- package/dist/cjs/react/sdk/src/utils/index.js +0 -25
- package/dist/cjs/react/sdk/src/utils/index.js.map +0 -1
- package/dist/cjs/react/sdk/src/utils/qrScanner.js +0 -320
- package/dist/cjs/react/sdk/src/utils/qrScanner.js.map +0 -1
- package/dist/cjs/react/sdk/src/utils/validation.js +0 -67
- package/dist/cjs/react/sdk/src/utils/validation.js.map +0 -1
- package/dist/cjs/server/sdk/src/core/WalletIframe/validation.js +0 -17
- package/dist/cjs/server/sdk/src/core/WalletIframe/validation.js.map +0 -1
- package/dist/cjs/utils/encoders.js +0 -18
- package/dist/cjs/utils/encoders.js.map +0 -1
- package/dist/cjs/utils/index.js +0 -25
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/esm/_virtual/rolldown_runtime.js +0 -28
- package/dist/esm/core/TatchiPasskey/recoverAccount.js +0 -428
- package/dist/esm/core/TatchiPasskey/recoverAccount.js.map +0 -1
- package/dist/esm/core/WalletIframe/validation.js +0 -52
- package/dist/esm/core/WalletIframe/validation.js.map +0 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js +0 -357
- package/dist/esm/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js.map +0 -1
- package/dist/esm/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js +0 -703
- package/dist/esm/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js.map +0 -1
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js +0 -29
- package/dist/esm/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js.map +0 -1
- package/dist/esm/core/WebAuthnManager/WebAuthnFallbacks/index.js +0 -12
- package/dist/esm/core/WebAuthnManager/WebAuthnFallbacks/index.js.map +0 -1
- package/dist/esm/core/WebAuthnManager/txDigest.js +0 -83
- package/dist/esm/core/WebAuthnManager/txDigest.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/react/_virtual/rolldown_runtime.js +0 -28
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css +0 -452
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css.map +0 -1
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown-BG_6hcim.css +0 -120
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown-BG_6hcim.css.map +0 -1
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css +0 -77
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css.map +0 -1
- package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css +0 -41
- package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css.map +0 -1
- package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-DKMiLeT9.css +0 -1009
- package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-DKMiLeT9.css.map +0 -1
- package/dist/esm/react/components/SendTxButtonWithTooltip.js +0 -214
- package/dist/esm/react/components/SendTxButtonWithTooltip.js.map +0 -1
- package/dist/esm/react/components/ShowQRCode-CB0UCQ_h.css +0 -113
- package/dist/esm/react/components/ShowQRCode-CB0UCQ_h.css.map +0 -1
- package/dist/esm/react/components/WalletIframeTxButtonHost.js +0 -174
- package/dist/esm/react/components/WalletIframeTxButtonHost.js.map +0 -1
- package/dist/esm/react/index.js.map +0 -1
- 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
- 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
- package/dist/esm/react/sdk/build-paths.js.map +0 -1
- package/dist/esm/react/sdk/src/base-styles.js.map +0 -1
- package/dist/esm/react/sdk/src/config.js.map +0 -1
- package/dist/esm/react/sdk/src/core/ChainsigAddressManager/index.js +0 -29
- package/dist/esm/react/sdk/src/core/ChainsigAddressManager/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/EmailRecovery/emailRecoveryPendingStore.js +0 -63
- package/dist/esm/react/sdk/src/core/EmailRecovery/emailRecoveryPendingStore.js.map +0 -1
- package/dist/esm/react/sdk/src/core/EmailRecovery/index.js +0 -105
- package/dist/esm/react/sdk/src/core/EmailRecovery/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/IndexedDBManager/index.js +0 -133
- package/dist/esm/react/sdk/src/core/IndexedDBManager/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/IndexedDBManager/passkeyClientDB.js +0 -678
- package/dist/esm/react/sdk/src/core/IndexedDBManager/passkeyClientDB.js.map +0 -1
- package/dist/esm/react/sdk/src/core/IndexedDBManager/passkeyNearKeysDB.js +0 -185
- package/dist/esm/react/sdk/src/core/IndexedDBManager/passkeyNearKeysDB.js.map +0 -1
- package/dist/esm/react/sdk/src/core/NearClient.js +0 -271
- package/dist/esm/react/sdk/src/core/NearClient.js.map +0 -1
- package/dist/esm/react/sdk/src/core/NearRpcError.js.map +0 -1
- package/dist/esm/react/sdk/src/core/OfflineExport/overlay.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/actions.js +0 -448
- package/dist/esm/react/sdk/src/core/TatchiPasskey/actions.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/delegateAction.js +0 -75
- package/dist/esm/react/sdk/src/core/TatchiPasskey/delegateAction.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/emailRecovery.js +0 -908
- package/dist/esm/react/sdk/src/core/TatchiPasskey/emailRecovery.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +0 -96
- package/dist/esm/react/sdk/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/index.js +0 -1298
- package/dist/esm/react/sdk/src/core/TatchiPasskey/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/linkDevice.js +0 -710
- package/dist/esm/react/sdk/src/core/TatchiPasskey/linkDevice.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/login.js +0 -569
- package/dist/esm/react/sdk/src/core/TatchiPasskey/login.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/recoverAccount.js +0 -428
- package/dist/esm/react/sdk/src/core/TatchiPasskey/recoverAccount.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/registration.js +0 -338
- package/dist/esm/react/sdk/src/core/TatchiPasskey/registration.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/relay.js +0 -111
- package/dist/esm/react/sdk/src/core/TatchiPasskey/relay.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/scanDevice.js +0 -104
- package/dist/esm/react/sdk/src/core/TatchiPasskey/scanDevice.js.map +0 -1
- package/dist/esm/react/sdk/src/core/TatchiPasskey/signNEP413.js +0 -88
- package/dist/esm/react/sdk/src/core/TatchiPasskey/signNEP413.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WalletIframe/client/IframeTransport.js +0 -329
- package/dist/esm/react/sdk/src/core/WalletIframe/client/IframeTransport.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WalletIframe/client/on-events-progress-bus.js +0 -208
- package/dist/esm/react/sdk/src/core/WalletIframe/client/on-events-progress-bus.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WalletIframe/client/overlay-controller.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WalletIframe/client/overlay-styles.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WalletIframe/client/router.js +0 -1061
- package/dist/esm/react/sdk/src/core/WalletIframe/client/router.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WalletIframe/events.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WalletIframe/host-mode.js +0 -9
- package/dist/esm/react/sdk/src/core/WalletIframe/host-mode.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WalletIframe/validation.js +0 -55
- package/dist/esm/react/sdk/src/core/WalletIframe/validation.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/Drawer/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js +0 -219
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/HaloBorder/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js +0 -357
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js +0 -703
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js +0 -188
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js +0 -255
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirmer-wrapper.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js +0 -254
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/LitElementWithProps.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/index.js +0 -500
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js +0 -182
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/TxTree/tx-tree-utils.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/asset-base.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/common/PadlockIcon.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/common/formatters.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui-types.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui.js +0 -219
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/confirm-ui.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/css/css-loader.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/ensure-defined.js +0 -23
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/ensure-defined.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/lit-events.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/tags.js +0 -47
- package/dist/esm/react/sdk/src/core/WebAuthnManager/LitComponents/tags.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js +0 -32
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/getDeviceNumber.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +0 -70
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js +0 -46
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/decryptPrivateKeyWithPrf.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js +0 -70
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/deriveNearKeypairAndEncryptFromSerialized.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js +0 -66
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/exportNearKeypairUi.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js +0 -24
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/extractCosePublicKey.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js +0 -43
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/recoverKeypairFromPasskey.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js +0 -115
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/registerDevice2WithDerivedKey.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js +0 -14
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/session.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +0 -102
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js +0 -77
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signNep413Message.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js +0 -61
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionWithKeyPair.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +0 -111
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js +0 -80
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/handlers/validation.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/index.js +0 -451
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js +0 -81
- package/dist/esm/react/sdk/src/core/WebAuthnManager/SignerWorkerManager/sessionMessages.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js +0 -56
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/common.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js +0 -54
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/near.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js +0 -32
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestAdapter.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +0 -53
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js +0 -63
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/vrf.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js +0 -39
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/webauthn.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js +0 -65
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/determineConfirmationConfig.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js +0 -89
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/localOnly.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +0 -135
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js +0 -51
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/requestRegistrationCredentialConfirmation.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +0 -172
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +0 -118
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js +0 -51
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/checkVrfStatus.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js +0 -155
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndPrepareSigningSession.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js +0 -29
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/createSigningSessionChannel.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js +0 -58
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/deriveVrfKeypairFromPrf.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js +0 -46
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfChallenge.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js +0 -58
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/generateVrfKeypairBootstrap.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/index.js +0 -374
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/index.js +0 -12
- package/dist/esm/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js +0 -203
- package/dist/esm/react/sdk/src/core/WebAuthnManager/WebAuthnFallbacks/safari-fallbacks.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/credentialsHelpers.js +0 -288
- package/dist/esm/react/sdk/src/core/WebAuthnManager/credentialsHelpers.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/index.js +0 -889
- package/dist/esm/react/sdk/src/core/WebAuthnManager/index.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/touchIdPrompt.js +0 -270
- package/dist/esm/react/sdk/src/core/WebAuthnManager/touchIdPrompt.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/txDigest.js +0 -83
- package/dist/esm/react/sdk/src/core/WebAuthnManager/txDigest.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/userHandle.js +0 -38
- package/dist/esm/react/sdk/src/core/WebAuthnManager/userHandle.js.map +0 -1
- package/dist/esm/react/sdk/src/core/WebAuthnManager/userPreferences.js +0 -307
- package/dist/esm/react/sdk/src/core/WebAuthnManager/userPreferences.js.map +0 -1
- package/dist/esm/react/sdk/src/core/defaultConfigs.js +0 -102
- package/dist/esm/react/sdk/src/core/defaultConfigs.js.map +0 -1
- package/dist/esm/react/sdk/src/core/nearCrypto.js +0 -48
- package/dist/esm/react/sdk/src/core/nearCrypto.js.map +0 -1
- package/dist/esm/react/sdk/src/core/nonceManager.js +0 -402
- package/dist/esm/react/sdk/src/core/nonceManager.js.map +0 -1
- package/dist/esm/react/sdk/src/core/rpcCalls.js +0 -431
- package/dist/esm/react/sdk/src/core/rpcCalls.js.map +0 -1
- package/dist/esm/react/sdk/src/core/sdkPaths/base.js.map +0 -1
- package/dist/esm/react/sdk/src/core/sdkPaths/workers.js +0 -42
- package/dist/esm/react/sdk/src/core/sdkPaths/workers.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/accountIds.js +0 -26
- package/dist/esm/react/sdk/src/core/types/accountIds.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/actions.js +0 -263
- package/dist/esm/react/sdk/src/core/types/actions.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/authenticatorOptions.js +0 -47
- package/dist/esm/react/sdk/src/core/types/authenticatorOptions.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/emailRecovery.js +0 -26
- package/dist/esm/react/sdk/src/core/types/emailRecovery.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/linkDevice.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/rpc.js +0 -19
- package/dist/esm/react/sdk/src/core/types/rpc.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/sdkSentEvents.js +0 -116
- package/dist/esm/react/sdk/src/core/types/sdkSentEvents.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/signer-worker.js +0 -51
- package/dist/esm/react/sdk/src/core/types/signer-worker.js.map +0 -1
- package/dist/esm/react/sdk/src/core/types/vrf-worker.js +0 -66
- package/dist/esm/react/sdk/src/core/types/vrf-worker.js.map +0 -1
- package/dist/esm/react/sdk/src/core/workerControlMessages.js.map +0 -1
- package/dist/esm/react/sdk/src/theme/base-styles.js.map +0 -1
- package/dist/esm/react/sdk/src/theme/palette.js.map +0 -1
- package/dist/esm/react/sdk/src/utils/base58.js +0 -17
- package/dist/esm/react/sdk/src/utils/base58.js.map +0 -1
- package/dist/esm/react/sdk/src/utils/base64.js +0 -50
- package/dist/esm/react/sdk/src/utils/base64.js.map +0 -1
- package/dist/esm/react/sdk/src/utils/encoders.js +0 -13
- package/dist/esm/react/sdk/src/utils/encoders.js.map +0 -1
- package/dist/esm/react/sdk/src/utils/errors.js +0 -140
- package/dist/esm/react/sdk/src/utils/errors.js.map +0 -1
- package/dist/esm/react/sdk/src/utils/index.js +0 -20
- package/dist/esm/react/sdk/src/utils/index.js.map +0 -1
- package/dist/esm/react/sdk/src/utils/qrScanner.js.map +0 -1
- package/dist/esm/react/sdk/src/utils/validation.js +0 -61
- package/dist/esm/react/sdk/src/utils/validation.js.map +0 -1
- package/dist/esm/sdk/HaloBorder-D7vjXHnY.js +0 -1111
- package/dist/esm/sdk/WebAuthnFallbacks-Bl4BTsNt.js +0 -615
- package/dist/esm/sdk/actions-O1FD5Bq8.js +0 -252
- package/dist/esm/sdk/asset-base-K63RlTrt.js +0 -43
- package/dist/esm/sdk/base-Qt2P7SNn.js +0 -19
- package/dist/esm/sdk/base-Qt2P7SNn.js.map +0 -1
- package/dist/esm/sdk/base64-DBPGuXh4.js +0 -48
- package/dist/esm/sdk/browser-B3uuzKL0.js +0 -2443
- package/dist/esm/sdk/button-with-tooltip.css +0 -260
- package/dist/esm/sdk/chunk-DIQ1yeMN.js +0 -38
- package/dist/esm/sdk/createAdapters-DIRR8_Z9.js +0 -526
- package/dist/esm/sdk/createAdapters-Yga6W0en.js +0 -3202
- package/dist/esm/sdk/createAdapters-Yga6W0en.js.map +0 -1
- package/dist/esm/sdk/css-loader-BHxJyE5o.js +0 -1098
- package/dist/esm/sdk/css-loader-BrMMlG4X.js +0 -1184
- package/dist/esm/sdk/css-loader-BrMMlG4X.js.map +0 -1
- package/dist/esm/sdk/defaultConfigs-CfQDV-ya.js +0 -100
- package/dist/esm/sdk/ensure-defined-CHInSx7l.js +0 -34
- package/dist/esm/sdk/errors-D9ar28Dr.js +0 -265
- package/dist/esm/sdk/getDeviceNumber-BpernPnM.js +0 -121
- package/dist/esm/sdk/getDeviceNumber-BpernPnM.js.map +0 -1
- package/dist/esm/sdk/getDeviceNumber-zsOHT_Um.js +0 -30
- package/dist/esm/sdk/iframe-button-host.css +0 -84
- package/dist/esm/sdk/iframe-host-BisiSSOa.js +0 -213
- package/dist/esm/sdk/iframe-host-BisiSSOa.js.map +0 -1
- package/dist/esm/sdk/iframe-host-BoarlHRm.js +0 -1053
- package/dist/esm/sdk/iframe-host-BoarlHRm.js.map +0 -1
- package/dist/esm/sdk/iframe-host-CefZOSX2.js +0 -1105
- package/dist/esm/sdk/iframe-host-DQCSzj7r.js +0 -215
- package/dist/esm/sdk/iframe-tx-button-bootstrap.js +0 -220
- package/dist/esm/sdk/lit-events-BKobq01K.js +0 -29
- package/dist/esm/sdk/lit-events-BKobq01K.js.map +0 -1
- package/dist/esm/sdk/localOnly-BHScJasw.js +0 -93
- package/dist/esm/sdk/localOnly-VevCI7H0.js +0 -102
- package/dist/esm/sdk/localOnly-VevCI7H0.js.map +0 -1
- package/dist/esm/sdk/overlay-ZGbucXIa.js +0 -431
- package/dist/esm/sdk/registration-bKEg9Zr2.js +0 -133
- package/dist/esm/sdk/registration-bKEg9Zr2.js.map +0 -1
- package/dist/esm/sdk/registration-lDD60Ytt.js +0 -142
- package/dist/esm/sdk/requestHelpers-Dh1hEYL9.js +0 -445
- package/dist/esm/sdk/requestHelpers-aUKhXiEl.js +0 -1393
- package/dist/esm/sdk/requestHelpers-aUKhXiEl.js.map +0 -1
- package/dist/esm/sdk/router-BWtacLJg.js +0 -1799
- package/dist/esm/sdk/rpcCalls-CYGJSCgm.js +0 -10
- package/dist/esm/sdk/rpcCalls-DZZSa-sk.js +0 -427
- package/dist/esm/sdk/sdkSentEvents-_jrJLIhw.js +0 -128
- package/dist/esm/sdk/tags-C2Wlhqjd.js +0 -47
- package/dist/esm/sdk/transactions-Cn9xTWlK.js +0 -166
- package/dist/esm/sdk/transactions-Cn9xTWlK.js.map +0 -1
- package/dist/esm/sdk/transactions-DfdwDQCn.js +0 -178
- package/dist/esm/sdk/tx-confirmer-wrapper-lHNgz9i4.js +0 -2690
- package/dist/esm/sdk/tx-tree-themes-BND0SU2h.js +0 -572
- package/dist/esm/sdk/tx-tree-themes-i3It4IYY.js +0 -573
- package/dist/esm/sdk/tx-tree-themes-i3It4IYY.js.map +0 -1
- package/dist/esm/sdk/txDigest-CxjhSCgm.js +0 -89
- package/dist/esm/sdk/validation-DhPPUba7.js +0 -24
- package/dist/esm/sdk/validation-DhPPUba7.js.map +0 -1
- package/dist/esm/sdk/validation-DtLVzHDY.js +0 -50
- package/dist/esm/sdk/w3a-button-with-tooltip.js +0 -3316
- package/dist/esm/sdk/w3a-tx-button.js +0 -8
- package/dist/esm/server/sdk/src/core/WalletIframe/validation.js +0 -14
- package/dist/esm/server/sdk/src/core/WalletIframe/validation.js.map +0 -1
- package/dist/esm/utils/encoders.js +0 -13
- package/dist/esm/utils/encoders.js.map +0 -1
- package/dist/esm/utils/index.js +0 -20
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/types/src/core/TatchiPasskey/recoverAccount.d.ts +0 -112
- package/dist/types/src/core/TatchiPasskey/recoverAccount.d.ts.map +0 -1
- package/dist/types/src/core/WalletIframe/host/WalletHostElements.d.ts +0 -55
- package/dist/types/src/core/WalletIframe/host/WalletHostElements.d.ts.map +0 -1
- package/dist/types/src/core/WalletIframe/validation.d.ts +0 -24
- package/dist/types/src/core/WalletIframe/validation.d.ts.map +0 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/ButtonWithTooltip.d.ts +0 -160
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/ButtonWithTooltip.d.ts.map +0 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.d.ts +0 -107
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-geometry.d.ts.map +0 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.d.ts +0 -179
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-host.d.ts.map +0 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-tx-button-bootstrap-script.d.ts +0 -7
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/iframe-tx-button-bootstrap-script.d.ts.map +0 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/index.d.ts +0 -6
- package/dist/types/src/core/WebAuthnManager/LitComponents/IframeButtonWithTooltipConfirmer/index.d.ts.map +0 -1
- package/dist/types/src/core/WebAuthnManager/LitComponents/common/iframe-messages.d.ts +0 -112
- package/dist/types/src/core/WebAuthnManager/LitComponents/common/iframe-messages.d.ts.map +0 -1
- package/dist/types/src/core/WebAuthnManager/txDigest.d.ts +0 -146
- package/dist/types/src/core/WebAuthnManager/txDigest.d.ts.map +0 -1
- package/dist/types/src/core/types/components.d.ts +0 -2
- package/dist/types/src/core/types/components.d.ts.map +0 -1
- package/dist/types/src/react/components/SendTxButtonWithTooltip.d.ts +0 -31
- package/dist/types/src/react/components/SendTxButtonWithTooltip.d.ts.map +0 -1
- package/dist/types/src/react/components/WalletIframeTxButtonHost.d.ts +0 -30
- package/dist/types/src/react/components/WalletIframeTxButtonHost.d.ts.map +0 -1
- /package/dist/esm/react/{sdk/build-paths.js → build-paths.js} +0 -0
- /package/dist/esm/react/{sdk/src → src}/base-styles.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/config.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/NearRpcError.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/OfflineExport/overlay.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WalletIframe/client/overlay-controller.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WalletIframe/client/overlay-styles.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WalletIframe/events.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/Drawer/index.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/HaloBorder/index.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-drawer.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/IframeTxConfirmer/viewer-modal.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/PasskeyHaloLoading/index.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/TxTree/tx-tree-themes.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/asset-base.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/common/PadlockIcon.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/common/formatters.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/confirm-ui-types.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/css/css-loader.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/LitComponents/lit-events.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/SignerWorkerManager/sessionHandshake.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/createAdapters.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/requestHelpers.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/ui.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/types.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/checkSessionStatus.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/clearSession.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/clearVrf.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/confirmAndDeriveDevice2RegistrationSession.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/dispenseSessionKey.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/mintSessionKeysAndSendToSigner.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/prepareDecryptSession.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/requestRegistrationCredentialConfirmation.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassDecryptVrfKeypair.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/shamir3PassEncryptCurrentVrfKeypair.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/handlers/unlockVrfKeypair.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/WebAuthnManager/VrfWorkerManager/secureConfirmBridge.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/sdkPaths/base.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/types/linkDevice.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/core/workerControlMessages.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/theme/base-styles.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/theme/palette.js +0 -0
- /package/dist/esm/react/{sdk/src → src}/utils/qrScanner.js +0 -0
- /package/dist/esm/sdk/{lit-events-C-jpeT5r.js → lit-events-Bb4tAEO2.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","names":["parsedOrigin: URL","OverlayController","err: Error & { code?: string; details?: unknown }","full: ParentToChildEnvelope","cancelEnvelope: ParentToChildEnvelope"],"sources":["../../../../../src/core/WalletIframe/client/router.ts"],"sourcesContent":["/*\n * WalletIframeRouter - Client-Side Communication Layer\n *\n * Owns all iframe overlay show/hide behavior for WebAuthn activation. It is the\n * single place that decides *how* the wallet iframe is displayed (fullscreen vs\n * anchored, sticky mode, force-fullscreen during registration, etc.).\n *\n * Responsibilities:\n * - Request/Response Correlation: Tracks pending requests with unique IDs.\n * - Progress Event Bridging: Receives PROGRESS from the wallet iframe and forwards\n * them to app `onEvent` handlers.\n * - Overlay Ownership:\n * - Delegates *when* to show/hide to OnEventsProgressBus (based on progress events).\n * - Executes *how* to show/hide via OverlayController (DOM / CSS / ARIA).\n * - Also reacts to wallet-host UI messages (e.g., WALLET_UI_CLOSED) and export flows.\n * - Timeout Handling: Manages request timeouts and cleanup.\n * - Message Serialization: Strips non-serializable functions from messages.\n * - Error Handling: Converts iframe errors to parent-appropriate errors.\n *\n * High-level flow:\n *\n * Step legend\n * -----------\n * (1) App calls a router RPC (executeAction, registerPasskey, etc).\n * (2) Router posts request to iframe and tracks a pending entry.\n * (3) Wallet iframe sends PROGRESS messages back to the router.\n * (4) Router forwards ProgressPayloads into OnEventsProgressBus.\n * (5) OnEventsProgressBus decides 'show' | 'hide' and calls router adapters.\n * (6) Router delegates to OverlayController to show|hide the iframe.\n * (7) Router receives final result, resolves the pending promise, unregisters,\n * and may hide the overlay if no other request still needs it.\n *\n * +-----------+ +--------------------+ +----------------------+ +----------------------+\n * | App | | WalletIframeRouter | | OnEventsProgressBus | | OverlayController |\n * +-----+-----+ +---------+----------+ +----------+-----------+ +----------+-----------+\n * | (1) RPC call (executeAction, etc.) | |\n * |---------------------->|---------------------------->| |\n * | | |\n * | (2) post(): send request to iframe |\n * | | |\n * | (3) PROGRESS from iframe via onPortMessage() |\n * |<----------------------------------------------------| |\n * | | |\n * | (4) ProgressPayload → heuristic |\n * | |---(5) 'show'|'hide' intent-->|\n * | | |\n * | (6) showFrameForActivation() | hideFrameForActivation() |\n * | | |\n * | | (6) show()|hide() |\n * | |----------------------------->|\n * | | |\n * | (7) PM_RESULT/ERROR → resolve pending, maybe hide overlay |\n * |<----------------------------------------------------| |\n *\n * Communication Flow (requests):\n * 1. Parent calls RPC method (e.g., registerPasskey).\n * 2. Router creates unique request ID and pending entry.\n * 3. Message sent to iframe via MessagePort.\n * 4. Progress events bridged back to parent callbacks and fed into OnEventsProgressBus.\n * 5. OnEventsProgressBus emits show/hide intents; router invokes OverlayController.\n * 6. Final result resolves the pending promise; router unregisters and may hide overlay.\n */\n\nimport {\n type ParentToChildEnvelope,\n type ChildToParentEnvelope,\n type ProgressPayload,\n type PreferencesChangedPayload,\n} from '../shared/messages';\nimport { SignedTransaction } from '../../NearClient';\nimport { OnEventsProgressBus, defaultPhaseHeuristics } from './on-events-progress-bus';\nimport type {\n ActionSSEEvent,\n ActionHooksOptions,\n AfterCall,\n AccountRecoverySSEEvent,\n DelegateActionSSEEvent,\n DeviceLinkingSSEEvent,\n EmailRecoverySSEEvent,\n LoginSSEvent,\n RegistrationSSEEvent,\n SendTransactionHooksOptions,\n SignAndSendTransactionHooksOptions,\n} from '../../types/sdkSentEvents';\nimport {\n RegistrationPhase,\n LoginPhase,\n ActionPhase,\n DeviceLinkingPhase,\n AccountRecoveryPhase,\n EmailRecoveryPhase,\n} from '../../types/sdkSentEvents';\nimport type {\n ActionResult,\n GetRecentLoginsResult,\n LoginAndCreateSessionResult,\n LoginSession,\n RegistrationResult,\n SignTransactionResult,\n} from '../../types/tatchi';\nimport {\n ActionArgs,\n TransactionInput,\n TxExecutionStatus\n} from '../../types';\nimport type { DelegateActionInput } from '../../types/delegate';\nimport { IframeTransport } from './IframeTransport';\nimport OverlayController, { type DOMRectLike } from './overlay-controller';\nimport { isObject, isPlainSignedTransactionLike, extractBorshBytesFromPlainSignedTx, isBoolean } from '../validation';\nimport type { WalletUIRegistry } from '../host/iframe-lit-element-registry';\nimport { toError } from '../../../utils/errors';\nimport {\n DeviceLinkingQRData,\n LinkDeviceResult,\n StartDevice2LinkingFlowArgs,\n StartDevice2LinkingFlowResults,\n} from '../../types/linkDevice'\nimport type { AuthenticatorOptions } from '../../types/authenticatorOptions';\nimport type { ConfirmationConfig } from '../../types/signer-worker';\nimport type { AccessKeyList } from '../../NearClient';\nimport type { SignNEP413MessageResult } from '../../TatchiPasskey/signNEP413';\nimport type { RecoveryResult } from '../../TatchiPasskey';\nimport { openOfflineExportWindow } from '../../OfflineExport/index.js';\nimport type { DerivedAddressRecord } from '../../IndexedDBManager';\nimport type { EmailRecoveryContracts } from '../../types/tatchi';\n\n// Simple, framework-agnostic service iframe client.\n// Responsibilities split:\n// - IframeTransport: low-level mount + load + CONNECT/READY handshake (MessagePort)\n// - WalletIframeRouter (this): request/response correlation, progress events,\n// overlay display, and high-level wallet RPC helpers\n\nexport interface WalletIframeRouterOptions {\n walletOrigin: string; // e.g., https://wallet.example.com\n servicePath?: string; // default '/wallet-service'\n connectTimeoutMs?: number; // default 8000\n requestTimeoutMs?: number; // default 20000\n theme?: 'dark' | 'light';\n // Enable verbose client-side logging for debugging\n debug?: boolean;\n // Test-only/diagnostic options (not part of the public API contract for apps)\n testOptions?: {\n // Optional identity/ownership tags for the iframe instance (useful for tests/tools)\n routerId?: string;\n ownerTag?: string; // e.g., 'app' | 'tests'\n // Lazy mounting: when false, do not auto-connect/mount during init(); connect on first use\n autoMount?: boolean;\n };\n // Optional config forwarded to wallet host\n nearRpcUrl?: string;\n nearNetwork?: 'testnet' | 'mainnet';\n contractId?: string;\n relayer?: {\n url: string;\n };\n vrfWorkerConfigs?: Record<string, unknown>;\n rpIdOverride?: string;\n authenticatorOptions?: AuthenticatorOptions;\n emailRecoveryContracts?: Partial<EmailRecoveryContracts>;\n // SDK asset base path for embedded bundles when mounting same‑origin via srcdoc\n // Must serve dist/esm under this base path. Defaults to '/sdk'.\n sdkBasePath?: string;\n // Optional: pre-register UI components in wallet host\n uiRegistry?: Record<string, unknown>;\n // Optional: explorer base URL for TxTree links\n nearExplorerUrl?: string;\n}\n\ntype Pending = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n timer: number | undefined;\n onProgress?: (payload: ProgressPayload) => void;\n onTimeout: () => Error;\n};\n\ntype PostResult<T> = {\n ok: boolean,\n result: T\n}\n\nexport class WalletIframeRouter {\n private opts: Required<WalletIframeRouterOptions>;\n // Low-level transport handling iframe mount + handshake\n private transport: IframeTransport;\n private port: MessagePort | null = null;\n private ready = false;\n // Deduplicate concurrent init() calls and avoid race conditions\n private initInFlight: Promise<void> | null = null;\n private pending = new Map<string, Pending>();\n private reqCounter = 0;\n private readyListeners: Set<() => void> = new Set();\n private vrfStatusListeners: Set<(status: { active: boolean; nearAccountId: string | null; sessionDuration?: number }) => void> = new Set();\n private preferencesChangedListeners: Set<(payload: PreferencesChangedPayload) => void> = new Set();\n // Coalesce duplicate Device2 start calls (e.g., React StrictMode double-effects)\n private device2StartPromise: Promise<{ qrData: DeviceLinkingQRData; qrCodeDataURL: string }> | null = null;\n private progressBus: OnEventsProgressBus;\n private debug = false;\n private readonly walletOriginUrl: URL;\n private readonly walletOriginOrigin: string;\n private overlay: OverlayController;\n // Force the overlay to remain fullscreen during critical flows (e.g., registration)\n // and ignore anchored rect updates from helper hooks.\n private overlayForceFullscreen = false;\n // Overlay register button window-message bridging (wallet-host UI → parent)\n private readonly registerOverlayResultListeners = new Set<(\n payload: { ok: boolean; result?: RegistrationResult; cancelled?: boolean; error?: string }\n ) => void>();\n private readonly registerOverlaySubmitListeners = new Set<() => void>();\n private windowMsgHandlerBound?: (ev: MessageEvent) => void;\n\n constructor(options: WalletIframeRouterOptions) {\n if (!options?.walletOrigin) {\n throw new Error('[WalletIframeRouter] walletOrigin is required when using the wallet iframe');\n }\n\n let parsedOrigin: URL;\n try {\n parsedOrigin = new URL(options.walletOrigin);\n } catch (err) {\n throw new Error(`[WalletIframeRouter] Invalid walletOrigin: ${options.walletOrigin}`);\n }\n\n if (typeof window !== 'undefined') {\n const parentOrigin = window.location.origin;\n if (parsedOrigin.origin === parentOrigin) {\n console.warn('[WalletIframeRouter] walletOrigin matches the host origin. Isolation safeguards rely on the parent; consider moving the wallet to a dedicated origin.');\n }\n }\n\n const defaultRouterId = `w3a-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n const testOptions = {\n routerId: defaultRouterId,\n ownerTag: undefined as string | undefined,\n autoMount: true,\n ...(options?.testOptions || {}),\n };\n this.opts = {\n connectTimeoutMs: 8000,\n requestTimeoutMs: 20000,\n servicePath: '/wallet-service',\n sdkBasePath: '/sdk',\n testOptions,\n ...options,\n } as Required<WalletIframeRouterOptions>;\n this.walletOriginUrl = parsedOrigin;\n this.walletOriginOrigin = parsedOrigin.origin;\n this.debug = !!this.opts.debug;\n // Encapsulate iframe mount + handshake logic in transport\n this.transport = new IframeTransport({\n walletOrigin: this.opts.walletOrigin,\n servicePath: this.opts.servicePath,\n connectTimeoutMs: this.opts.connectTimeoutMs,\n testOptions: {\n routerId: this.opts.testOptions.routerId,\n ownerTag: this.opts.testOptions.ownerTag,\n },\n });\n\n // Centralize overlay sizing/visibility. The router is the single owner of\n // \"how\" the iframe is shown/hidden (fullscreen vs anchored, sticky, etc).\n this.overlay = new OverlayController({ ensureIframe: () => this.transport.ensureIframeMounted() });\n\n // Initialize progress router with overlay control and phase heuristics.\n // OnEventsProgressBus only decides *when* to show/hide based on events; it calls\n // these adapter functions, and the router delegates to OverlayController.\n this.progressBus = new OnEventsProgressBus(\n {\n show: () => this.showFrameForActivation(),\n hide: () => this.hideFrameForActivation()\n },\n defaultPhaseHeuristics,\n this.debug\n ? (msg: string, data?: Record<string, unknown>) => {\n console.debug('[WalletIframeRouter][OnEventsProgressBus]', msg, data || {});\n }\n : undefined\n );\n\n // Bridge wallet-host overlay UI messages into router callbacks\n this.windowMsgHandlerBound = (ev: MessageEvent) => {\n if (ev.origin !== this.walletOriginOrigin) return;\n const data = ev.data as unknown;\n if (!data || typeof data !== 'object') return;\n const type = (data as { type?: unknown }).type;\n if (type === 'REGISTER_BUTTON_SUBMIT') {\n // User clicked the register arrow inside the wallet-anchored UI\n // Force the overlay to fullscreen immediately so the TxConfirmer\n // can mount and capture activation in Safari/iOS/mobile.\n this.overlayForceFullscreen = true;\n this.overlay.setSticky(true);\n this.overlay.showFullscreen();\n for (const cb of Array.from(this.registerOverlaySubmitListeners)) {\n try { cb(); } catch {}\n }\n return;\n }\n if (type === 'REGISTER_BUTTON_RESULT') {\n const payload = (data as { payload?: unknown }).payload as\n | { ok?: boolean; result?: RegistrationResult; cancelled?: boolean; error?: string }\n | undefined;\n const ok = !!payload?.ok;\n for (const cb of Array.from(this.registerOverlayResultListeners)) {\n cb({ ok, result: payload?.result, cancelled: payload?.cancelled, error: payload?.error });\n }\n // Release overlay lock after result\n this.overlayForceFullscreen = false;\n this.overlay.setSticky(false);\n // Progress bus will hide after completion; hide defensively here\n this.hideFrameForActivation();\n if (ok) {\n const acct = payload?.result?.nearAccountId;\n void this.getLoginSession(acct)\n .then(({ login: st }) => {\n this.emitVrfStatusChanged({ active: !!st.vrfActive, nearAccountId: st.nearAccountId, sessionDuration: st.vrfSessionDuration });\n })\n .catch(() => {});\n }\n return;\n }\n };\n globalThis.addEventListener?.('message', this.windowMsgHandlerBound);\n }\n\n private attachExportUiClosedListener = (walletOrigin: string): (() => void) => {\n const onUiClosed = (ev: MessageEvent) => {\n if (ev.origin !== walletOrigin) return;\n const data = ev.data as unknown;\n if (!data || (data as any).type !== 'WALLET_UI_CLOSED') return;\n this.overlay.setSticky(false);\n this.hideFrameForActivation();\n globalThis.removeEventListener?.('message', onUiClosed);\n };\n globalThis.addEventListener?.('message', onUiClosed);\n return () => { globalThis.removeEventListener?.('message', onUiClosed) };\n }\n\n private attachExportUiFallbackListener = (walletOrigin: string, accountId: string): (() => void) => {\n const onFallback = async (ev: MessageEvent) => {\n if (ev.origin !== walletOrigin) return;\n const data = ev.data as any;\n if (!data || data.type !== 'OFFLINE_EXPORT_FALLBACK') return;\n globalThis.removeEventListener?.('message', onFallback);\n this.overlay.setSticky(false);\n this.hideFrameForActivation();\n await this.openOfflineExport({ accountId });\n };\n globalThis.addEventListener?.('message', onFallback);\n return () => { globalThis.removeEventListener?.('message', onFallback) };\n }\n\n /**\n * Subscribe to service-ready event. Returns an unsubscribe function.\n * If already ready, the listener is invoked on next microtask.\n */\n onReady(listener: () => void): () => void {\n if (this.ready) {\n Promise.resolve().then(() => { listener(); });\n return () => {};\n }\n this.readyListeners.add(listener);\n return () => { this.readyListeners.delete(listener); };\n }\n\n private emitReady(): void {\n if (!this.readyListeners.size) return;\n for (const cb of Array.from(this.readyListeners)) { cb(); }\n // Keep listeners registered; callers can unsubscribe if desired.\n }\n\n /**\n * Initialize the transport and configure the wallet host.\n * Safe to call multiple times; concurrent calls deduplicate via initInFlight.\n */\n async init(): Promise<void> {\n if (this.ready) return;\n if (this.initInFlight) { return this.initInFlight; }\n this.initInFlight = (async () => {\n // Respect autoMount=false by deferring connect until first use\n if (this.opts.testOptions.autoMount !== false) {\n this.port = await this.transport.connect();\n this.port.onmessage = (ev) => this.onPortMessage(ev);\n this.port.start?.();\n this.ready = true;\n }\n console.debug('[WalletIframeRouter] init: %s', this.ready ? 'connected' : 'deferred (autoMount=false)');\n await this.post({\n type: 'PM_SET_CONFIG',\n payload: {\n theme: this.opts.theme,\n nearRpcUrl: this.opts.nearRpcUrl,\n nearNetwork: this.opts.nearNetwork,\n // Align with PMSetConfigPayload which expects `contractId`\n // while keeping RouterOptions field name `contractId` for external API.\n contractId: this.opts.contractId,\n nearExplorerUrl: this.opts.nearExplorerUrl,\n relayer: this.opts.relayer,\n vrfWorkerConfigs: this.opts.vrfWorkerConfigs,\n rpIdOverride: this.opts.rpIdOverride,\n authenticatorOptions: this.opts.authenticatorOptions,\n emailRecoveryContracts: this.opts.emailRecoveryContracts,\n uiRegistry: this.opts.uiRegistry,\n // for embedded Lit components\n assetsBaseUrl: (() => {\n try {\n const base = new URL(this.opts.sdkBasePath, this.walletOriginUrl).toString();\n return base.endsWith('/') ? base : `${base}/`;\n } catch {\n const fallback = new URL('/sdk/', this.walletOriginUrl).toString();\n return fallback.endsWith('/') ? fallback : `${fallback}/`;\n }\n })(),\n }\n });\n this.emitReady();\n })();\n\n try {\n await this.initInFlight;\n } finally {\n this.initInFlight = null;\n }\n }\n\n isReady(): boolean { return this.ready; }\n\n // ===== UI registry/window-message helpers (generic mounting) =====\n registerUiTypes(registry: WalletUIRegistry): void {\n const iframe = this.transport.ensureIframeMounted();\n const w = iframe.contentWindow;\n if (!w) return;\n const target = this.walletOriginOrigin;\n this.postWindowMessage(w, { type: 'WALLET_UI_REGISTER_TYPES', payload: registry }, target);\n }\n\n mountUiComponent(params: { key: string; props?: Record<string, unknown>; targetSelector?: string; id?: string }): void {\n const iframe = this.transport.ensureIframeMounted();\n const w = iframe.contentWindow;\n if (!w) return;\n const target = this.walletOriginOrigin;\n this.postWindowMessage(w, { type: 'WALLET_UI_MOUNT', payload: params }, target);\n }\n\n updateUiComponent(params: { id: string; props?: Record<string, unknown> }): void {\n const iframe = this.transport.ensureIframeMounted();\n const w = iframe.contentWindow;\n if (!w) return;\n const target = this.walletOriginOrigin;\n this.postWindowMessage(w, { type: 'WALLET_UI_UPDATE', payload: params }, target);\n }\n\n unmountUiComponent(id: string): void {\n const iframe = this.transport.ensureIframeMounted();\n const w = iframe.contentWindow;\n if (!w) return;\n const target = this.walletOriginOrigin;\n this.postWindowMessage(w, { type: 'WALLET_UI_UNMOUNT', payload: { id } }, target);\n }\n\n // ===== Public RPC helpers =====\n\n // Subscribe to VRF status changes observed by this client\n onVrfStatusChanged(listener: (status: {\n active: boolean;\n nearAccountId: string | null;\n sessionDuration?: number\n }) => void): () => void {\n this.vrfStatusListeners.add(listener);\n return () => { this.vrfStatusListeners.delete(listener); };\n }\n\n // Subscribe to wallet-host preference changes (authoritative in wallet-iframe mode).\n onPreferencesChanged(listener: (payload: PreferencesChangedPayload) => void): () => void {\n this.preferencesChangedListeners.add(listener);\n return () => { this.preferencesChangedListeners.delete(listener); };\n }\n\n private emitVrfStatusChanged(status: {\n active: boolean;\n nearAccountId: string | null;\n sessionDuration?: number\n }): void {\n for (const cb of Array.from(this.vrfStatusListeners)) {\n try { cb(status); } catch {}\n }\n }\n\n private emitPreferencesChanged(payload: PreferencesChangedPayload): void {\n if (!this.preferencesChangedListeners.size) return;\n for (const cb of Array.from(this.preferencesChangedListeners)) {\n try { cb(payload); } catch {}\n }\n }\n\n // Overlay register button events (optional convenience API)\n onRegisterOverlayResult(listener: (payload: { ok: boolean; result?: RegistrationResult; cancelled?: boolean; error?: string }) => void): () => void {\n this.registerOverlayResultListeners.add(listener);\n return () => { this.registerOverlayResultListeners.delete(listener); };\n }\n\n onRegisterOverlaySubmit(listener: () => void): () => void {\n this.registerOverlaySubmitListeners.add(listener);\n return () => { this.registerOverlaySubmitListeners.delete(listener); };\n }\n\n // ===== TatchiPasskey RPCs =====\n\n async signTransactionsWithActions(payload: {\n nearAccountId: string;\n transactions: TransactionInput[];\n options?: {\n onEvent?: (ev: ActionSSEEvent) => void;\n onError?: (error: Error) => void;\n afterCall?: AfterCall<SignTransactionResult[]>;\n // Allow minimal overrides (e.g., { uiMode: 'drawer' })\n confirmationConfig?: Partial<ConfirmationConfig>;\n confirmerText?: { title?: string; body?: string };\n }\n }): Promise<SignTransactionResult[]> {\n // Do not forward non-cloneable functions in options; host emits its own PROGRESS messages\n const safeOptions = payload.options\n ? {\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n }\n : undefined;\n const res = await this.post<SignTransactionResult>({\n type: 'PM_SIGN_TXS_WITH_ACTIONS',\n payload: {\n nearAccountId: payload.nearAccountId,\n transactions: payload.transactions,\n options: safeOptions && Object.keys(safeOptions).length > 0 ? safeOptions : undefined\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isActionSSEEvent) }\n });\n return normalizeSignedTransactionObject(res.result)\n }\n\n async signDelegateAction(payload: {\n nearAccountId: string;\n delegate: DelegateActionInput;\n options?: {\n onEvent?: (ev: ActionSSEEvent) => void;\n onError?: (error: Error) => void;\n afterCall?: AfterCall<any>;\n confirmationConfig?: Partial<ConfirmationConfig>;\n confirmerText?: { title?: string; body?: string };\n }\n }): Promise<unknown> {\n const safeOptions = payload.options\n ? {\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n }\n : undefined;\n const res = await this.post<unknown>({\n type: 'PM_SIGN_DELEGATE_ACTION',\n payload: {\n nearAccountId: payload.nearAccountId,\n delegate: payload.delegate,\n options: safeOptions && Object.keys(safeOptions).length > 0 ? safeOptions : undefined\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isActionSSEEvent) }\n });\n return res.result;\n }\n\n async registerPasskey(payload: {\n nearAccountId: string;\n confirmationConfig?: Partial<ConfirmationConfig>;\n options?: {\n onEvent?: (ev: RegistrationSSEEvent) => void;\n confirmerText?: { title?: string; body?: string };\n }\n }): Promise<RegistrationResult> {\n // Step 1: For registration, force fullscreen overlay (not anchored to CTA)\n // so the TxConfirmer (drawer/modal) has space to render and capture activation.\n // Lock overlay to fullscreen for the duration of registration\n this.overlayForceFullscreen = true;\n this.overlay.setSticky(true);\n this.overlay.showFullscreen();\n\n try {\n // Optional one-time confirmation override (non-persistent)\n if (payload.confirmationConfig) {\n const base = await this.getConfirmationConfig();\n await this.setConfirmationConfig({ ...base, ...payload.confirmationConfig });\n }\n\n // Step 2: Strip non-serializable functions from options (functions can't cross iframe boundary)\n const safeOptions = removeFunctionsFromOptions(payload.options);\n\n // Step 3: Send PM_REGISTER message to iframe and wait for response\n const res = await this.post<RegistrationResult>({\n type: 'PM_REGISTER',\n payload: {\n nearAccountId: payload.nearAccountId,\n options: safeOptions,\n ...(payload.confirmationConfig ? { confirmationConfig: payload.confirmationConfig as unknown as Record<string, unknown> } : {})\n },\n // Bridge progress events from iframe back to parent callback\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isRegistrationSSEEvent) }\n });\n\n // Step 4: Update VRF status after successful registration\n const { login: st } = await this.getLoginSession(payload.nearAccountId);\n this.emitVrfStatusChanged({\n active: !!st.vrfActive,\n nearAccountId: st.nearAccountId,\n sessionDuration: st.vrfSessionDuration\n });\n\n return res?.result;\n } finally {\n // Step 5: Always release overlay lock and hide when done (success or error)\n this.overlayForceFullscreen = false;\n this.overlay.setSticky(false);\n this.hideFrameForActivation();\n }\n }\n\n async loginAndCreateSession(payload: {\n nearAccountId: string;\n options?: {\n onEvent?: (ev: LoginSSEvent) => void;\n // Forward session config so host can mint JWT/cookie\n session?: {\n kind: 'jwt' | 'cookie';\n relayUrl?: string;\n route?: string;\n };\n // Warm signing session policy override during login\n signingSession?: {\n ttlMs?: number;\n remainingUses?: number;\n };\n }\n }): Promise<LoginAndCreateSessionResult> {\n this.showFrameForActivation();\n try {\n const safeOptions = removeFunctionsFromOptions(payload.options);\n const res = await this.post<LoginAndCreateSessionResult>({\n type: 'PM_LOGIN',\n payload: {\n nearAccountId: payload.nearAccountId,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isLoginSSEEvent) }\n });\n const { login: st } = await this.getLoginSession(payload.nearAccountId);\n this.emitVrfStatusChanged({ active: !!st.vrfActive, nearAccountId: st.nearAccountId, sessionDuration: st.vrfSessionDuration });\n return res?.result;\n } finally {\n this.hideFrameForActivation();\n }\n }\n\n async getLoginSession(nearAccountId?: string): Promise<LoginSession> {\n const res = await this.post<LoginSession>({\n type: 'PM_GET_LOGIN_SESSION',\n payload: nearAccountId ? { nearAccountId } : undefined\n });\n return res.result;\n }\n\n async checkVrfStatus(): Promise<PostResult<{ active: boolean; nearAccountId: string | null; sessionDuration?: number }>> {\n const { login: st } = await this.getLoginSession();\n return {\n ok: true,\n result: {\n active: !!st.vrfActive,\n nearAccountId: st.nearAccountId,\n sessionDuration: st.vrfSessionDuration\n }\n };\n }\n\n async clearVrfSession(): Promise<PostResult<void>> {\n await this.post<void>({ type: 'PM_LOGOUT' });\n this.emitVrfStatusChanged({ active: false, nearAccountId: null });\n return { ok: true, result: undefined };\n }\n\n async signNep413Message(payload: {\n nearAccountId: string;\n message: string;\n recipient: string;\n state?: string;\n options?: {\n onEvent?: (ev: ActionSSEEvent) => void;\n confirmerText?: { title?: string; body?: string };\n confirmationConfig?: Partial<ConfirmationConfig>;\n }\n }): Promise<SignNEP413MessageResult> {\n const safeOptions = payload.options\n ? {\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n }\n : undefined;\n const res = await this.post<SignNEP413MessageResult>({\n type: 'PM_SIGN_NEP413',\n payload: {\n nearAccountId: payload.nearAccountId,\n params: {\n message: payload.message,\n recipient: payload.recipient,\n state: payload.state\n },\n options: safeOptions && Object.keys(safeOptions).length > 0 ? safeOptions : undefined\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isActionSSEEvent) }\n });\n return res.result\n }\n\n async signTransactionWithKeyPair(payload: {\n signedTransaction: SignedTransaction;\n options?: {\n onEvent?: (ev: ActionSSEEvent) => void\n }\n }): Promise<ActionResult> {\n // Strip non-cloneable functions from options; host emits PROGRESS events\n const { options } = payload;\n const res = await this.post<ActionResult>( {\n type: 'PM_SEND_TRANSACTION',\n payload: {\n signedTransaction: payload.signedTransaction,\n options: options\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result;\n }\n\n async executeAction(payload: {\n nearAccountId: string;\n receiverId: string;\n actionArgs: ActionArgs | ActionArgs[];\n options?: ActionHooksOptions\n }): Promise<ActionResult> {\n // Strip non-cloneable functions from options; host emits PROGRESS events\n const { options } = payload;\n const safeOptions = options\n ? {\n waitUntil: options.waitUntil,\n confirmationConfig: options.confirmationConfig,\n ...(options.confirmerText ? { confirmerText: options.confirmerText } : {}),\n }\n : undefined;\n\n const res = await this.post<ActionResult>({\n type: 'PM_EXECUTE_ACTION',\n payload: {\n ...payload,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result;\n }\n\n async setConfirmBehavior(behavior: 'requireClick' | 'autoProceed'): Promise<void> {\n let { nearAccountId } = (await this.getLoginSession()).login;\n await this.post<void>({\n type: 'PM_SET_CONFIRM_BEHAVIOR',\n payload: { behavior, nearAccountId }\n });\n }\n\n async setConfirmationConfig(config: ConfirmationConfig): Promise<void> {\n let { nearAccountId } = (await this.getLoginSession()).login;\n await this.post<void>({\n type: 'PM_SET_CONFIRMATION_CONFIG',\n payload: { config, nearAccountId }\n });\n }\n\n async getConfirmationConfig(): Promise<ConfirmationConfig> {\n const res = await this.post<ConfirmationConfig>({ type: 'PM_GET_CONFIRMATION_CONFIG' });\n return res.result\n }\n\n async setTheme(theme: 'dark' | 'light'): Promise<void> {\n await this.post<void>({ type: 'PM_SET_THEME', payload: { theme } });\n }\n\n async prefetchBlockheight(): Promise<void> {\n await this.post<void>({ type: 'PM_PREFETCH_BLOCKHEIGHT' } );\n }\n\n async getRecentLogins(): Promise<GetRecentLoginsResult> {\n const res = await this.post<GetRecentLoginsResult>({ type: 'PM_GET_RECENT_LOGINS' } );\n return res.result;\n }\n\n // === Local persistence helpers (wallet-origin IndexedDB) ===\n\n async setDerivedAddress(payload: {\n nearAccountId: string;\n args: { contractId: string; path: string; address: string };\n }): Promise<void> {\n await this.post<void>({\n type: 'PM_SET_DERIVED_ADDRESS',\n payload,\n });\n }\n\n async getDerivedAddressRecord(payload: {\n nearAccountId: string;\n args: { contractId: string; path: string };\n }): Promise<DerivedAddressRecord | null> {\n const res = await this.post<DerivedAddressRecord | null>({\n type: 'PM_GET_DERIVED_ADDRESS_RECORD',\n payload,\n });\n return (res.result as DerivedAddressRecord | null) || null;\n }\n\n async getDerivedAddress(payload: {\n nearAccountId: string;\n args: { contractId: string; path: string };\n }): Promise<string | null> {\n const res = await this.post<string | null>({\n type: 'PM_GET_DERIVED_ADDRESS',\n payload,\n });\n return (res.result as string | null) || null;\n }\n\n async getRecoveryEmails(\n nearAccountId: string,\n ): Promise<Array<{ hashHex: string; email: string }>> {\n const res = await this.post<Array<{ hashHex: string; email: string }>>({\n type: 'PM_GET_RECOVERY_EMAILS',\n payload: { nearAccountId },\n });\n return (res.result as Array<{ hashHex: string; email: string }>) || [];\n }\n\n async setRecoveryEmails(payload: {\n nearAccountId: string;\n recoveryEmails: string[];\n options?: ActionHooksOptions;\n }): Promise<ActionResult> {\n const { options } = payload;\n const safeOptions = options\n ? {\n waitUntil: options.waitUntil,\n confirmationConfig: options.confirmationConfig,\n }\n : undefined;\n\n const res = await this.post<ActionResult>({\n type: 'PM_SET_RECOVERY_EMAILS',\n payload: {\n nearAccountId: payload.nearAccountId,\n recoveryEmails: payload.recoveryEmails,\n options: safeOptions,\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) },\n });\n return res.result;\n }\n\n // Bridge typed public onEvent callbacks to the transport's onProgress callback.\n // - onEvent: consumer's strongly-typed event handler (e.g., ActionSSEEvent)\n // - isExpectedEvent: runtime type guard that validates a ProgressPayload as that event type\n // Returns an onProgress handler that safely narrows before invoking onEvent.\n private wrapOnEvent<TEvent extends ProgressPayload>(\n onEvent: ((event: TEvent) => void) | undefined,\n isExpectedEvent: (progress: ProgressPayload) => progress is TEvent\n ): ((progress: ProgressPayload) => void) | undefined {\n if (!onEvent) return undefined;\n return (progress: ProgressPayload) => {\n try {\n if (isExpectedEvent(progress)) onEvent(progress);\n } catch {}\n };\n }\n\n async signAndSendTransactions(payload: {\n nearAccountId: string;\n transactions: TransactionInput[];\n options?: SignAndSendTransactionHooksOptions\n }): Promise<ActionResult[]> {\n\n const { options } = payload;\n // cannot send objects/functions through postMessage(), clean options first\n const safeOptions = options\n ? {\n waitUntil: options.waitUntil,\n executionWait: options.executionWait,\n confirmationConfig: options.confirmationConfig,\n ...(options.confirmerText ? { confirmerText: options.confirmerText } : {}),\n }\n : undefined;\n\n const res = await this.post<ActionResult[]>({\n type: 'PM_SIGN_AND_SEND_TXS',\n payload: {\n nearAccountId: payload.nearAccountId,\n transactions: payload.transactions,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result;\n }\n\n async hasPasskeyCredential(nearAccountId: string): Promise<boolean> {\n const res = await this.post<boolean>({\n type: 'PM_HAS_PASSKEY',\n payload: { nearAccountId }\n });\n return !!res?.result;\n }\n\n async viewAccessKeyList(accountId: string): Promise<AccessKeyList> {\n const res = await this.post<AccessKeyList>({\n type: 'PM_VIEW_ACCESS_KEYS',\n payload: { accountId }\n });\n return res.result\n }\n\n async deleteDeviceKey(\n accountId: string,\n publicKeyToDelete: string,\n options?: { onEvent?: (ev: ActionSSEEvent) => void }\n ) : Promise<ActionResult> {\n const res = await this.post<ActionResult>({\n type: 'PM_DELETE_DEVICE_KEY',\n payload: {\n accountId,\n publicKeyToDelete\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result\n }\n\n async sendTransaction(args: {\n signedTransaction: SignedTransaction;\n options?: SendTransactionHooksOptions;\n }): Promise<ActionResult> {\n // Strip non-cloneable functions from options; host emits PROGRESS events\n const { options } = args;\n const safeOptions = options\n ? { waitUntil: options.waitUntil }\n : undefined;\n\n const res = await this.post<ActionResult>({\n type: 'PM_SEND_TRANSACTION',\n payload: {\n signedTransaction: args.signedTransaction,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result\n }\n\n async exportNearKeypairWithUI(\n nearAccountId: string,\n options?: { variant?: 'drawer' | 'modal'; theme?: 'dark' | 'light' }\n ): Promise<void> {\n try {\n // Make the wallet iframe visible while the export viewer is open.\n // Unlike request/response flows, the wallet host renders UI and manages\n // its own lifecycle; it will notify us when to hide via window message.\n this.showFrameForActivation();\n const walletOrigin = this.walletOriginOrigin;\n const detachClosed = this.attachExportUiClosedListener(walletOrigin);\n const detachFallback = this.attachExportUiFallbackListener(walletOrigin, nearAccountId);\n await this.post<void>({\n type: 'PM_EXPORT_NEAR_KEYPAIR_UI',\n payload: { nearAccountId, variant: options?.variant, theme: options?.theme },\n options: { sticky: true }\n });\n // Cleanup once posted (handlers will remove themselves on events)\n void detachClosed;\n void detachFallback;\n return;\n } catch (e) {\n // Fallback to offline-export route (new tab) if wallet host is unreachable or errors out\n await this.openOfflineExport({ accountId: nearAccountId });\n }\n }\n\n /**\n * Open the offline-export route as a full-screen overlay iframe and instruct it via postMessage\n * to begin the export flow for the given account. Cleans up when the viewer closes or on error.\n */\n async openOfflineExport({ accountId, timeoutMs = 20000 }: { accountId: string; timeoutMs?: number }): Promise<void> {\n const walletOrigin = this.opts.walletOrigin || window.location.origin;\n // Default: open a new tab/window for clarity\n openOfflineExportWindow({ walletOrigin, target: '_blank', accountId });\n return Promise.resolve();\n }\n\n // ===== Account Recovery (single-endpoint flow) =====\n async recoverAccountFlow(payload: {\n accountId?: string;\n onEvent?: (ev: AccountRecoverySSEEvent) => void\n }): Promise<RecoveryResult> {\n const res = await this.post<RecoveryResult>({\n type: 'PM_RECOVER_ACCOUNT_FLOW',\n payload: { accountId: payload.accountId },\n options: {\n onProgress: this.wrapOnEvent(payload.onEvent, isAccountRecoverySSEEvent)\n }\n });\n return res.result\n }\n\n // ===== Email Recovery (wallet-hosted) =====\n async startEmailRecovery(payload: {\n accountId: string;\n recoveryEmail?: string;\n onEvent?: (ev: EmailRecoverySSEEvent) => void;\n options?: {\n confirmerText?: { title?: string; body?: string };\n confirmationConfig?: Partial<ConfirmationConfig>;\n }\n }): Promise<{ mailtoUrl: string; nearPublicKey: string }> {\n const safeOptions = payload.options\n ? {\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n }\n : undefined;\n const res = await this.post<{ mailtoUrl: string; nearPublicKey: string }>({\n type: 'PM_START_EMAIL_RECOVERY',\n payload: {\n accountId: payload.accountId,\n ...(payload.recoveryEmail ? { recoveryEmail: payload.recoveryEmail } : {}),\n options: safeOptions && Object.keys(safeOptions).length > 0 ? safeOptions : undefined\n },\n options: {\n onProgress: this.wrapOnEvent(payload.onEvent, isEmailRecoverySSEEvent)\n }\n });\n return res.result;\n }\n\n async finalizeEmailRecovery(payload: {\n accountId: string;\n nearPublicKey?: string;\n onEvent?: (ev: EmailRecoverySSEEvent) => void\n }): Promise<void> {\n await this.post<void>({\n type: 'PM_FINALIZE_EMAIL_RECOVERY',\n payload: { accountId: payload.accountId, nearPublicKey: payload.nearPublicKey },\n options: {\n onProgress: this.wrapOnEvent(payload.onEvent, isEmailRecoverySSEEvent)\n }\n });\n }\n\n async stopEmailRecovery(payload?: { accountId?: string; nearPublicKey?: string }): Promise<void> {\n await this.post<void>({\n type: 'PM_STOP_EMAIL_RECOVERY',\n payload: { accountId: payload?.accountId, nearPublicKey: payload?.nearPublicKey },\n });\n }\n\n // ===== Device Linking (iframe-hosted) =====\n async linkDeviceWithScannedQRData(payload: {\n qrData: DeviceLinkingQRData;\n fundingAmount: string;\n options?: {\n onEvent?: (ev: DeviceLinkingSSEEvent) => void;\n confirmationConfig?: Partial<ConfirmationConfig>;\n confirmerText?: { title?: string; body?: string };\n }\n }): Promise<LinkDeviceResult> {\n // TouchID required within host\n this.showFrameForActivation();\n try {\n const safeOptions = payload.options\n ? {\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n }\n : undefined;\n const res = await this.post<LinkDeviceResult>({\n type: 'PM_LINK_DEVICE_WITH_SCANNED_QR_DATA',\n payload: {\n qrData: payload.qrData,\n fundingAmount: payload.fundingAmount,\n options: safeOptions && Object.keys(safeOptions).length > 0 ? safeOptions : undefined\n },\n options: {\n onProgress: this.wrapOnEvent(payload.options?.onEvent, isDeviceLinkingSSEEvent)\n }\n });\n return res.result\n } finally {\n this.hideFrameForActivation();\n }\n }\n\n async startDevice2LinkingFlow(payload?: StartDevice2LinkingFlowArgs): Promise<StartDevice2LinkingFlowResults> {\n if (this.device2StartPromise) {\n return this.device2StartPromise\n }\n const options = payload?.options;\n const safeOptions = options\n ? {\n ...(options.confirmationConfig\n ? { confirmationConfig: options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n ...(options.confirmerText ? { confirmerText: options.confirmerText } : {}),\n }\n : undefined;\n const p = this.post<StartDevice2LinkingFlowResults>({\n type: 'PM_START_DEVICE2_LINKING_FLOW',\n payload: {\n ui: payload?.ui,\n cameraId: payload?.cameraId,\n options: safeOptions\n },\n options: {\n onProgress: this.wrapOnEvent(options?.onEvent, isDeviceLinkingSSEEvent),\n sticky: true\n }\n }).then((res) => res.result)\n .finally(() => { this.device2StartPromise = null; });\n\n this.device2StartPromise = p;\n return p;\n }\n\n async stopDevice2LinkingFlow(): Promise<void> {\n await this.post<void>({ type: 'PM_STOP_DEVICE2_LINKING_FLOW' });\n this.progressBus.clearAll();\n }\n\n // ===== Control APIs =====\n async cancelRequest(requestId: string): Promise<void> {\n // Best-effort cancel. Host will attempt to close open modals and mark the request as cancelled.\n await this.post<void>({ type: 'PM_CANCEL', payload: { requestId } }).catch(() => {});\n // Always clear local progress + hide overlay even if the host didn't receive the message\n this.progressBus.unregister(requestId);\n this.hideFrameForActivation();\n }\n\n async cancelAll(): Promise<void> {\n // Try to cancel all requests on the host, but don't depend on READY/port availability\n await this.post<void>({ type: 'PM_CANCEL', payload: {} }).catch(() => {});\n // Clear all local progress listeners and force-hide the overlay\n this.progressBus.clearAll();\n this.hideFrameForActivation();\n }\n\n private onPortMessage(e: MessageEvent<ChildToParentEnvelope>) {\n const msg = e.data as ChildToParentEnvelope;\n // Some wallet-host messages are push-style and are not correlated to a requestId.\n if (msg.type === 'PREFERENCES_CHANGED') {\n this.emitPreferencesChanged(msg.payload as PreferencesChangedPayload);\n return;\n }\n const requestId = msg.requestId;\n if (!requestId) return;\n\n // Bridge PROGRESS events to caller-provided onEvent callback via pending registry\n if (msg.type === 'PROGRESS') {\n const payload = (msg.payload as ProgressPayload);\n // Route via ProgressBus (handles overlay + sticky delivery)\n this.progressBus.dispatch({ requestId: requestId, payload: payload });\n // Refresh timeout for long-running operations whenever progress is received\n const pend = this.pending.get(requestId);\n if (pend) {\n if (pend.timer) window.clearTimeout(pend.timer);\n pend.timer = window.setTimeout(() => {\n const err = pend.onTimeout();\n pend.reject(err);\n }, this.opts.requestTimeoutMs);\n }\n return;\n }\n\n const pending = this.pending.get(requestId);\n // Hide overlay on completion only if no other requests still need it,\n // and this request wasn't marked sticky (UI-managed lifecycle).\n if (!this.progressBus.isSticky(requestId)) {\n if (!this.progressBus.wantsVisible()) {\n this.hideFrameForActivation();\n }\n }\n if (!pending) {\n // Even if no pending exists (e.g., early cancel or pre-resolved),\n // ensure any lingering progress subscriber is removed.\n if (this.debug) {\n console.debug('[WalletIframeRouter] Non-PROGRESS without pending → hide + unregister', {\n requestId,\n type: (msg as unknown as { type?: unknown })?.type || 'unknown'\n });\n }\n this.progressBus.unregister(requestId);\n return;\n }\n this.pending.delete(requestId);\n if (pending.timer) window.clearTimeout(pending.timer);\n\n if (msg.type === 'ERROR') {\n const err: Error & { code?: string; details?: unknown } = new Error(msg.payload?.message || 'Wallet error');\n err.code = msg.payload?.code;\n err.details = msg.payload?.details;\n // Deliver to pending promise if present\n pending.reject(err);\n // Also notify all progress subscribers for this requestId\n this.progressBus.dispatch({\n requestId: requestId,\n payload: {\n step: 0,\n phase: 'error',\n status: 'error',\n message: msg.payload?.message\n }\n });\n this.progressBus.unregister(requestId);\n return;\n }\n\n pending.resolve(msg.payload);\n if (!this.progressBus.isSticky(requestId)) {\n this.progressBus.unregister(requestId);\n }\n }\n\n /**\n * Post a typed envelope over the MessagePort with robust readiness handling.\n * This is the core method that handles all communication with the iframe.\n *\n * Flow:\n * 1. Ensure iframe is ready (lazy initialization)\n * 2. Generate unique request ID for correlation\n * 3. Set up timeout and progress handling\n * 4. Send message to iframe via MessagePort\n * 5. Wait for response (PM_RESULT or ERROR)\n * 6. Clean up on completion or timeout\n */\n private async post<T>(\n envelope: Omit<ParentToChildEnvelope, 'requestId'>,\n ): Promise<PostResult<T>> {\n\n // Step 1: Lazily initialize the iframe/client if not ready yet\n if (!this.ready || !this.port) {\n await this.init();\n }\n\n // Step 2: Generate unique request ID for correlation\n const requestId = `${Date.now()}-${++this.reqCounter}`;\n const full: ParentToChildEnvelope = { ...(envelope as ParentToChildEnvelope), requestId };\n const { options } = full;\n\n return new Promise<PostResult<T>>((resolve, reject) => {\n const onTimeout = () => {\n const pending = this.pending.get(requestId);\n if (pending?.timer !== undefined) window.clearTimeout(pending.timer);\n this.pending.delete(requestId);\n this.progressBus.unregister(requestId);\n this.overlay.setSticky(false);\n if (!this.progressBus.wantsVisible()) {\n this.hideFrameForActivation();\n }\n this.sendBestEffortCancel(requestId);\n return new Error(`Wallet request timeout for ${envelope.type}`);\n };\n\n // Step 3: Set up timeout handler for request\n const timer = window.setTimeout(() => {\n const err = onTimeout();\n reject(err);\n }, this.opts.requestTimeoutMs);\n\n // Step 4: Register pending request for correlation\n this.pending.set(requestId, {\n resolve: (v) => resolve(v as PostResult<T>),\n reject,\n timer,\n onProgress: options?.onProgress,\n onTimeout,\n });\n\n // Step 5: Register progress handler for real-time updates\n this.progressBus.register({\n requestId: requestId,\n sticky: !!options?.sticky, // Some flows need to persist after completion\n onProgress: (payload: ProgressPayload) => {\n // Bridge progress events from iframe back to parent callback\n try {\n options?.onProgress?.(payload);\n } catch {}\n },\n });\n\n try {\n // Step 6: Strip non-cloneable fields (functions) from envelope options before posting\n const wireOptions = (options && isObject(options))\n ? (() => {\n const stickyVal = (options as { sticky?: unknown }).sticky;\n return isBoolean(stickyVal) ? { sticky: stickyVal } : undefined;\n })()\n : undefined;\n const serializableFull = wireOptions ? { ...full, options: wireOptions } : { ...full, options: undefined };\n\n // Align overlay stickiness with request options (phase 2 will use intents)\n this.overlay.setSticky(!!(wireOptions && (wireOptions as { sticky?: boolean }).sticky));\n\n // Step 7: Apply overlay intent (conservative) if not already visible, then post\n if (!this.overlay.getState().visible) {\n const intent = this.computeOverlayIntent(serializableFull.type);\n if (intent.mode === 'fullscreen') {\n this.overlay.setSticky(!!(wireOptions && (wireOptions as { sticky?: boolean }).sticky));\n this.overlay.showFullscreen();\n }\n }\n\n // Send message to iframe via MessagePort\n this.port!.postMessage(serializableFull as ParentToChildEnvelope);\n } catch (err) {\n // Step 8: Handle send errors - clean up and reject\n this.pending.delete(requestId);\n window.clearTimeout(timer);\n this.progressBus.unregister(requestId);\n reject(toError(err));\n }\n });\n }\n\n /**\n * computeOverlayIntent - Preflight \"Show\" Decision\n *\n * This method makes the initial decision about whether to show the overlay\n * BEFORE sending the request to the iframe. It's a conservative preflight\n * check that ensures the iframe is visible in time for user activation.\n *\n * Key Responsibilities:\n * - Preflight Decision: Determines overlay visibility before request is sent\n * - User Activation Timing: Ensures iframe is visible when WebAuthn prompts appear\n * - Conservative Approach: Only shows overlay if not already visible\n * - Request Type Mapping: Maps message types to overlay requirements\n *\n * How it differs from other components:\n *\n * vs OnEventsProgressBus (lifecycle and close decision):\n * - computeOverlayIntent: \"SHOW\" decision - runs before sending request\n * - OnEventsProgressBus: \"CLOSE\" decision - runs during operation lifecycle\n * - OnEventsProgressBus drives ongoing UI phases and manages sticky behavior\n * - OnEventsProgressBus handles PM_RESULT/ERROR and decides when to hide overlay\n *\n * vs OverlayController (single executor):\n * - computeOverlayIntent: DECIDES what to do (show/hide decision logic)\n * - OverlayController: EXECUTES the decision (actual CSS manipulation)\n * - OverlayController receives commands from both intent and ProgressBus\n * - OverlayController keeps all style mutations in one place\n *\n * Architecture Flow:\n * 1. computeOverlayIntent() → decides to show overlay\n * 2. OverlayController.showFullscreen() → executes the decision\n * 3. Request sent to iframe → operation begins\n * 4. OnEventsProgressBus manages lifecycle → handles progress events\n * 5. OnEventsProgressBus decides to hide → when operation completes\n * 6. OverlayController.hide() → executes the hide decision\n *\n * Special Cases:\n * - Anchored flows (UI registry with viewportRect) are message-driven\n * - Parent sets bounds and sticky via registry messages\n * - computeOverlayIntent returns 'hidden' for these (don't pre-show)\n * - Some legacy paths still call showFrameForActivation() directly\n *\n * Future Evolution:\n * - If host always emits early PROGRESS for a type, this can be reduced\n * - Intent is to move toward OnEventsProgressBus-driven lifecycle management\n * - This provides predictable, glitch-free activation without hardcoding\n */\n private computeOverlayIntent(type: ParentToChildEnvelope['type']): { mode: 'hidden' | 'fullscreen' } {\n switch (type) {\n // Operations that require fullscreen overlay for WebAuthn activation\n case 'PM_EXPORT_NEAR_KEYPAIR_UI':\n case 'PM_REGISTER':\n case 'PM_LOGIN':\n case 'PM_LINK_DEVICE_WITH_SCANNED_QR_DATA':\n case 'PM_SIGN_AND_SEND_TXS':\n case 'PM_EXECUTE_ACTION':\n case 'PM_SEND_TRANSACTION':\n case 'PM_SIGN_TXS_WITH_ACTIONS':\n return { mode: 'fullscreen' };\n\n // All other operations (background/read-only) don't need overlay\n default:\n return { mode: 'hidden' };\n }\n }\n\n // Temporarily show the service iframe to capture user activation\n private showFrameForActivation(): void {\n // Ensure iframe exists so overlay can be applied immediately\n this.transport.ensureIframeMounted();\n if (this.overlayForceFullscreen) {\n this.overlay.showFullscreen();\n } else {\n // Prefer fullscreen by default\n this.overlay.showFullscreen();\n }\n }\n\n private hideFrameForActivation(): void {\n if (!this.overlay.getState().visible) return;\n this.overlay.hide();\n }\n\n private sendBestEffortCancel(targetRequestId?: string): void {\n const port = this.port;\n if (!port) return;\n const cancelEnvelope: ParentToChildEnvelope = {\n type: 'PM_CANCEL',\n requestId: `cancel-${Date.now()}-${Math.random().toString(36).slice(2)}`,\n payload: targetRequestId ? { requestId: targetRequestId } : {}\n };\n port.postMessage(cancelEnvelope);\n }\n\n /**\n * Public toggle to surface the wallet iframe for user activation or hide it.\n * Useful when mounting inline UI components that require direct user clicks.\n */\n setOverlayVisible(visible: boolean): void {\n if (visible) {\n // Respect fullscreen lock when present\n if (this.overlayForceFullscreen) {\n this.overlay.showFullscreen();\n } else {\n this.showFrameForActivation();\n }\n } else {\n this.hideFrameForActivation();\n }\n }\n\n /** Public helper for tests/tools: get the underlying iframe element. */\n getIframeEl(): HTMLIFrameElement | null {\n return this.transport.getIframeEl();\n }\n\n /** Public helper for tests/tools: inspect current overlay state. */\n getOverlayState(): { visible: boolean; mode: 'hidden' | 'fullscreen' | 'anchored'; sticky: boolean; rect?: DOMRectLike } {\n return this.overlay.getState();\n }\n\n /**\n * Position and show the wallet iframe as an anchored overlay matching a DOMRect.\n * Accepts viewport-relative coordinates (from getBoundingClientRect()).\n *\n * Important: Some apps apply CSS transforms (or filters/perspective) on html/body,\n * which changes the containing block for position: fixed. In those cases a fixed\n * iframe will be offset by the page scroll. To avoid that mismatch, anchor the\n * overlay using absolute positioning in document coordinates.\n */\n setOverlayBounds(rect: { top: number; left: number; width: number; height: number }): void {\n if (this.overlayForceFullscreen) return; // ignore anchored bounds while locked to fullscreen\n this.transport.ensureIframeMounted();\n this.overlay.showAnchored(rect as DOMRectLike);\n }\n\n // setAnchoredOverlayBounds/clearAnchoredOverlay removed with Arrow overlay deprecation\n\n // Post a window message and surface errors in debug mode instead of silently swallowing them\n private postWindowMessage(w: Window, data: unknown, target: string): void {\n try {\n w.postMessage(data, target);\n } catch (err) {\n if (this.debug) {\n console.error('[WalletIframeRouter] window.postMessage failed', { error: err, data });\n }\n }\n }\n\n}\n\n// ===== Runtime type guards to safely bridge ProgressPayload → typed SSE events =====\nconst REGISTRATION_PHASES = new Set<string>(Object.values(RegistrationPhase) as string[]);\nconst LOGIN_PHASES = new Set<string>(Object.values(LoginPhase) as string[]);\nconst ACTION_PHASES = new Set<string>(Object.values(ActionPhase) as string[]);\nconst DEVICE_LINKING_PHASES = new Set<string>(Object.values(DeviceLinkingPhase) as string[]);\nconst ACCOUNT_RECOVERY_PHASES = new Set<string>(Object.values(AccountRecoveryPhase) as string[]);\nconst EMAIL_RECOVERY_PHASES = new Set<string>(Object.values(EmailRecoveryPhase) as string[]);\n\nfunction phaseOf(progress: ProgressPayload): string {\n return String((progress as { phase?: unknown })?.phase ?? '');\n}\n\nfunction isRegistrationSSEEvent(progress: ProgressPayload): progress is RegistrationSSEEvent {\n return REGISTRATION_PHASES.has(phaseOf(progress));\n}\n\nfunction isLoginSSEEvent(p: ProgressPayload): p is LoginSSEvent {\n return LOGIN_PHASES.has(phaseOf(p));\n}\n\nfunction isActionSSEEvent(p: ProgressPayload): p is ActionSSEEvent {\n return ACTION_PHASES.has(phaseOf(p));\n}\n\nexport function isDelegateSSEEvent(p: ProgressPayload): p is DelegateActionSSEEvent {\n if (!isActionSSEEvent(p)) return false;\n const data = (p as any).data;\n return !!data && typeof data === 'object' && (data as any).context === 'delegate';\n}\n\nfunction isDeviceLinkingSSEEvent(p: ProgressPayload): p is DeviceLinkingSSEEvent {\n return DEVICE_LINKING_PHASES.has(phaseOf(p));\n}\n\nfunction isAccountRecoverySSEEvent(p: ProgressPayload): p is AccountRecoverySSEEvent {\n return ACCOUNT_RECOVERY_PHASES.has(phaseOf(p));\n}\n\nfunction isEmailRecoverySSEEvent(p: ProgressPayload): p is EmailRecoverySSEEvent {\n return EMAIL_RECOVERY_PHASES.has(phaseOf(p));\n}\n\n/**\n * Strips out class functions as they cannot be sent over postMessage to iframe\n */\n function normalizeSignedTransactionObject(result: SignTransactionResult) {\n const arr = Array.isArray(result) ? result : [];\n const normalized = arr.map(entry => {\n if (entry?.signedTransaction) {\n const st = entry.signedTransaction as unknown;\n if (isPlainSignedTransactionLike(st)) {\n entry.signedTransaction = SignedTransaction.fromPlain({\n transaction: (st as { transaction: unknown }).transaction,\n signature: (st as { signature: unknown }).signature,\n borsh_bytes: extractBorshBytesFromPlainSignedTx(st),\n });\n }\n }\n return entry;\n });\n return normalized\n }\n\n/**\n * Strips out functions as they cannot be sent over postMessage to iframe\n */\nimport { stripFunctionsShallow } from '../validation';\n\nfunction removeFunctionsFromOptions(options?: object): object | undefined {\n return stripFunctionsShallow(options as Record<string, unknown>);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","names":["parsedOrigin: URL","OverlayController","err: Error & { code?: string; details?: unknown }","full: ParentToChildEnvelope","cancelEnvelope: ParentToChildEnvelope"],"sources":["../../../../../src/core/WalletIframe/client/router.ts"],"sourcesContent":["/*\n * WalletIframeRouter - Client-Side Communication Layer\n *\n * Owns all iframe overlay show/hide behavior for WebAuthn activation. It is the\n * single place that decides *how* the wallet iframe is displayed (fullscreen vs\n * anchored, sticky mode, force-fullscreen during registration, etc.).\n *\n * Responsibilities:\n * - Request/Response Correlation: Tracks pending requests with unique IDs.\n * - Progress Event Bridging: Receives PROGRESS from the wallet iframe and forwards\n * them to app `onEvent` handlers.\n * - Overlay Ownership:\n * - Delegates *when* to show/hide to OnEventsProgressBus (based on progress events).\n * - Executes *how* to show/hide via OverlayController (DOM / CSS / ARIA).\n * - Also reacts to wallet-host UI messages (e.g., WALLET_UI_CLOSED) and export flows.\n * - Timeout Handling: Manages request timeouts and cleanup.\n * - Message Serialization: Strips non-serializable functions from messages.\n * - Error Handling: Converts iframe errors to parent-appropriate errors.\n *\n * High-level flow:\n *\n * Step legend\n * -----------\n * (1) App calls a router RPC (executeAction, registerPasskey, etc).\n * (2) Router posts request to iframe and tracks a pending entry.\n * (3) Wallet iframe sends PROGRESS messages back to the router.\n * (4) Router forwards ProgressPayloads into OnEventsProgressBus.\n * (5) OnEventsProgressBus decides 'show' | 'hide' and calls router adapters.\n * (6) Router delegates to OverlayController to show|hide the iframe.\n * (7) Router receives final result, resolves the pending promise, unregisters,\n * and may hide the overlay if no other request still needs it.\n *\n * +-----------+ +--------------------+ +----------------------+ +----------------------+\n * | App | | WalletIframeRouter | | OnEventsProgressBus | | OverlayController |\n * +-----+-----+ +---------+----------+ +----------+-----------+ +----------+-----------+\n * | (1) RPC call (executeAction, etc.) | |\n * |---------------------->|---------------------------->| |\n * | | |\n * | (2) post(): send request to iframe |\n * | | |\n * | (3) PROGRESS from iframe via onPortMessage() |\n * |<----------------------------------------------------| |\n * | | |\n * | (4) ProgressPayload → heuristic |\n * | |---(5) 'show'|'hide' intent-->|\n * | | |\n * | (6) showFrameForActivation() | hideFrameForActivation() |\n * | | |\n * | | (6) show()|hide() |\n * | |----------------------------->|\n * | | |\n * | (7) PM_RESULT/ERROR → resolve pending, maybe hide overlay |\n * |<----------------------------------------------------| |\n *\n * Communication Flow (requests):\n * 1. Parent calls RPC method (e.g., registerPasskey).\n * 2. Router creates unique request ID and pending entry.\n * 3. Message sent to iframe via MessagePort.\n * 4. Progress events bridged back to parent callbacks and fed into OnEventsProgressBus.\n * 5. OnEventsProgressBus emits show/hide intents; router invokes OverlayController.\n * 6. Final result resolves the pending promise; router unregisters and may hide overlay.\n */\n\nimport {\n type ParentToChildEnvelope,\n type ChildToParentEnvelope,\n type ProgressPayload,\n type PreferencesChangedPayload,\n} from '../shared/messages';\nimport { SignedTransaction } from '../../NearClient';\nimport { OnEventsProgressBus, defaultPhaseHeuristics } from './on-events-progress-bus';\nimport type {\n ActionSSEEvent,\n ActionHooksOptions,\n AfterCall,\n SyncAccountSSEEvent,\n DelegateActionSSEEvent,\n DeviceLinkingSSEEvent,\n EmailRecoverySSEEvent,\n LoginSSEvent,\n RegistrationSSEEvent,\n SendTransactionHooksOptions,\n SignAndSendTransactionHooksOptions,\n} from '../../types/sdkSentEvents';\nimport {\n RegistrationPhase,\n LoginPhase,\n ActionPhase,\n DeviceLinkingPhase,\n SyncAccountPhase,\n EmailRecoveryPhase,\n} from '../../types/sdkSentEvents';\nimport type {\n ActionResult,\n GetRecentLoginsResult,\n LoginAndCreateSessionResult,\n LoginSession,\n RegistrationResult,\n SignTransactionResult,\n} from '../../types/tatchi';\nimport {\n ActionArgs,\n TransactionInput,\n TxExecutionStatus\n} from '../../types';\nimport type { DelegateActionInput } from '../../types/delegate';\nimport { IframeTransport } from './IframeTransport';\nimport OverlayController, { type DOMRectLike } from './overlay-controller';\nimport { isObject, isPlainSignedTransactionLike, extractBorshBytesFromPlainSignedTx, isBoolean, toBasePath } from '@/utils/validation';\nimport type { WalletUIRegistry } from '../host/iframe-lit-element-registry';\nimport { toError } from '../../../utils/errors';\nimport {\n DeviceLinkingQRData,\n LinkDeviceResult,\n StartDevice2LinkingFlowArgs,\n StartDevice2LinkingFlowResults,\n} from '../../types/linkDevice'\nimport type { AuthenticatorOptions } from '../../types/authenticatorOptions';\nimport { mergeSignerMode, type ConfirmationConfig, type SignerMode } from '../../types/signer-worker';\nimport type { AccessKeyList } from '../../NearClient';\nimport type { SignNEP413MessageResult } from '../../TatchiPasskey/signNEP413';\nimport type { SyncAccountResult } from '../../TatchiPasskey';\nimport { openOfflineExportWindow } from '../../OfflineExport/index.js';\nimport type { DerivedAddressRecord } from '../../IndexedDBManager';\nimport type { EmailRecoveryContracts } from '../../types/tatchi';\nimport { PASSKEY_MANAGER_DEFAULT_CONFIGS } from '../../defaultConfigs';\n\n// Simple, framework-agnostic service iframe client.\n// Responsibilities split:\n// - IframeTransport: low-level mount + load + CONNECT/READY handshake (MessagePort)\n// - WalletIframeRouter (this): request/response correlation, progress events,\n// overlay display, and high-level wallet RPC helpers\n\nexport interface WalletIframeRouterOptions {\n walletOrigin: string; // e.g., https://wallet.example.com\n servicePath?: string; // default '/wallet-service'\n connectTimeoutMs?: number; // default 8000\n requestTimeoutMs?: number; // default 20000\n theme?: 'dark' | 'light';\n /** Default signer policy applied inside the wallet iframe when per-call options omit `signerMode`. */\n signerMode?: SignerMode;\n // Enable verbose client-side logging for debugging\n debug?: boolean;\n // Test-only/diagnostic options (not part of the public API contract for apps)\n testOptions?: {\n // Optional identity/ownership tags for the iframe instance (useful for tests/tools)\n routerId?: string;\n ownerTag?: string; // e.g., 'app' | 'tests'\n // Lazy mounting: when false, do not auto-connect/mount during init(); connect on first use\n autoMount?: boolean;\n };\n // Optional config forwarded to wallet host\n nearRpcUrl?: string;\n nearNetwork?: 'testnet' | 'mainnet';\n contractId?: string;\n relayer?: {\n url: string;\n };\n vrfWorkerConfigs?: Record<string, unknown>;\n rpIdOverride?: string;\n authenticatorOptions?: AuthenticatorOptions;\n emailRecoveryContracts?: Partial<EmailRecoveryContracts>;\n // SDK asset base path for embedded bundles when mounting same‑origin via srcdoc\n // Must serve dist/esm under this base path. Defaults to '/sdk'.\n sdkBasePath?: string;\n // Optional: pre-register UI components in wallet host\n uiRegistry?: Record<string, unknown>;\n // Optional: explorer base URL for TxTree links\n nearExplorerUrl?: string;\n}\n\ntype Pending = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n timer: number | undefined;\n timeoutMs: number;\n onProgress?: (payload: ProgressPayload) => void;\n onTimeout: () => Error;\n};\n\ntype PostResult<T> = {\n ok: boolean,\n result: T\n}\n\nexport class WalletIframeRouter {\n private opts: Required<WalletIframeRouterOptions>;\n // Low-level transport handling iframe mount + handshake\n private transport: IframeTransport;\n private state = {\n port: null as MessagePort | null,\n ready: false,\n // Deduplicate concurrent init() calls and avoid race conditions\n initInFlight: null as Promise<void> | null,\n pending: new Map<string, Pending>(),\n reqCounter: 0,\n signerModePreference: null as SignerMode | null,\n // Coalesce duplicate Device2 start calls (e.g., React StrictMode double-effects)\n device2StartPromise: null as Promise<{ qrData: DeviceLinkingQRData; qrCodeDataURL: string }> | null,\n };\n private readonly listeners = {\n ready: new Set<() => void>(),\n vrfStatus: new Set<(status: { active: boolean; nearAccountId: string | null; sessionDuration?: number }) => void>(),\n preferencesChanged: new Set<(payload: PreferencesChangedPayload) => void>(),\n registerOverlayResult: new Set<(\n payload: { ok: boolean; result?: RegistrationResult; cancelled?: boolean; error?: string }\n ) => void>(),\n registerOverlaySubmit: new Set<() => void>(),\n };\n private progressBus: OnEventsProgressBus;\n private debug = false;\n private readonly walletOriginUrl: URL;\n private readonly walletOriginOrigin: string;\n // Force the overlay to remain fullscreen during critical flows (e.g., registration)\n // and ignore anchored rect updates from helper hooks.\n private overlayState: { controller: OverlayController; forceFullscreen: boolean };\n private windowMsgHandlerBound?: (ev: MessageEvent) => void;\n\n constructor(options: WalletIframeRouterOptions) {\n if (!options?.walletOrigin) {\n throw new Error('[WalletIframeRouter] walletOrigin is required when using the wallet iframe');\n }\n\n let parsedOrigin: URL;\n try {\n parsedOrigin = new URL(options.walletOrigin);\n } catch (err) {\n throw new Error(`[WalletIframeRouter] Invalid walletOrigin: ${options.walletOrigin}`);\n }\n\n if (typeof window !== 'undefined') {\n const parentOrigin = window.location.origin;\n if (parsedOrigin.origin === parentOrigin) {\n console.warn('[WalletIframeRouter] walletOrigin matches the host origin. Isolation safeguards rely on the parent; consider moving the wallet to a dedicated origin.');\n }\n }\n\n const defaultRouterId = `w3a-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n const testOptions = {\n routerId: defaultRouterId,\n ownerTag: undefined as string | undefined,\n autoMount: true,\n ...(options?.testOptions || {}),\n };\n const normalizedServicePath = (() => {\n const p = toBasePath(options?.servicePath, '/wallet-service');\n return p === '/' ? '/wallet-service' : p;\n })();\n const normalizedSdkBasePath = (() => {\n const p = toBasePath(options?.sdkBasePath, '/sdk');\n return p === '/' ? '/sdk' : p;\n })();\n this.opts = {\n connectTimeoutMs: 8000,\n requestTimeoutMs: 20000,\n ...options,\n // Normalize path-like options so empty strings (common when CI env vars are unset)\n // don't accidentally become the wallet origin root. If sdkBasePath becomes \"\", then:\n // new URL(\"\", \"https://wallet.example.com\") -> \"https://wallet.example.com/\"\n // which makes Lit components request CSS from the origin root (Pages SPA fallback),\n // yielding `Content-Type: text/html` and browser MIME-type errors.\n servicePath: normalizedServicePath,\n sdkBasePath: normalizedSdkBasePath,\n testOptions,\n signerMode: options.signerMode ?? PASSKEY_MANAGER_DEFAULT_CONFIGS.signerMode,\n } as Required<WalletIframeRouterOptions>;\n this.walletOriginUrl = parsedOrigin;\n this.walletOriginOrigin = parsedOrigin.origin;\n this.debug = !!this.opts.debug;\n // Encapsulate iframe mount + handshake logic in transport\n this.transport = new IframeTransport({\n walletOrigin: this.opts.walletOrigin,\n servicePath: this.opts.servicePath,\n connectTimeoutMs: this.opts.connectTimeoutMs,\n debug: this.debug,\n testOptions: {\n routerId: this.opts.testOptions.routerId,\n ownerTag: this.opts.testOptions.ownerTag,\n },\n });\n\n // Centralize overlay sizing/visibility. The router is the single owner of\n // \"how\" the iframe is shown/hidden (fullscreen vs anchored, sticky, etc).\n this.overlayState = {\n controller: new OverlayController({ ensureIframe: () => this.transport.ensureIframeMounted() }),\n forceFullscreen: false,\n };\n\n // Initialize progress router with overlay control and phase heuristics.\n // OnEventsProgressBus only decides *when* to show/hide based on events; it calls\n // these adapter functions, and the router delegates to OverlayController.\n this.progressBus = new OnEventsProgressBus(\n {\n show: () => this.showFrameForActivation(),\n hide: () => this.hideFrameForActivation()\n },\n defaultPhaseHeuristics,\n this.debug\n ? (msg: string, data?: Record<string, unknown>) => {\n console.debug('[WalletIframeRouter][OnEventsProgressBus]', msg, data || {});\n }\n : undefined\n );\n\n // Bridge wallet-host overlay UI messages into router callbacks\n this.windowMsgHandlerBound = (ev: MessageEvent) => {\n if (ev.origin !== this.walletOriginOrigin) return;\n const data = ev.data as unknown;\n if (!data || typeof data !== 'object') return;\n const type = (data as { type?: unknown }).type;\n if (type === 'REGISTER_BUTTON_SUBMIT') {\n // User clicked the register arrow inside the wallet-anchored UI\n // Force the overlay to fullscreen immediately so the TxConfirmer\n // can mount and capture activation in Safari/iOS/mobile.\n this.overlayState.forceFullscreen = true;\n this.overlayState.controller.setSticky(true);\n this.overlayState.controller.showFullscreen();\n for (const cb of Array.from(this.listeners.registerOverlaySubmit)) {\n try { cb(); } catch {}\n }\n return;\n }\n if (type === 'REGISTER_BUTTON_RESULT') {\n const payload = (data as { payload?: unknown }).payload as\n | { ok?: boolean; result?: RegistrationResult; cancelled?: boolean; error?: string }\n | undefined;\n const ok = !!payload?.ok;\n for (const cb of Array.from(this.listeners.registerOverlayResult)) {\n cb({ ok, result: payload?.result, cancelled: payload?.cancelled, error: payload?.error });\n }\n // Release overlay lock after result\n this.overlayState.forceFullscreen = false;\n this.overlayState.controller.setSticky(false);\n // Progress bus will hide after completion; hide defensively here\n this.hideFrameForActivation();\n if (ok) {\n const acct = payload?.result?.nearAccountId;\n void this.getLoginSession(acct)\n .then(({ login: st }) => {\n this.emitVrfStatusChanged({ active: !!st.vrfActive, nearAccountId: st.nearAccountId, sessionDuration: st.vrfSessionDuration });\n })\n .catch(() => {});\n }\n return;\n }\n };\n globalThis.addEventListener?.('message', this.windowMsgHandlerBound);\n }\n\n private attachExportUiClosedListener = (walletOrigin: string): (() => void) => {\n const onUiClosed = (ev: MessageEvent) => {\n if (ev.origin !== walletOrigin) return;\n const data = ev.data as unknown;\n if (!data || (data as any).type !== 'WALLET_UI_CLOSED') return;\n this.overlayState.controller.setSticky(false);\n this.hideFrameForActivation();\n globalThis.removeEventListener?.('message', onUiClosed);\n };\n globalThis.addEventListener?.('message', onUiClosed);\n return () => { globalThis.removeEventListener?.('message', onUiClosed) };\n }\n\n private attachExportUiFallbackListener = (walletOrigin: string, accountId: string): (() => void) => {\n const onFallback = async (ev: MessageEvent) => {\n if (ev.origin !== walletOrigin) return;\n const data = ev.data as any;\n if (!data || data.type !== 'OFFLINE_EXPORT_FALLBACK') return;\n globalThis.removeEventListener?.('message', onFallback);\n this.overlayState.controller.setSticky(false);\n this.hideFrameForActivation();\n await this.openOfflineExport({ accountId });\n };\n globalThis.addEventListener?.('message', onFallback);\n return () => { globalThis.removeEventListener?.('message', onFallback) };\n }\n\n /**\n * Subscribe to service-ready event. Returns an unsubscribe function.\n * If already ready, the listener is invoked on next microtask.\n */\n onReady(listener: () => void): () => void {\n if (this.state.ready) {\n Promise.resolve().then(() => { listener(); });\n return () => {};\n }\n this.listeners.ready.add(listener);\n return () => { this.listeners.ready.delete(listener); };\n }\n\n private emitReady(): void {\n if (!this.listeners.ready.size) return;\n for (const cb of Array.from(this.listeners.ready)) { cb(); }\n // Keep listeners registered; callers can unsubscribe if desired.\n }\n\n private resolveSignerMode(input?: SignerMode): SignerMode {\n const base = this.state.signerModePreference ?? this.opts.signerMode;\n return mergeSignerMode(base, input ?? null);\n }\n\n /**\n * Initialize the transport and configure the wallet host.\n * Safe to call multiple times; concurrent calls deduplicate via initInFlight.\n */\n async init(): Promise<void> {\n if (this.state.ready) return;\n if (this.state.initInFlight) { return this.state.initInFlight; }\n this.state.initInFlight = (async () => {\n // Respect autoMount=false by deferring connect until first use\n if (this.opts.testOptions.autoMount !== false) {\n this.state.port = await this.transport.connect();\n this.state.port.onmessage = (ev) => this.onPortMessage(ev);\n this.state.port.start?.();\n this.state.ready = true;\n }\n console.debug('[WalletIframeRouter] init: %s', this.state.ready ? 'connected' : 'deferred (autoMount=false)');\n await this.post({\n type: 'PM_SET_CONFIG',\n payload: {\n theme: this.opts.theme,\n signerMode: this.opts.signerMode,\n nearRpcUrl: this.opts.nearRpcUrl,\n nearNetwork: this.opts.nearNetwork,\n // Align with PMSetConfigPayload which expects `contractId`\n // while keeping RouterOptions field name `contractId` for external API.\n contractId: this.opts.contractId,\n nearExplorerUrl: this.opts.nearExplorerUrl,\n relayer: this.opts.relayer,\n vrfWorkerConfigs: this.opts.vrfWorkerConfigs,\n rpIdOverride: this.opts.rpIdOverride,\n authenticatorOptions: this.opts.authenticatorOptions,\n emailRecoveryContracts: this.opts.emailRecoveryContracts,\n uiRegistry: this.opts.uiRegistry,\n // for embedded Lit components\n assetsBaseUrl: (() => {\n try {\n const base = new URL(this.opts.sdkBasePath, this.walletOriginUrl).toString();\n return base.endsWith('/') ? base : `${base}/`;\n } catch {\n const fallback = new URL('/sdk/', this.walletOriginUrl).toString();\n return fallback.endsWith('/') ? fallback : `${fallback}/`;\n }\n })(),\n }\n });\n this.emitReady();\n })();\n\n try {\n await this.state.initInFlight;\n } finally {\n this.state.initInFlight = null;\n }\n }\n\n isReady(): boolean { return this.state.ready; }\n\n // ===== UI registry/window-message helpers (generic mounting) =====\n registerUiTypes(registry: WalletUIRegistry): void {\n const iframe = this.transport.ensureIframeMounted();\n const w = iframe.contentWindow;\n if (!w) return;\n const target = this.walletOriginOrigin;\n this.postWindowMessage(w, { type: 'WALLET_UI_REGISTER_TYPES', payload: registry }, target);\n }\n\n mountUiComponent(params: { key: string; props?: Record<string, unknown>; targetSelector?: string; id?: string }): void {\n const iframe = this.transport.ensureIframeMounted();\n const w = iframe.contentWindow;\n if (!w) return;\n const target = this.walletOriginOrigin;\n this.postWindowMessage(w, { type: 'WALLET_UI_MOUNT', payload: params }, target);\n }\n\n updateUiComponent(params: { id: string; props?: Record<string, unknown> }): void {\n const iframe = this.transport.ensureIframeMounted();\n const w = iframe.contentWindow;\n if (!w) return;\n const target = this.walletOriginOrigin;\n this.postWindowMessage(w, { type: 'WALLET_UI_UPDATE', payload: params }, target);\n }\n\n unmountUiComponent(id: string): void {\n const iframe = this.transport.ensureIframeMounted();\n const w = iframe.contentWindow;\n if (!w) return;\n const target = this.walletOriginOrigin;\n this.postWindowMessage(w, { type: 'WALLET_UI_UNMOUNT', payload: { id } }, target);\n }\n\n // ===== Public RPC helpers =====\n\n // Subscribe to VRF status changes observed by this client\n onVrfStatusChanged(listener: (status: {\n active: boolean;\n nearAccountId: string | null;\n sessionDuration?: number\n }) => void): () => void {\n this.listeners.vrfStatus.add(listener);\n return () => { this.listeners.vrfStatus.delete(listener); };\n }\n\n // Subscribe to wallet-host preference changes (authoritative in wallet-iframe mode).\n onPreferencesChanged(listener: (payload: PreferencesChangedPayload) => void): () => void {\n this.listeners.preferencesChanged.add(listener);\n return () => { this.listeners.preferencesChanged.delete(listener); };\n }\n\n private emitVrfStatusChanged(status: {\n active: boolean;\n nearAccountId: string | null;\n sessionDuration?: number\n }): void {\n for (const cb of Array.from(this.listeners.vrfStatus)) {\n try { cb(status); } catch {}\n }\n }\n\n private emitPreferencesChanged(payload: PreferencesChangedPayload): void {\n if (!this.listeners.preferencesChanged.size) return;\n for (const cb of Array.from(this.listeners.preferencesChanged)) {\n try { cb(payload); } catch {}\n }\n }\n\n // Overlay register button events (optional convenience API)\n onRegisterOverlayResult(listener: (payload: { ok: boolean; result?: RegistrationResult; cancelled?: boolean; error?: string }) => void): () => void {\n this.listeners.registerOverlayResult.add(listener);\n return () => { this.listeners.registerOverlayResult.delete(listener); };\n }\n\n onRegisterOverlaySubmit(listener: () => void): () => void {\n this.listeners.registerOverlaySubmit.add(listener);\n return () => { this.listeners.registerOverlaySubmit.delete(listener); };\n }\n\n // ===== TatchiPasskey RPCs =====\n\n async signTransactionsWithActions(payload: {\n nearAccountId: string;\n transactions: TransactionInput[];\n options: {\n signerMode?: SignerMode;\n onEvent?: (ev: ActionSSEEvent) => void;\n onError?: (error: Error) => void;\n afterCall?: AfterCall<SignTransactionResult[]>;\n // Allow minimal overrides (e.g., { uiMode: 'drawer' })\n confirmationConfig?: Partial<ConfirmationConfig>;\n confirmerText?: { title?: string; body?: string };\n }\n }): Promise<SignTransactionResult[]> {\n // Do not forward non-cloneable functions in options; host emits its own PROGRESS messages\n const safeOptions = {\n signerMode: this.resolveSignerMode(payload.options.signerMode),\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig }\n : {}),\n ...(payload.options.confirmerText\n ? { confirmerText: payload.options.confirmerText }\n : {}),\n };\n const res = await this.post<SignTransactionResult>({\n type: 'PM_SIGN_TXS_WITH_ACTIONS',\n payload: {\n nearAccountId: payload.nearAccountId,\n transactions: payload.transactions,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isActionSSEEvent) }\n });\n return normalizeSignedTransactionObject(res.result)\n }\n\n async signDelegateAction(payload: {\n nearAccountId: string;\n delegate: DelegateActionInput;\n options: {\n signerMode?: SignerMode;\n onEvent?: (ev: ActionSSEEvent) => void;\n onError?: (error: Error) => void;\n afterCall?: AfterCall<any>;\n confirmationConfig?: Partial<ConfirmationConfig>;\n confirmerText?: { title?: string; body?: string };\n }\n }): Promise<unknown> {\n const safeOptions = {\n signerMode: this.resolveSignerMode(payload.options.signerMode),\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n };\n const res = await this.post<unknown>({\n type: 'PM_SIGN_DELEGATE_ACTION',\n payload: {\n nearAccountId: payload.nearAccountId,\n delegate: payload.delegate,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isActionSSEEvent) }\n });\n return res.result;\n }\n\n async registerPasskey(payload: {\n nearAccountId: string;\n confirmationConfig?: Partial<ConfirmationConfig>;\n options?: {\n onEvent?: (ev: RegistrationSSEEvent) => void;\n signerMode?: SignerMode;\n confirmerText?: { title?: string; body?: string };\n }\n }): Promise<RegistrationResult> {\n // Step 1: For registration, force fullscreen overlay (not anchored to CTA)\n // so the TxConfirmer (drawer/modal) has space to render and capture activation.\n // Lock overlay to fullscreen for the duration of registration\n this.overlayState.forceFullscreen = true;\n this.overlayState.controller.setSticky(true);\n this.overlayState.controller.showFullscreen();\n\n try {\n // Optional one-time confirmation override (non-persistent)\n if (payload.confirmationConfig) {\n const base = await this.getConfirmationConfig();\n await this.setConfirmationConfig({ ...base, ...payload.confirmationConfig });\n }\n\n // Step 2: Strip non-serializable functions from options (functions can't cross iframe boundary)\n const safeOptions = removeFunctionsFromOptions(payload.options);\n\n // Step 3: Send PM_REGISTER message to iframe and wait for response\n const res = await this.post<RegistrationResult>({\n type: 'PM_REGISTER',\n payload: {\n nearAccountId: payload.nearAccountId,\n options: safeOptions,\n ...(payload.confirmationConfig ? { confirmationConfig: payload.confirmationConfig as unknown as Record<string, unknown> } : {})\n },\n // Bridge progress events from iframe back to parent callback\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isRegistrationSSEEvent) }\n });\n\n // Step 4: Update VRF status after successful registration\n const { login: st } = await this.getLoginSession(payload.nearAccountId);\n this.emitVrfStatusChanged({\n active: !!st.vrfActive,\n nearAccountId: st.nearAccountId,\n sessionDuration: st.vrfSessionDuration\n });\n\n return res?.result;\n } finally {\n // Step 5: Always release overlay lock and hide when done (success or error)\n this.overlayState.forceFullscreen = false;\n this.overlayState.controller.setSticky(false);\n this.hideFrameForActivation();\n }\n }\n\n async enrollThresholdEd25519Key(payload: {\n nearAccountId: string;\n options?: {\n deviceNumber?: number;\n };\n }): Promise<{\n success: boolean;\n publicKey: string;\n relayerKeyId: string;\n wrapKeySalt: string;\n error?: string;\n }> {\n this.showFrameForActivation();\n try {\n const safeOptions = removeFunctionsFromOptions(payload.options);\n const res = await this.post<{\n success: boolean;\n publicKey: string;\n relayerKeyId: string;\n wrapKeySalt: string;\n error?: string;\n }>({\n type: 'PM_ENROLL_THRESHOLD_ED25519_KEY',\n payload: {\n nearAccountId: payload.nearAccountId,\n options: safeOptions,\n },\n });\n return res.result;\n } finally {\n this.hideFrameForActivation();\n }\n }\n\n async rotateThresholdEd25519Key(payload: {\n nearAccountId: string;\n options?: {\n deviceNumber?: number;\n };\n }): Promise<{\n success: boolean;\n oldPublicKey: string;\n oldRelayerKeyId: string;\n publicKey: string;\n relayerKeyId: string;\n wrapKeySalt: string;\n deleteOldKeyAttempted: boolean;\n deleteOldKeySuccess: boolean;\n warning?: string;\n error?: string;\n }> {\n this.showFrameForActivation();\n try {\n const safeOptions = removeFunctionsFromOptions(payload.options);\n const res = await this.post<{\n success: boolean;\n oldPublicKey: string;\n oldRelayerKeyId: string;\n publicKey: string;\n relayerKeyId: string;\n wrapKeySalt: string;\n deleteOldKeyAttempted: boolean;\n deleteOldKeySuccess: boolean;\n warning?: string;\n error?: string;\n }>({\n type: 'PM_ROTATE_THRESHOLD_ED25519_KEY',\n payload: {\n nearAccountId: payload.nearAccountId,\n options: safeOptions,\n },\n });\n return res.result;\n } finally {\n this.hideFrameForActivation();\n }\n }\n\n async loginAndCreateSession(payload: {\n nearAccountId: string;\n options?: {\n onEvent?: (ev: LoginSSEvent) => void;\n deviceNumber?: number;\n // Forward session config so host can mint JWT/cookie\n session?: {\n kind: 'jwt' | 'cookie';\n relayUrl?: string;\n route?: string;\n };\n // Warm signing session policy override during login\n signingSession?: {\n ttlMs?: number;\n remainingUses?: number;\n };\n }\n }): Promise<LoginAndCreateSessionResult> {\n this.showFrameForActivation();\n try {\n const safeOptions = removeFunctionsFromOptions(payload.options);\n const res = await this.post<LoginAndCreateSessionResult>({\n type: 'PM_LOGIN',\n payload: {\n nearAccountId: payload.nearAccountId,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isLoginSSEEvent) }\n });\n const { login: st } = await this.getLoginSession(payload.nearAccountId);\n this.emitVrfStatusChanged({ active: !!st.vrfActive, nearAccountId: st.nearAccountId, sessionDuration: st.vrfSessionDuration });\n return res?.result;\n } finally {\n this.hideFrameForActivation();\n }\n }\n\n async getLoginSession(nearAccountId?: string): Promise<LoginSession> {\n const res = await this.post<LoginSession>({\n type: 'PM_GET_LOGIN_SESSION',\n payload: nearAccountId ? { nearAccountId } : undefined\n });\n return res.result;\n }\n\n async checkVrfStatus(): Promise<PostResult<{ active: boolean; nearAccountId: string | null; sessionDuration?: number }>> {\n const { login: st } = await this.getLoginSession();\n return {\n ok: true,\n result: {\n active: !!st.vrfActive,\n nearAccountId: st.nearAccountId,\n sessionDuration: st.vrfSessionDuration\n }\n };\n }\n\n async clearVrfSession(): Promise<PostResult<void>> {\n await this.post<void>({ type: 'PM_LOGOUT' });\n this.emitVrfStatusChanged({ active: false, nearAccountId: null });\n return { ok: true, result: undefined };\n }\n\n async signNep413Message(payload: {\n nearAccountId: string;\n message: string;\n recipient: string;\n state?: string;\n options: {\n signerMode?: SignerMode;\n onEvent?: (ev: ActionSSEEvent) => void;\n confirmerText?: { title?: string; body?: string };\n confirmationConfig?: Partial<ConfirmationConfig>;\n }\n }): Promise<SignNEP413MessageResult> {\n const safeOptions = {\n signerMode: this.resolveSignerMode(payload.options.signerMode),\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n };\n const res = await this.post<SignNEP413MessageResult>({\n type: 'PM_SIGN_NEP413',\n payload: {\n nearAccountId: payload.nearAccountId,\n params: {\n message: payload.message,\n recipient: payload.recipient,\n state: payload.state\n },\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isActionSSEEvent) }\n });\n return res.result\n }\n\n async signTransactionWithKeyPair(payload: {\n signedTransaction: SignedTransaction;\n options?: {\n onEvent?: (ev: ActionSSEEvent) => void\n }\n }): Promise<ActionResult> {\n // Strip non-cloneable functions from options; host emits PROGRESS events\n const { options } = payload;\n const res = await this.post<ActionResult>( {\n type: 'PM_SEND_TRANSACTION',\n payload: {\n signedTransaction: payload.signedTransaction,\n options: options\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result;\n }\n\n async executeAction(payload: {\n nearAccountId: string;\n receiverId: string;\n actionArgs: ActionArgs | ActionArgs[];\n options: ActionHooksOptions\n }): Promise<ActionResult> {\n // Strip non-cloneable functions from options; host emits PROGRESS events\n const { options } = payload;\n const safeOptions = {\n signerMode: this.resolveSignerMode(options.signerMode),\n waitUntil: options.waitUntil,\n confirmationConfig: options.confirmationConfig,\n ...(options.confirmerText ? { confirmerText: options.confirmerText } : {}),\n };\n\n const res = await this.post<ActionResult>({\n type: 'PM_EXECUTE_ACTION',\n payload: {\n nearAccountId: payload.nearAccountId,\n receiverId: payload.receiverId,\n actionArgs: payload.actionArgs,\n options: safeOptions,\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result;\n }\n\n async setConfirmBehavior(behavior: 'requireClick' | 'autoProceed'): Promise<void> {\n let { nearAccountId } = (await this.getLoginSession()).login;\n await this.post<void>({\n type: 'PM_SET_CONFIRM_BEHAVIOR',\n payload: { behavior, nearAccountId }\n });\n }\n\n async setConfirmationConfig(config: ConfirmationConfig): Promise<void> {\n let { nearAccountId } = (await this.getLoginSession()).login;\n await this.post<void>({\n type: 'PM_SET_CONFIRMATION_CONFIG',\n payload: { config, nearAccountId }\n });\n }\n\n async getConfirmationConfig(): Promise<ConfirmationConfig> {\n const res = await this.post<ConfirmationConfig>({ type: 'PM_GET_CONFIRMATION_CONFIG' });\n return res.result\n }\n\n async setSignerMode(signerMode: SignerMode): Promise<void> {\n await this.post<void>({ type: 'PM_SET_SIGNER_MODE', payload: { signerMode } });\n }\n\n async getSignerMode(opts?: { timeoutMs?: number }): Promise<SignerMode> {\n const res = await this.post<SignerMode>({ type: 'PM_GET_SIGNER_MODE' }, opts);\n return res.result;\n }\n\n async setTheme(theme: 'dark' | 'light'): Promise<void> {\n await this.post<void>({ type: 'PM_SET_THEME', payload: { theme } });\n }\n\n async prefetchBlockheight(): Promise<void> {\n await this.post<void>({ type: 'PM_PREFETCH_BLOCKHEIGHT' } );\n }\n\n async getRecentLogins(): Promise<GetRecentLoginsResult> {\n const res = await this.post<GetRecentLoginsResult>({ type: 'PM_GET_RECENT_LOGINS' } );\n return res.result;\n }\n\n // === Local persistence helpers (wallet-origin IndexedDB) ===\n\n async setDerivedAddress(payload: {\n nearAccountId: string;\n args: { contractId: string; path: string; address: string };\n }): Promise<void> {\n await this.post<void>({\n type: 'PM_SET_DERIVED_ADDRESS',\n payload,\n });\n }\n\n async getDerivedAddressRecord(payload: {\n nearAccountId: string;\n args: { contractId: string; path: string };\n }): Promise<DerivedAddressRecord | null> {\n const res = await this.post<DerivedAddressRecord | null>({\n type: 'PM_GET_DERIVED_ADDRESS_RECORD',\n payload,\n });\n return (res.result as DerivedAddressRecord | null) || null;\n }\n\n async getDerivedAddress(payload: {\n nearAccountId: string;\n args: { contractId: string; path: string };\n }): Promise<string | null> {\n const res = await this.post<string | null>({\n type: 'PM_GET_DERIVED_ADDRESS',\n payload,\n });\n return (res.result as string | null) || null;\n }\n\n async getRecoveryEmails(\n nearAccountId: string,\n ): Promise<Array<{ hashHex: string; email: string }>> {\n const res = await this.post<Array<{ hashHex: string; email: string }>>({\n type: 'PM_GET_RECOVERY_EMAILS',\n payload: { nearAccountId },\n });\n return (res.result as Array<{ hashHex: string; email: string }>) || [];\n }\n\n async setRecoveryEmails(payload: {\n nearAccountId: string;\n recoveryEmails: string[];\n options: ActionHooksOptions;\n }): Promise<ActionResult> {\n const { options } = payload;\n const safeOptions = {\n signerMode: this.resolveSignerMode(options.signerMode),\n waitUntil: options.waitUntil,\n confirmationConfig: options.confirmationConfig,\n };\n\n const res = await this.post<ActionResult>({\n type: 'PM_SET_RECOVERY_EMAILS',\n payload: {\n nearAccountId: payload.nearAccountId,\n recoveryEmails: payload.recoveryEmails,\n options: safeOptions,\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) },\n });\n return res.result;\n }\n\n // Bridge typed public onEvent callbacks to the transport's onProgress callback.\n // - onEvent: consumer's strongly-typed event handler (e.g., ActionSSEEvent)\n // - isExpectedEvent: runtime type guard that validates a ProgressPayload as that event type\n // Returns an onProgress handler that safely narrows before invoking onEvent.\n private wrapOnEvent<TEvent extends ProgressPayload>(\n onEvent: ((event: TEvent) => void) | undefined,\n isExpectedEvent: (progress: ProgressPayload) => progress is TEvent\n ): ((progress: ProgressPayload) => void) | undefined {\n if (!onEvent) return undefined;\n return (progress: ProgressPayload) => {\n try {\n if (isExpectedEvent(progress)) onEvent(progress);\n } catch {}\n };\n }\n\n async signAndSendTransactions(payload: {\n nearAccountId: string;\n transactions: TransactionInput[];\n options: SignAndSendTransactionHooksOptions\n }): Promise<ActionResult[]> {\n const { options } = payload;\n // cannot send objects/functions through postMessage(), clean options first\n const safeOptions = {\n signerMode: this.resolveSignerMode(options.signerMode),\n waitUntil: options.waitUntil,\n executionWait: options.executionWait,\n confirmationConfig: options.confirmationConfig,\n ...(options.confirmerText ? { confirmerText: options.confirmerText } : {}),\n };\n\n const res = await this.post<ActionResult[]>({\n type: 'PM_SIGN_AND_SEND_TXS',\n payload: {\n nearAccountId: payload.nearAccountId,\n transactions: payload.transactions,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result;\n }\n\n async hasPasskeyCredential(nearAccountId: string): Promise<boolean> {\n const res = await this.post<boolean>({\n type: 'PM_HAS_PASSKEY',\n payload: { nearAccountId }\n });\n return !!res?.result;\n }\n\n async viewAccessKeyList(accountId: string): Promise<AccessKeyList> {\n const res = await this.post<AccessKeyList>({\n type: 'PM_VIEW_ACCESS_KEYS',\n payload: { accountId }\n });\n return res.result\n }\n\n async deleteDeviceKey(payload: {\n accountId: string;\n publicKeyToDelete: string;\n options: { signerMode?: SignerMode; onEvent?: (ev: ActionSSEEvent) => void };\n }) : Promise<ActionResult> {\n const res = await this.post<ActionResult>({\n type: 'PM_DELETE_DEVICE_KEY',\n payload: {\n accountId: payload.accountId,\n publicKeyToDelete: payload.publicKeyToDelete,\n options: {\n signerMode: this.resolveSignerMode(payload.options.signerMode),\n },\n },\n options: { onProgress: this.wrapOnEvent(payload.options?.onEvent, isActionSSEEvent) }\n });\n return res.result\n }\n\n async sendTransaction(args: {\n signedTransaction: SignedTransaction;\n options?: SendTransactionHooksOptions;\n }): Promise<ActionResult> {\n // Strip non-cloneable functions from options; host emits PROGRESS events\n const { options } = args;\n const safeOptions = options\n ? { waitUntil: options.waitUntil }\n : undefined;\n\n const res = await this.post<ActionResult>({\n type: 'PM_SEND_TRANSACTION',\n payload: {\n signedTransaction: args.signedTransaction,\n options: safeOptions\n },\n options: { onProgress: this.wrapOnEvent(options?.onEvent, isActionSSEEvent) }\n });\n return res.result\n }\n\n async exportNearKeypairWithUI(\n nearAccountId: string,\n options?: { variant?: 'drawer' | 'modal'; theme?: 'dark' | 'light' }\n ): Promise<void> {\n try {\n // Make the wallet iframe visible while the export viewer is open.\n // Unlike request/response flows, the wallet host renders UI and manages\n // its own lifecycle; it will notify us when to hide via window message.\n this.showFrameForActivation();\n const walletOrigin = this.walletOriginOrigin;\n const detachClosed = this.attachExportUiClosedListener(walletOrigin);\n const detachFallback = this.attachExportUiFallbackListener(walletOrigin, nearAccountId);\n await this.post<void>({\n type: 'PM_EXPORT_NEAR_KEYPAIR_UI',\n payload: { nearAccountId, variant: options?.variant, theme: options?.theme },\n options: { sticky: true }\n });\n // Cleanup once posted (handlers will remove themselves on events)\n void detachClosed;\n void detachFallback;\n return;\n } catch (e) {\n // Fallback to offline-export route (new tab) if wallet host is unreachable or errors out\n await this.openOfflineExport({ accountId: nearAccountId });\n }\n }\n\n /**\n * Open the offline-export route as a full-screen overlay iframe and instruct it via postMessage\n * to begin the export flow for the given account. Cleans up when the viewer closes or on error.\n */\n async openOfflineExport({ accountId, timeoutMs = 20000 }: { accountId: string; timeoutMs?: number }): Promise<void> {\n const walletOrigin = this.opts.walletOrigin || window.location.origin;\n // Default: open a new tab/window for clarity\n openOfflineExportWindow({ walletOrigin, target: '_blank', accountId });\n return Promise.resolve();\n }\n\n // ===== Account Sync (single-endpoint flow) =====\n async syncAccount(payload: {\n accountId?: string;\n onEvent?: (ev: SyncAccountSSEEvent) => void\n }): Promise<SyncAccountResult> {\n const res = await this.post<SyncAccountResult>({\n type: 'PM_SYNC_ACCOUNT_FLOW',\n payload: { accountId: payload.accountId },\n options: {\n onProgress: this.wrapOnEvent(payload.onEvent, isSyncAccountSSEEvent)\n }\n });\n return res.result\n }\n\n // ===== Email Recovery (wallet-hosted) =====\n async startEmailRecovery(payload: {\n accountId: string;\n onEvent?: (ev: EmailRecoverySSEEvent) => void;\n options?: {\n confirmerText?: { title?: string; body?: string };\n confirmationConfig?: Partial<ConfirmationConfig>;\n }\n }): Promise<{ mailtoUrl: string; nearPublicKey: string }> {\n const safeOptions = payload.options\n ? {\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n }\n : undefined;\n const res = await this.post<{ mailtoUrl: string; nearPublicKey: string }>({\n type: 'PM_START_EMAIL_RECOVERY',\n payload: {\n accountId: payload.accountId,\n options: safeOptions && Object.keys(safeOptions).length > 0 ? safeOptions : undefined\n },\n options: {\n onProgress: this.wrapOnEvent(payload.onEvent, isEmailRecoverySSEEvent)\n }\n });\n return res.result;\n }\n\n async finalizeEmailRecovery(payload: {\n accountId: string;\n nearPublicKey?: string;\n onEvent?: (ev: EmailRecoverySSEEvent) => void\n }): Promise<void> {\n await this.post<void>({\n type: 'PM_FINALIZE_EMAIL_RECOVERY',\n payload: { accountId: payload.accountId, nearPublicKey: payload.nearPublicKey },\n options: {\n onProgress: this.wrapOnEvent(payload.onEvent, isEmailRecoverySSEEvent)\n }\n });\n }\n\n async stopEmailRecovery(payload?: { accountId?: string; nearPublicKey?: string }): Promise<void> {\n await this.post<void>({\n type: 'PM_STOP_EMAIL_RECOVERY',\n payload: { accountId: payload?.accountId, nearPublicKey: payload?.nearPublicKey },\n });\n }\n\n // ===== Device Linking (iframe-hosted) =====\n async linkDeviceWithScannedQRData(payload: {\n qrData: DeviceLinkingQRData;\n fundingAmount: string;\n options?: {\n onEvent?: (ev: DeviceLinkingSSEEvent) => void;\n confirmationConfig?: Partial<ConfirmationConfig>;\n confirmerText?: { title?: string; body?: string };\n }\n }): Promise<LinkDeviceResult> {\n // TouchID required within host\n this.showFrameForActivation();\n try {\n const safeOptions = payload.options\n ? {\n ...(payload.options.confirmationConfig\n ? { confirmationConfig: payload.options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n ...(payload.options.confirmerText ? { confirmerText: payload.options.confirmerText } : {}),\n }\n : undefined;\n const res = await this.post<LinkDeviceResult>({\n type: 'PM_LINK_DEVICE_WITH_SCANNED_QR_DATA',\n payload: {\n qrData: payload.qrData,\n fundingAmount: payload.fundingAmount,\n options: safeOptions && Object.keys(safeOptions).length > 0 ? safeOptions : undefined\n },\n options: {\n onProgress: this.wrapOnEvent(payload.options?.onEvent, isDeviceLinkingSSEEvent)\n }\n });\n return res.result\n } finally {\n this.hideFrameForActivation();\n }\n }\n\n async startDevice2LinkingFlow(payload?: StartDevice2LinkingFlowArgs): Promise<StartDevice2LinkingFlowResults> {\n if (this.state.device2StartPromise) {\n return this.state.device2StartPromise\n }\n const options = payload?.options;\n const safeOptions = options\n ? {\n ...(options.confirmationConfig\n ? { confirmationConfig: options.confirmationConfig as unknown as Record<string, unknown> }\n : {}),\n ...(options.confirmerText ? { confirmerText: options.confirmerText } : {}),\n }\n : undefined;\n const p = this.post<StartDevice2LinkingFlowResults>({\n type: 'PM_START_DEVICE2_LINKING_FLOW',\n payload: {\n ui: payload?.ui,\n cameraId: payload?.cameraId,\n options: safeOptions\n },\n options: {\n onProgress: this.wrapOnEvent(options?.onEvent, isDeviceLinkingSSEEvent),\n sticky: true\n }\n }).then((res) => res.result)\n .finally(() => { this.state.device2StartPromise = null; });\n\n this.state.device2StartPromise = p;\n return p;\n }\n\n async stopDevice2LinkingFlow(): Promise<void> {\n await this.post<void>({ type: 'PM_STOP_DEVICE2_LINKING_FLOW' });\n this.progressBus.clearAll();\n }\n\n // ===== Control APIs =====\n async cancelRequest(requestId: string): Promise<void> {\n // Best-effort cancel. Host will attempt to close open modals and mark the request as cancelled.\n await this.post<void>({ type: 'PM_CANCEL', payload: { requestId } }).catch(() => {});\n // Always clear local progress + hide overlay even if the host didn't receive the message\n this.progressBus.unregister(requestId);\n this.hideFrameForActivation();\n }\n\n async cancelAll(): Promise<void> {\n // Try to cancel all requests on the host, but don't depend on READY/port availability\n await this.post<void>({ type: 'PM_CANCEL', payload: {} }).catch(() => {});\n // Clear all local progress listeners and force-hide the overlay\n this.progressBus.clearAll();\n this.hideFrameForActivation();\n }\n\n private onPortMessage(e: MessageEvent<ChildToParentEnvelope>) {\n const msg = e.data as ChildToParentEnvelope;\n // Some wallet-host messages are push-style and are not correlated to a requestId.\n if (msg.type === 'PREFERENCES_CHANGED') {\n const payload = msg.payload as PreferencesChangedPayload;\n try {\n this.state.signerModePreference = payload?.signerMode ?? this.state.signerModePreference;\n } catch {}\n this.emitPreferencesChanged(payload);\n return;\n }\n const requestId = msg.requestId;\n if (!requestId) return;\n\n // Bridge PROGRESS events to caller-provided onEvent callback via pending registry\n if (msg.type === 'PROGRESS') {\n const payload = (msg.payload as ProgressPayload);\n // Route via ProgressBus (handles overlay + sticky delivery)\n this.progressBus.dispatch({ requestId: requestId, payload: payload });\n // Refresh timeout for long-running operations whenever progress is received\n const pend = this.state.pending.get(requestId);\n if (pend) {\n if (pend.timer) window.clearTimeout(pend.timer);\n pend.timer = window.setTimeout(() => {\n const err = pend.onTimeout();\n pend.reject(err);\n }, pend.timeoutMs);\n }\n return;\n }\n\n const pending = this.state.pending.get(requestId);\n // Hide overlay on completion only if no other requests still need it,\n // and this request wasn't marked sticky (UI-managed lifecycle).\n if (!this.progressBus.isSticky(requestId)) {\n if (!this.progressBus.wantsVisible()) {\n this.hideFrameForActivation();\n }\n }\n if (!pending) {\n // Even if no pending exists (e.g., early cancel or pre-resolved),\n // ensure any lingering progress subscriber is removed.\n if (this.debug) {\n console.debug('[WalletIframeRouter] Non-PROGRESS without pending → hide + unregister', {\n requestId,\n type: (msg as unknown as { type?: unknown })?.type || 'unknown'\n });\n }\n this.progressBus.unregister(requestId);\n return;\n }\n this.state.pending.delete(requestId);\n if (pending.timer) window.clearTimeout(pending.timer);\n\n if (msg.type === 'ERROR') {\n const err: Error & { code?: string; details?: unknown } = new Error(msg.payload?.message || 'Wallet error');\n err.code = msg.payload?.code;\n err.details = msg.payload?.details;\n // Deliver to pending promise if present\n pending.reject(err);\n // Also notify all progress subscribers for this requestId\n this.progressBus.dispatch({\n requestId: requestId,\n payload: {\n step: 0,\n phase: 'error',\n status: 'error',\n message: msg.payload?.message\n }\n });\n this.progressBus.unregister(requestId);\n return;\n }\n\n pending.resolve(msg.payload);\n if (!this.progressBus.isSticky(requestId)) {\n this.progressBus.unregister(requestId);\n }\n }\n\n /**\n * Post a typed envelope over the MessagePort with robust readiness handling.\n * This is the core method that handles all communication with the iframe.\n *\n * Flow:\n * 1. Ensure iframe is ready (lazy initialization)\n * 2. Generate unique request ID for correlation\n * 3. Set up timeout and progress handling\n * 4. Send message to iframe via MessagePort\n * 5. Wait for response (PM_RESULT or ERROR)\n * 6. Clean up on completion or timeout\n */\n private async post<T>(\n envelope: Omit<ParentToChildEnvelope, 'requestId'>,\n postOpts?: { timeoutMs?: number },\n ): Promise<PostResult<T>> {\n\n // Step 1: Lazily initialize the iframe/client if not ready yet\n if (!this.state.ready || !this.state.port) {\n await this.init();\n }\n\n // Step 2: Generate unique request ID for correlation\n const requestId = `${Date.now()}-${++this.state.reqCounter}`;\n const full: ParentToChildEnvelope = { ...(envelope as ParentToChildEnvelope), requestId };\n const { options } = full;\n const timeoutMs = postOpts?.timeoutMs ?? this.opts.requestTimeoutMs;\n\n return new Promise<PostResult<T>>((resolve, reject) => {\n const onTimeout = () => {\n const pending = this.state.pending.get(requestId);\n if (pending?.timer !== undefined) window.clearTimeout(pending.timer);\n this.state.pending.delete(requestId);\n this.progressBus.unregister(requestId);\n this.overlayState.controller.setSticky(false);\n if (!this.progressBus.wantsVisible()) {\n this.hideFrameForActivation();\n }\n this.sendBestEffortCancel(requestId);\n return new Error(`Wallet request timeout for ${envelope.type}`);\n };\n\n // Step 3: Set up timeout handler for request\n const timer = window.setTimeout(() => {\n const err = onTimeout();\n reject(err);\n }, timeoutMs);\n\n // Step 4: Register pending request for correlation\n this.state.pending.set(requestId, {\n resolve: (v) => resolve(v as PostResult<T>),\n reject,\n timer,\n timeoutMs,\n onProgress: options?.onProgress,\n onTimeout,\n });\n\n // Step 5: Register progress handler for real-time updates\n this.progressBus.register({\n requestId: requestId,\n sticky: !!options?.sticky, // Some flows need to persist after completion\n onProgress: (payload: ProgressPayload) => {\n // Bridge progress events from iframe back to parent callback\n try {\n options?.onProgress?.(payload);\n } catch {}\n },\n });\n\n try {\n // Step 6: Strip non-cloneable fields (functions) from envelope options before posting\n const stickyVal = isObject(options) ? (options as { sticky?: unknown }).sticky : undefined;\n const wireOptions = isBoolean(stickyVal) ? { sticky: stickyVal } : undefined;\n const serializableFull = wireOptions ? { ...full, options: wireOptions } : { ...full, options: undefined };\n\n // Align overlay stickiness with request options (phase 2 will use intents)\n this.overlayState.controller.setSticky(!!(wireOptions && (wireOptions as { sticky?: boolean }).sticky));\n\n // Step 7: Apply overlay intent (conservative) if not already visible, then post\n if (!this.overlayState.controller.getState().visible) {\n const intent = this.computeOverlayIntent(serializableFull.type);\n if (intent.mode === 'fullscreen') {\n this.overlayState.controller.setSticky(!!(wireOptions && (wireOptions as { sticky?: boolean }).sticky));\n this.overlayState.controller.showFullscreen();\n }\n }\n\n // Send message to iframe via MessagePort\n this.state.port!.postMessage(serializableFull as ParentToChildEnvelope);\n } catch (err) {\n // Step 8: Handle send errors - clean up and reject\n this.state.pending.delete(requestId);\n window.clearTimeout(timer);\n this.progressBus.unregister(requestId);\n reject(toError(err));\n }\n });\n }\n\n /**\n * Preflight overlay decision before sending the request.\n * - This decides whether to show fullscreen early for user activation.\n * - ProgressBus handles hide timing; OverlayController just executes the decision.\n */\n private computeOverlayIntent(type: ParentToChildEnvelope['type']): { mode: 'hidden' | 'fullscreen' } {\n switch (type) {\n // Operations that require fullscreen overlay for WebAuthn activation\n case 'PM_EXPORT_NEAR_KEYPAIR_UI':\n case 'PM_REGISTER':\n case 'PM_LOGIN':\n case 'PM_SYNC_ACCOUNT_FLOW':\n case 'PM_LINK_DEVICE_WITH_SCANNED_QR_DATA':\n case 'PM_SIGN_AND_SEND_TXS':\n case 'PM_EXECUTE_ACTION':\n case 'PM_SEND_TRANSACTION':\n case 'PM_SIGN_TXS_WITH_ACTIONS':\n return { mode: 'fullscreen' };\n\n // All other operations (background/read-only) don't need overlay\n default:\n return { mode: 'hidden' };\n }\n }\n\n // Temporarily show the service iframe to capture user activation\n private showFrameForActivation(): void {\n // Ensure iframe exists so overlay can be applied immediately\n this.transport.ensureIframeMounted();\n if (this.overlayState.forceFullscreen) {\n this.overlayState.controller.showFullscreen();\n } else {\n // Prefer fullscreen by default\n this.overlayState.controller.showFullscreen();\n }\n }\n\n private hideFrameForActivation(): void {\n if (!this.overlayState.controller.getState().visible) return;\n this.overlayState.controller.hide();\n }\n\n private sendBestEffortCancel(targetRequestId?: string): void {\n const port = this.state.port;\n if (!port) return;\n const cancelEnvelope: ParentToChildEnvelope = {\n type: 'PM_CANCEL',\n requestId: `cancel-${Date.now()}-${Math.random().toString(36).slice(2)}`,\n payload: targetRequestId ? { requestId: targetRequestId } : {}\n };\n port.postMessage(cancelEnvelope);\n }\n\n /**\n * Public toggle to surface the wallet iframe for user activation or hide it.\n * Useful when mounting inline UI components that require direct user clicks.\n */\n setOverlayVisible(visible: boolean): void {\n if (visible) {\n // Respect fullscreen lock when present\n if (this.overlayState.forceFullscreen) {\n this.overlayState.controller.showFullscreen();\n } else {\n this.showFrameForActivation();\n }\n } else {\n this.hideFrameForActivation();\n }\n }\n\n /** Public helper for tests/tools: get the underlying iframe element. */\n getIframeEl(): HTMLIFrameElement | null {\n return this.transport.getIframeEl();\n }\n\n /** Public helper for tests/tools: inspect current overlay state. */\n getOverlayState(): { visible: boolean; mode: 'hidden' | 'fullscreen' | 'anchored'; sticky: boolean; rect?: DOMRectLike } {\n return this.overlayState.controller.getState();\n }\n\n /**\n * Position and show the wallet iframe as an anchored overlay matching a DOMRect.\n * Accepts viewport-relative coordinates (from getBoundingClientRect()).\n *\n * Important: Some apps apply CSS transforms (or filters/perspective) on html/body,\n * which changes the containing block for position: fixed. In those cases a fixed\n * iframe will be offset by the page scroll. To avoid that mismatch, anchor the\n * overlay using absolute positioning in document coordinates.\n */\n setOverlayBounds(rect: { top: number; left: number; width: number; height: number }): void {\n if (this.overlayState.forceFullscreen) return; // ignore anchored bounds while locked to fullscreen\n this.transport.ensureIframeMounted();\n this.overlayState.controller.showAnchored(rect as DOMRectLike);\n }\n\n // Post a window message and surface errors in debug mode instead of silently swallowing them\n private postWindowMessage(w: Window, data: unknown, target: string): void {\n try {\n w.postMessage(data, target);\n } catch (err) {\n if (this.debug) {\n console.error('[WalletIframeRouter] window.postMessage failed', { error: err, data });\n }\n }\n }\n\n}\n\n// ===== Runtime type guards to safely bridge ProgressPayload → typed SSE events =====\nconst REGISTRATION_PHASES = new Set<string>(Object.values(RegistrationPhase) as string[]);\nconst LOGIN_PHASES = new Set<string>(Object.values(LoginPhase) as string[]);\nconst ACTION_PHASES = new Set<string>(Object.values(ActionPhase) as string[]);\nconst DEVICE_LINKING_PHASES = new Set<string>(Object.values(DeviceLinkingPhase) as string[]);\nconst SYNC_ACCOUNT_PHASES = new Set<string>(Object.values(SyncAccountPhase) as string[]);\nconst EMAIL_RECOVERY_PHASES = new Set<string>(Object.values(EmailRecoveryPhase) as string[]);\n\nfunction phaseOf(progress: ProgressPayload): string {\n return String((progress as { phase?: unknown })?.phase ?? '');\n}\n\nfunction isRegistrationSSEEvent(progress: ProgressPayload): progress is RegistrationSSEEvent {\n return REGISTRATION_PHASES.has(phaseOf(progress));\n}\n\nfunction isLoginSSEEvent(p: ProgressPayload): p is LoginSSEvent {\n return LOGIN_PHASES.has(phaseOf(p));\n}\n\nfunction isActionSSEEvent(p: ProgressPayload): p is ActionSSEEvent {\n return ACTION_PHASES.has(phaseOf(p));\n}\n\nexport function isDelegateSSEEvent(p: ProgressPayload): p is DelegateActionSSEEvent {\n if (!isActionSSEEvent(p)) return false;\n const data = (p as any).data;\n return !!data && typeof data === 'object' && (data as any).context === 'delegate';\n}\n\nfunction isDeviceLinkingSSEEvent(p: ProgressPayload): p is DeviceLinkingSSEEvent {\n return DEVICE_LINKING_PHASES.has(phaseOf(p));\n}\n\nfunction isSyncAccountSSEEvent(p: ProgressPayload): p is SyncAccountSSEEvent {\n return SYNC_ACCOUNT_PHASES.has(phaseOf(p));\n}\n\nfunction isEmailRecoverySSEEvent(p: ProgressPayload): p is EmailRecoverySSEEvent {\n return EMAIL_RECOVERY_PHASES.has(phaseOf(p));\n}\n\n/**\n * Strips out class functions as they cannot be sent over postMessage to iframe\n */\nfunction normalizeSignedTransactionObject(result: SignTransactionResult) {\n const arr = Array.isArray(result) ? result : [];\n const normalized = arr.map(entry => {\n if (entry?.signedTransaction) {\n const st = entry.signedTransaction as unknown;\n if (isPlainSignedTransactionLike(st)) {\n entry.signedTransaction = SignedTransaction.fromPlain({\n transaction: (st as { transaction: unknown }).transaction,\n signature: (st as { signature: unknown }).signature,\n borsh_bytes: extractBorshBytesFromPlainSignedTx(st),\n });\n }\n }\n return entry;\n });\n return normalized\n}\n\n/**\n * Strips out functions as they cannot be sent over postMessage to iframe\n */\nimport { stripFunctionsShallow } from '@/utils/validation';\n\nfunction removeFunctionsFromOptions(options?: object): object | undefined {\n return stripFunctionsShallow(options as Record<string, unknown>);\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
//#region src/core/WalletIframe/host-mode.ts
|
|
2
2
|
let IS_WALLET_IFRAME_HOST = false;
|
|
3
3
|
function __isWalletIframeHostMode() {
|
|
4
|
+
try {
|
|
5
|
+
const forced = globalThis?.__W3A_TEST_WALLET_IFRAME_HOST_MODE__;
|
|
6
|
+
if (typeof forced === "boolean") return forced;
|
|
7
|
+
} catch {}
|
|
4
8
|
return IS_WALLET_IFRAME_HOST;
|
|
5
9
|
}
|
|
6
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-mode.js","names":[],"sources":["../../../../src/core/WalletIframe/host-mode.ts"],"sourcesContent":["// Internal process-wide flag to mark wallet iframe host mode\nlet IS_WALLET_IFRAME_HOST = false;\n\nexport function __setWalletIframeHostMode(enabled: boolean = true): void {\n IS_WALLET_IFRAME_HOST = !!enabled;\n}\n\nexport function __isWalletIframeHostMode(): boolean {\n return
|
|
1
|
+
{"version":3,"file":"host-mode.js","names":[],"sources":["../../../../src/core/WalletIframe/host-mode.ts"],"sourcesContent":["// Internal process-wide flag to mark wallet iframe host mode\nlet IS_WALLET_IFRAME_HOST = false;\n\nexport function __setWalletIframeHostMode(enabled: boolean = true): void {\n IS_WALLET_IFRAME_HOST = !!enabled;\n}\n\nexport function __isWalletIframeHostMode(): boolean {\n // Test-only escape hatch: allow Playwright/unit tests to force host-mode behavior\n // without importing internal host bootstrap modules (which may be tree-shaken from dist/esm).\n try {\n const forced = (globalThis as any)?.__W3A_TEST_WALLET_IFRAME_HOST_MODE__;\n if (typeof forced === 'boolean') return forced;\n } catch { }\n return IS_WALLET_IFRAME_HOST;\n}\n"],"mappings":";AACA,IAAI,wBAAwB;AAM5B,SAAgB,2BAAoC;AAGlD,KAAI;EACF,MAAM,SAAU,YAAoB;AACpC,MAAI,OAAO,WAAW,UAAW,QAAO;SAClC;AACR,QAAO"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isObject, isString } from "../../../../utils/validation.js";
|
|
2
2
|
import { EXPORT_VIEWER_BUNDLE, IFRAME_EXPORT_BOOTSTRAP_MODULE, W3A_EXPORT_VIEWER_IFRAME_ID } from "../tags.js";
|
|
3
3
|
import { LitElementWithProps } from "../LitElementWithProps.js";
|
|
4
4
|
import { dispatchLitCancel, dispatchLitConfirm, dispatchLitCopy } from "../lit-events.js";
|
|
@@ -8,7 +8,6 @@ import { html } from "lit";
|
|
|
8
8
|
import { createRef, ref } from "lit/directives/ref.js";
|
|
9
9
|
|
|
10
10
|
//#region src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.ts
|
|
11
|
-
init_validation();
|
|
12
11
|
var IframeExportHost = class extends LitElementWithProps {
|
|
13
12
|
static properties = {
|
|
14
13
|
theme: { type: String },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iframe-host.js","names":["type"],"sources":["../../../../../../src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.ts"],"sourcesContent":["// Iframe host for the Export Private Key viewer (drawer or modal variant)\nimport { html, type PropertyValues } from 'lit';\nimport { ref, createRef, Ref } from 'lit/directives/ref.js';\nimport { LitElementWithProps } from '../LitElementWithProps';\nimport { IFRAME_EXPORT_BOOTSTRAP_MODULE, EXPORT_VIEWER_BUNDLE } from '../tags';\nimport { resolveEmbeddedBase } from '../asset-base';\nimport { OFFLINE_EXPORT_FALLBACK } from '../../../OfflineExport/messages';\nimport type { ExportViewerVariant, ExportViewerTheme } from './viewer';\nimport { isObject, isString, isBoolean } from '../../../WalletIframe/validation';\nimport { dispatchLitCancel, dispatchLitConfirm, dispatchLitCopy } from '../lit-events';\nimport { ensureExternalStyles } from '../css/css-loader';\n\ntype MessageType =\n | 'READY'\n | 'ETX_DEFINED'\n | 'SET_INIT'\n | 'SET_EXPORT_DATA'\n | 'SET_LOADING'\n | 'SET_ERROR'\n | 'SET_PRIVATE_KEY'\n | 'CONFIRM'\n | 'CANCEL'\n | 'COPY'\n | 'IFRAME_ERROR'\n | 'IFRAME_UNHANDLED_REJECTION';\n\ntype MessagePayloads = {\n READY: undefined;\n ETX_DEFINED: undefined;\n SET_INIT: { targetOrigin: string };\n SET_EXPORT_DATA: {\n theme?: 'dark' | 'light';\n variant?: 'drawer' | 'modal';\n accountId: string;\n publicKey: string;\n };\n SET_LOADING: boolean;\n SET_ERROR: string;\n SET_PRIVATE_KEY: { privateKey: string };\n CONFIRM: undefined;\n CANCEL: undefined;\n COPY: { type: 'publicKey' | 'privateKey'; value: string };\n IFRAME_ERROR: string;\n IFRAME_UNHANDLED_REJECTION: string;\n};\n\nexport class IframeExportHost extends LitElementWithProps {\n static properties = {\n theme: { type: String },\n variant: { type: String },\n accountId: { type: String, attribute: 'account-id' },\n publicKey: { type: String, attribute: 'public-key' },\n privateKey: { type: String, attribute: 'private-key' },\n loading: { type: Boolean },\n errorMessage: { type: String },\n } as const;\n\n declare theme: 'dark' | 'light';\n declare variant: 'drawer' | 'modal';\n declare accountId: string;\n declare publicKey: string;\n declare privateKey?: string;\n declare loading: boolean;\n declare errorMessage?: string;\n\n private iframeRef: Ref<HTMLIFrameElement> = createRef();\n private messageHandler?: (event: MessageEvent) => void | Promise<void>;\n private iframeInitialized = false;\n private _bootstrapTimer: number | null = null;\n // Styles gating to avoid FOUC: wait for export-iframe.css before first render\n private _stylesReady = false;\n private _stylePromises: Promise<void>[] = [];\n private _stylesAwaiting: Promise<void> | null = null;\n\n constructor() {\n super();\n this.theme = 'dark';\n this.variant = 'drawer';\n this.accountId = '';\n this.publicKey = '';\n this.privateKey = undefined;\n this.loading = false;\n }\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n const root = super.createRenderRoot();\n const p = ensureExternalStyles(root as ShadowRoot | DocumentFragment | HTMLElement, 'export-iframe.css', 'data-w3a-export-iframe-css');\n this._stylePromises.push(p);\n p.catch(() => {});\n return root;\n }\n\n protected getComponentPrefix(): string { return 'export-iframe'; }\n\n // Avoid FOUC: block first paint until external styles are applied\n protected shouldUpdate(_changed: Map<string | number | symbol, unknown>): boolean {\n if (this._stylesReady) return true;\n if (!this._stylesAwaiting) {\n const settle = Promise.all(this._stylePromises)\n .then(() => new Promise<void>((r) => requestAnimationFrame(() => requestAnimationFrame(() => r()))));\n this._stylesAwaiting = settle.then(() => { this._stylesReady = true; this.requestUpdate(); });\n }\n return false;\n }\n\n updated(changed: PropertyValues) {\n super.updated(changed);\n // Initialize iframe once; contentWindow can exist for about:blank, so use a flag\n if (!this.iframeInitialized) {\n this.initializeIframe();\n this.iframeInitialized = true;\n return;\n }\n // Push data on update\n this.postToIframe('SET_EXPORT_DATA', {\n theme: this.theme,\n variant: this.variant,\n accountId: this.accountId,\n publicKey: this.publicKey,\n });\n if (changed.has('loading')) {\n this.postToIframe('SET_LOADING', !!this.loading);\n }\n if (changed.has('errorMessage') && typeof this.errorMessage === 'string') {\n this.postToIframe('SET_ERROR', this.errorMessage);\n }\n if (changed.has('privateKey') && this.privateKey) {\n this.postToIframe('SET_PRIVATE_KEY', { privateKey: this.privateKey });\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.messageHandler) {\n window.removeEventListener('message', this.messageHandler);\n this.messageHandler = undefined;\n }\n }\n\n private generateIframeHtml(): string {\n const base = resolveEmbeddedBase();\n const isAbsoluteBase = /^https?:/i.test(base);\n if (!isAbsoluteBase) {\n try {\n console.warn(\n '[W3A][IframeExportHost] Embedded SDK base is not absolute. Skipping CSS preloads. ' +\n 'Configure an absolute base so assets resolve: React → set TatchiPasskeyProvider config ' +\n '{ iframeWallet: { walletOrigin: \"https://wallet.example.com\", sdkBasePath: \"/sdk\" } }, '\n );\n } catch {}\n }\n const viewerBundle = EXPORT_VIEWER_BUNDLE;\n const bootstrap = IFRAME_EXPORT_BOOTSTRAP_MODULE;\n return `<!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\" />\n ${isAbsoluteBase ? `<link rel=\"preload\" href=\"${base}export-viewer.css\" as=\"style\" />` : ''}\n ${isAbsoluteBase ? `<link rel=\"preload\" href=\"${base}export-iframe.css\" as=\"style\" />` : ''}\n <link rel=\"stylesheet\" href=\"${base}wallet-service.css\" />\n <!-- Component palette/tokens for host elements (e.g., <w3a-drawer>) -->\n ${isAbsoluteBase ? `<link rel=\"stylesheet\" href=\"${base}w3a-components.css\" />` : ''}\n <!-- Ensure critical component styles (strict CSP: external only, no inline) -->\n ${isAbsoluteBase ? `<link rel=\"stylesheet\" href=\"${base}drawer.css\" data-w3a-drawer-css />` : ''}\n ${isAbsoluteBase ? `<link rel=\"stylesheet\" href=\"${base}export-viewer.css\" data-w3a-export-viewer-css />` : ''}\n <script type=\"module\" crossorigin=\"anonymous\" src=\"${base}${viewerBundle}\"></script>\n <script type=\"module\" crossorigin=\"anonymous\" src=\"${base}${bootstrap}\"></script>\n </head>\n <body>\n <w3a-drawer id=\"exp\" theme=\"dark\"></w3a-drawer>\n </body>\n </html>`;\n }\n\n private initializeIframe() {\n const iframeEl = this.iframeRef.value;\n if (!iframeEl) return;\n this.setupMessageHandling();\n iframeEl.srcdoc = this.generateIframeHtml();\n }\n\n private postToIframe<T extends MessageType>(type: T, payload?: MessagePayloads[T]) {\n const win = this.iframeRef.value?.contentWindow;\n if (!win) return;\n win.postMessage({ type, payload }, '*');\n }\n\n private setupMessageHandling() {\n const onMessage = async (event: MessageEvent) => {\n const data = event?.data;\n if (!isObject(data) || !isString((data as { type?: unknown }).type)) return;\n const type = (data as { type?: string }).type as MessageType;\n const payload = (data as { payload?: unknown }).payload;\n switch (type) {\n case 'READY': {\n // Mark initialized in case parent missed initial flag set\n this.iframeInitialized = true;\n // Push init and initial data\n this.postToIframe('SET_INIT', { targetOrigin: window.location.origin });\n this.postToIframe('SET_EXPORT_DATA', {\n theme: this.theme,\n variant: this.variant,\n accountId: this.accountId,\n publicKey: this.publicKey,\n });\n this.postToIframe('SET_LOADING', !!this.loading);\n if (this.errorMessage) this.postToIframe('SET_ERROR', this.errorMessage);\n if (this.privateKey) this.postToIframe('SET_PRIVATE_KEY', { privateKey: this.privateKey });\n return;\n }\n case 'IFRAME_ERROR':\n case 'IFRAME_UNHANDLED_REJECTION': {\n console.error('[IframeExportHost] iframe error:', payload);\n return;\n }\n case 'CONFIRM': {\n dispatchLitConfirm(this);\n // Close viewer and notify parent to contract overlay\n this.remove();\n window.parent?.postMessage({ type: 'WALLET_UI_CLOSED' }, '*');\n return;\n }\n case 'CANCEL': {\n dispatchLitCancel(this);\n // Child waits for transitionend before posting CANCEL, so it's safe to remove immediately\n this.remove();\n // Notify parent app (outside wallet iframe) to contract overlay\n window.parent?.postMessage({ type: 'WALLET_UI_CLOSED' }, '*');\n return;\n }\n case 'COPY': {\n if (isObject(payload)) {\n const { type, value } = payload as Partial<{ type: unknown; value: unknown }>;\n if (isString(type) && (type === 'publicKey' || type === 'privateKey') && isString(value)) {\n dispatchLitCopy(this, { type, value });\n } else {\n console.warn('[IframeExportHost] Ignoring COPY message with invalid payload', payload);\n }\n }\n return;\n }\n default:\n return;\n }\n };\n\n if (this.messageHandler) window.removeEventListener('message', this.messageHandler);\n this.messageHandler = onMessage;\n window.addEventListener('message', onMessage);\n }\n\n render() {\n return html`\n <div class=\"iframe-host\">\n <!--\n About this ExportPrivateKey iframe:\n - sandbox=\"allow-scripts allow-same-origin\":\n Allows module scripts to run while preserving the wallet origin inside\n the iframe (no opaque origin). Keeping same-origin is required so the\n document matches the parent Permissions-Policy allowlist (e.g.,\n clipboard-read/write and WebAuthn) rather than being blocked as a\n null/opaque origin.\n - allow=\"clipboard-read; clipboard-write\":\n Opts in to the clipboard features at the frame level. This must be\n used in combination with a Permissions-Policy header on the parent\n page that allows clipboard for the wallet origin.\n - srcdoc (set in initializeIframe):\n Loads wallet-service.css, component tokens (w3a-components.css),\n preloads drawer + export-viewer CSS, and imports the viewer +\n bootstrap modules; no inline scripts/styles to satisfy strict CSP.\n -->\n <iframe ${ref(this.iframeRef)}\n sandbox=\"allow-scripts allow-same-origin\"\n allow=\"clipboard-read; clipboard-write\"\n ></iframe>\n </div>\n `;\n }\n}\n\n// Strongly-typed element shape for 'w3a-export-viewer-iframe'\nexport type ExportViewerIframeElement = HTMLElement & {\n theme?: ExportViewerTheme;\n variant?: ExportViewerVariant;\n accountId?: string;\n publicKey?: string;\n privateKey?: string;\n loading?: boolean;\n errorMessage?: string;\n};\n\nimport { W3A_EXPORT_VIEWER_IFRAME_ID } from '../tags';\ncustomElements.define(W3A_EXPORT_VIEWER_IFRAME_ID, IframeExportHost);\n\nexport default IframeExportHost;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"iframe-host.js","names":["type"],"sources":["../../../../../../src/core/WebAuthnManager/LitComponents/ExportPrivateKey/iframe-host.ts"],"sourcesContent":["// Iframe host for the Export Private Key viewer (drawer or modal variant)\nimport { html, type PropertyValues } from 'lit';\nimport { ref, createRef, Ref } from 'lit/directives/ref.js';\nimport { LitElementWithProps } from '../LitElementWithProps';\nimport { IFRAME_EXPORT_BOOTSTRAP_MODULE, EXPORT_VIEWER_BUNDLE } from '../tags';\nimport { resolveEmbeddedBase } from '../asset-base';\nimport { OFFLINE_EXPORT_FALLBACK } from '../../../OfflineExport/messages';\nimport type { ExportViewerVariant, ExportViewerTheme } from './viewer';\nimport { isObject, isString, isBoolean } from '@/utils/validation';\nimport { dispatchLitCancel, dispatchLitConfirm, dispatchLitCopy } from '../lit-events';\nimport { ensureExternalStyles } from '../css/css-loader';\n\ntype MessageType =\n | 'READY'\n | 'ETX_DEFINED'\n | 'SET_INIT'\n | 'SET_EXPORT_DATA'\n | 'SET_LOADING'\n | 'SET_ERROR'\n | 'SET_PRIVATE_KEY'\n | 'CONFIRM'\n | 'CANCEL'\n | 'COPY'\n | 'IFRAME_ERROR'\n | 'IFRAME_UNHANDLED_REJECTION';\n\ntype MessagePayloads = {\n READY: undefined;\n ETX_DEFINED: undefined;\n SET_INIT: { targetOrigin: string };\n SET_EXPORT_DATA: {\n theme?: 'dark' | 'light';\n variant?: 'drawer' | 'modal';\n accountId: string;\n publicKey: string;\n };\n SET_LOADING: boolean;\n SET_ERROR: string;\n SET_PRIVATE_KEY: { privateKey: string };\n CONFIRM: undefined;\n CANCEL: undefined;\n COPY: { type: 'publicKey' | 'privateKey'; value: string };\n IFRAME_ERROR: string;\n IFRAME_UNHANDLED_REJECTION: string;\n};\n\nexport class IframeExportHost extends LitElementWithProps {\n static properties = {\n theme: { type: String },\n variant: { type: String },\n accountId: { type: String, attribute: 'account-id' },\n publicKey: { type: String, attribute: 'public-key' },\n privateKey: { type: String, attribute: 'private-key' },\n loading: { type: Boolean },\n errorMessage: { type: String },\n } as const;\n\n declare theme: 'dark' | 'light';\n declare variant: 'drawer' | 'modal';\n declare accountId: string;\n declare publicKey: string;\n declare privateKey?: string;\n declare loading: boolean;\n declare errorMessage?: string;\n\n private iframeRef: Ref<HTMLIFrameElement> = createRef();\n private messageHandler?: (event: MessageEvent) => void | Promise<void>;\n private iframeInitialized = false;\n private _bootstrapTimer: number | null = null;\n // Styles gating to avoid FOUC: wait for export-iframe.css before first render\n private _stylesReady = false;\n private _stylePromises: Promise<void>[] = [];\n private _stylesAwaiting: Promise<void> | null = null;\n\n constructor() {\n super();\n this.theme = 'dark';\n this.variant = 'drawer';\n this.accountId = '';\n this.publicKey = '';\n this.privateKey = undefined;\n this.loading = false;\n }\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n const root = super.createRenderRoot();\n const p = ensureExternalStyles(root as ShadowRoot | DocumentFragment | HTMLElement, 'export-iframe.css', 'data-w3a-export-iframe-css');\n this._stylePromises.push(p);\n p.catch(() => {});\n return root;\n }\n\n protected getComponentPrefix(): string { return 'export-iframe'; }\n\n // Avoid FOUC: block first paint until external styles are applied\n protected shouldUpdate(_changed: Map<string | number | symbol, unknown>): boolean {\n if (this._stylesReady) return true;\n if (!this._stylesAwaiting) {\n const settle = Promise.all(this._stylePromises)\n .then(() => new Promise<void>((r) => requestAnimationFrame(() => requestAnimationFrame(() => r()))));\n this._stylesAwaiting = settle.then(() => { this._stylesReady = true; this.requestUpdate(); });\n }\n return false;\n }\n\n updated(changed: PropertyValues) {\n super.updated(changed);\n // Initialize iframe once; contentWindow can exist for about:blank, so use a flag\n if (!this.iframeInitialized) {\n this.initializeIframe();\n this.iframeInitialized = true;\n return;\n }\n // Push data on update\n this.postToIframe('SET_EXPORT_DATA', {\n theme: this.theme,\n variant: this.variant,\n accountId: this.accountId,\n publicKey: this.publicKey,\n });\n if (changed.has('loading')) {\n this.postToIframe('SET_LOADING', !!this.loading);\n }\n if (changed.has('errorMessage') && typeof this.errorMessage === 'string') {\n this.postToIframe('SET_ERROR', this.errorMessage);\n }\n if (changed.has('privateKey') && this.privateKey) {\n this.postToIframe('SET_PRIVATE_KEY', { privateKey: this.privateKey });\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.messageHandler) {\n window.removeEventListener('message', this.messageHandler);\n this.messageHandler = undefined;\n }\n }\n\n private generateIframeHtml(): string {\n const base = resolveEmbeddedBase();\n const isAbsoluteBase = /^https?:/i.test(base);\n if (!isAbsoluteBase) {\n try {\n console.warn(\n '[W3A][IframeExportHost] Embedded SDK base is not absolute. Skipping CSS preloads. ' +\n 'Configure an absolute base so assets resolve: React → set TatchiPasskeyProvider config ' +\n '{ iframeWallet: { walletOrigin: \"https://wallet.example.com\", sdkBasePath: \"/sdk\" } }, '\n );\n } catch {}\n }\n const viewerBundle = EXPORT_VIEWER_BUNDLE;\n const bootstrap = IFRAME_EXPORT_BOOTSTRAP_MODULE;\n return `<!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\" />\n ${isAbsoluteBase ? `<link rel=\"preload\" href=\"${base}export-viewer.css\" as=\"style\" />` : ''}\n ${isAbsoluteBase ? `<link rel=\"preload\" href=\"${base}export-iframe.css\" as=\"style\" />` : ''}\n <link rel=\"stylesheet\" href=\"${base}wallet-service.css\" />\n <!-- Component palette/tokens for host elements (e.g., <w3a-drawer>) -->\n ${isAbsoluteBase ? `<link rel=\"stylesheet\" href=\"${base}w3a-components.css\" />` : ''}\n <!-- Ensure critical component styles (strict CSP: external only, no inline) -->\n ${isAbsoluteBase ? `<link rel=\"stylesheet\" href=\"${base}drawer.css\" data-w3a-drawer-css />` : ''}\n ${isAbsoluteBase ? `<link rel=\"stylesheet\" href=\"${base}export-viewer.css\" data-w3a-export-viewer-css />` : ''}\n <script type=\"module\" crossorigin=\"anonymous\" src=\"${base}${viewerBundle}\"></script>\n <script type=\"module\" crossorigin=\"anonymous\" src=\"${base}${bootstrap}\"></script>\n </head>\n <body>\n <w3a-drawer id=\"exp\" theme=\"dark\"></w3a-drawer>\n </body>\n </html>`;\n }\n\n private initializeIframe() {\n const iframeEl = this.iframeRef.value;\n if (!iframeEl) return;\n this.setupMessageHandling();\n iframeEl.srcdoc = this.generateIframeHtml();\n }\n\n private postToIframe<T extends MessageType>(type: T, payload?: MessagePayloads[T]) {\n const win = this.iframeRef.value?.contentWindow;\n if (!win) return;\n win.postMessage({ type, payload }, '*');\n }\n\n private setupMessageHandling() {\n const onMessage = async (event: MessageEvent) => {\n const data = event?.data;\n if (!isObject(data) || !isString((data as { type?: unknown }).type)) return;\n const type = (data as { type?: string }).type as MessageType;\n const payload = (data as { payload?: unknown }).payload;\n switch (type) {\n case 'READY': {\n // Mark initialized in case parent missed initial flag set\n this.iframeInitialized = true;\n // Push init and initial data\n this.postToIframe('SET_INIT', { targetOrigin: window.location.origin });\n this.postToIframe('SET_EXPORT_DATA', {\n theme: this.theme,\n variant: this.variant,\n accountId: this.accountId,\n publicKey: this.publicKey,\n });\n this.postToIframe('SET_LOADING', !!this.loading);\n if (this.errorMessage) this.postToIframe('SET_ERROR', this.errorMessage);\n if (this.privateKey) this.postToIframe('SET_PRIVATE_KEY', { privateKey: this.privateKey });\n return;\n }\n case 'IFRAME_ERROR':\n case 'IFRAME_UNHANDLED_REJECTION': {\n console.error('[IframeExportHost] iframe error:', payload);\n return;\n }\n case 'CONFIRM': {\n dispatchLitConfirm(this);\n // Close viewer and notify parent to contract overlay\n this.remove();\n window.parent?.postMessage({ type: 'WALLET_UI_CLOSED' }, '*');\n return;\n }\n case 'CANCEL': {\n dispatchLitCancel(this);\n // Child waits for transitionend before posting CANCEL, so it's safe to remove immediately\n this.remove();\n // Notify parent app (outside wallet iframe) to contract overlay\n window.parent?.postMessage({ type: 'WALLET_UI_CLOSED' }, '*');\n return;\n }\n case 'COPY': {\n if (isObject(payload)) {\n const { type, value } = payload as Partial<{ type: unknown; value: unknown }>;\n if (isString(type) && (type === 'publicKey' || type === 'privateKey') && isString(value)) {\n dispatchLitCopy(this, { type, value });\n } else {\n console.warn('[IframeExportHost] Ignoring COPY message with invalid payload', payload);\n }\n }\n return;\n }\n default:\n return;\n }\n };\n\n if (this.messageHandler) window.removeEventListener('message', this.messageHandler);\n this.messageHandler = onMessage;\n window.addEventListener('message', onMessage);\n }\n\n render() {\n return html`\n <div class=\"iframe-host\">\n <!--\n About this ExportPrivateKey iframe:\n - sandbox=\"allow-scripts allow-same-origin\":\n Allows module scripts to run while preserving the wallet origin inside\n the iframe (no opaque origin). Keeping same-origin is required so the\n document matches the parent Permissions-Policy allowlist (e.g.,\n clipboard-read/write and WebAuthn) rather than being blocked as a\n null/opaque origin.\n - allow=\"clipboard-read; clipboard-write\":\n Opts in to the clipboard features at the frame level. This must be\n used in combination with a Permissions-Policy header on the parent\n page that allows clipboard for the wallet origin.\n - srcdoc (set in initializeIframe):\n Loads wallet-service.css, component tokens (w3a-components.css),\n preloads drawer + export-viewer CSS, and imports the viewer +\n bootstrap modules; no inline scripts/styles to satisfy strict CSP.\n -->\n <iframe ${ref(this.iframeRef)}\n sandbox=\"allow-scripts allow-same-origin\"\n allow=\"clipboard-read; clipboard-write\"\n ></iframe>\n </div>\n `;\n }\n}\n\n// Strongly-typed element shape for 'w3a-export-viewer-iframe'\nexport type ExportViewerIframeElement = HTMLElement & {\n theme?: ExportViewerTheme;\n variant?: ExportViewerVariant;\n accountId?: string;\n publicKey?: string;\n privateKey?: string;\n loading?: boolean;\n errorMessage?: string;\n};\n\nimport { W3A_EXPORT_VIEWER_IFRAME_ID } from '../tags';\ncustomElements.define(W3A_EXPORT_VIEWER_IFRAME_ID, IframeExportHost);\n\nexport default IframeExportHost;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { fromTransactionInputsWasm
|
|
1
|
+
import { fromTransactionInputsWasm } from "../../../types/actions.js";
|
|
2
2
|
import { W3A_TX_CONFIRM_CONTENT_ID, W3A_TX_TREE_ID } from "../tags.js";
|
|
3
3
|
import { LitElementWithProps } from "../LitElementWithProps.js";
|
|
4
4
|
import { dispatchLitCancel, dispatchLitConfirm } from "../lit-events.js";
|
|
@@ -8,7 +8,6 @@ import { buildDisplayTreeFromTxPayloads } from "../TxTree/tx-tree-utils.js";
|
|
|
8
8
|
import { html } from "lit";
|
|
9
9
|
|
|
10
10
|
//#region src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.ts
|
|
11
|
-
init_actions();
|
|
12
11
|
/**
|
|
13
12
|
* Shared confirmation content surface used by both Modal and Drawer containers.
|
|
14
13
|
* - Renders summary, TxTree, and confirm/cancel actions
|
package/dist/esm/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-confirm-content.js","names":["TxTree","treeTheme: 'dark' | 'light'"],"sources":["../../../../../../src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.ts"],"sourcesContent":["import { html, type PropertyValues } from 'lit';\nimport { LitElementWithProps } from '../LitElementWithProps';\nimport { dispatchLitCancel, dispatchLitConfirm } from '../lit-events';\n\nimport type { TransactionInputWasm } from '../../../types';\nimport type { VRFChallenge } from '../../../types/vrf-worker';\nimport { fromTransactionInputsWasm } from '../../../types/actions';\nimport TxTree from '../TxTree';\nimport { buildDisplayTreeFromTxPayloads } from '../TxTree/tx-tree-utils';\nimport { ensureExternalStyles } from '../css/css-loader';\nimport { W3A_TX_TREE_ID } from '../tags';\nimport type { ThemeName } from '../confirm-ui-types';\n\n/**\n * Shared confirmation content surface used by both Modal and Drawer containers.\n * - Renders summary, TxTree, and confirm/cancel actions\n * - Emits semantic events: `lit-confirm` and `lit-cancel` (containers bridge to w3a:* events)\n * - Does not own backdrop, focus traps, or ESC handling\n */\nexport class TxConfirmContentElement extends LitElementWithProps {\n // Fail fast in dev if nested custom elements are not defined\n static requiredChildTags = [W3A_TX_TREE_ID, 'tx-tree'];\n static keepDefinitions = [TxTree];\n static properties = {\n nearAccountId: { type: String, attribute: 'near-account-id' },\n txSigningRequests: { type: Array },\n intentDigest: { type: String, attribute: 'intent-digest' },\n vrfChallenge: { type: Object },\n theme: { type: String },\n loading: { type: Boolean },\n errorMessage: { type: String },\n title: { type: String },\n confirmText: { type: String },\n cancelText: { type: String },\n // Treat internal tree node as reactive state so setting it re-renders immediately\n _treeNode: { attribute: false, state: true },\n // Optional: set tooltip width via CSS var for nested components\n tooltipWidth: { type: String, attribute: 'tooltip-width' },\n // Optional: pass explorer base URL down to TxTree\n nearExplorerUrl: { type: String, attribute: 'near-explorer-url' },\n // Forwarded flag to control TxTree's shadow wrapper (drop shadow)\n showShadow: { type: Boolean, attribute: 'show-shadow' },\n } as const;\n\n declare nearAccountId: string;\n declare txSigningRequests: TransactionInputWasm[];\n declare intentDigest?: string;\n declare vrfChallenge?: Partial<VRFChallenge>;\n declare theme: ThemeName;\n declare loading: boolean;\n declare errorMessage?: string;\n declare title: string;\n declare confirmText: string;\n declare cancelText: string;\n declare tooltipWidth?: string | number;\n declare nearExplorerUrl?: string;\n declare showShadow: boolean;\n\n private _treeNode: any | null = null;\n // Keep essential custom elements from being tree-shaken\n private _ensureTreeDefinition = TxTree;\n // Tree width now sourced from a single CSS var so host can control it.\n // Falls back to the embedded tooltip width, and then to 360px.\n private _txTreeWidth: string | number = 'var(--tooltip-width, 100%)';\n\n // No static styles: structural styles are provided by tx-confirmer.css\n\n // Styles gating to avoid first-paint before tx-tree.css is ready\n private _stylesReady = false;\n private _stylePromises: Promise<void>[] = [];\n private _stylesAwaiting: Promise<void> | null = null;\n\n constructor() {\n super();\n // Pre-ensure document-level styles to warm the cache and await link loads\n const root = (document?.documentElement || null) as unknown as HTMLElement | null;\n if (root) {\n this._stylePromises.push(\n ensureExternalStyles(root, 'tx-tree.css', 'data-w3a-tx-tree-css'),\n ensureExternalStyles(root, 'tx-confirmer.css', 'data-w3a-tx-confirmer-css'),\n ensureExternalStyles(root, 'w3a-components.css', 'data-w3a-components-css'),\n );\n }\n this.nearAccountId = '';\n this.txSigningRequests = [];\n this.theme = 'dark';\n this.loading = false;\n this.title = 'Review Transaction';\n this.confirmText = 'Confirm';\n this.cancelText = 'Cancel';\n this.showShadow = false;\n // Leave tooltipWidth undefined by default so CSS responsive var applies.\n }\n\n protected getComponentPrefix(): string { return 'tx-confirm-content'; }\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n const root = (this as unknown) as HTMLElement;\n // Ensure tx-tree.css for nested light-DOM TxTree\n this._stylePromises.push(ensureExternalStyles(root, 'tx-tree.css', 'data-w3a-tx-tree-css'));\n // Also ensure tx-confirmer.css for shared confirmer styles\n this._stylePromises.push(ensureExternalStyles(root, 'tx-confirmer.css', 'data-w3a-tx-confirmer-css'));\n return root;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n // Reflect tooltip width var for nested components\n this._applyTooltipWidthVar();\n // Build initial tree from any pre-set props (upgrade-safe)\n this._rebuildTree();\n // Prevent drawer drag initiation from content area\n this.addEventListener('pointerdown', this._stopDragStart as EventListener);\n this.addEventListener('mousedown', this._stopDragStart as EventListener);\n this.addEventListener('touchstart', this._stopDragStart as EventListener, { passive: false } as AddEventListenerOptions);\n }\n\n disconnectedCallback(): void {\n this.removeEventListener('pointerdown', this._stopDragStart as EventListener);\n this.removeEventListener('mousedown', this._stopDragStart as EventListener);\n this.removeEventListener('touchstart', this._stopDragStart as EventListener);\n // No resize listener to clean up (width is CSS-driven)\n super.disconnectedCallback();\n }\n\n protected shouldUpdate(_changed: PropertyValues): boolean {\n if (this._stylesReady) return true;\n if (!this._stylesAwaiting) {\n const p = Promise.all(this._stylePromises).then(\n () => new Promise<void>((r) => requestAnimationFrame(() => requestAnimationFrame(() => r())))\n );\n this._stylesAwaiting = p.then(() => { this._stylesReady = true; this.requestUpdate(); });\n }\n return false;\n }\n\n updated(changed: PropertyValues) {\n super.updated(changed);\n if (changed.has('txSigningRequests')) {\n this._rebuildTree();\n }\n if (changed.has('tooltipWidth')) {\n this._applyTooltipWidthVar();\n }\n }\n\n private _applyTooltipWidthVar() {\n const w = this._normalizeWidth(this.tooltipWidth);\n // Only set when a caller explicitly provides a width; otherwise\n // keep the responsive CSS default defined on :host.\n if (w) this.setCssVars({ '--tooltip-width': w });\n }\n\n private _normalizeWidth(val?: string | number): string | undefined {\n if (val === undefined || val === null) return undefined;\n if (typeof val === 'number' && Number.isFinite(val)) return `${val}px`;\n const s = String(val).trim();\n return s.length ? s : undefined;\n }\n\n private _rebuildTree() {\n try {\n const inputs = Array.isArray(this.txSigningRequests) ? this.txSigningRequests : [];\n const uiTxs = fromTransactionInputsWasm(inputs);\n this._treeNode = buildDisplayTreeFromTxPayloads(uiTxs);\n } catch (e) {\n console.warn('[TxConfirmContent] failed to build TxTree', e);\n this._treeNode = null;\n }\n // Ensure view refreshes even if this runs in firstUpdated before Lit schedules next frame\n this.requestUpdate();\n }\n\n private _stopDragStart = (e: Event) => {\n e.stopPropagation();\n };\n\n private onConfirm = () => {\n if (this.loading) return;\n // Emit semantic event for containers to bridge to canonical events\n dispatchLitConfirm(this);\n };\n\n private onCancel = () => {\n if (this.loading) return;\n dispatchLitCancel(this);\n };\n\n render() {\n return html`\n <div class=\"txc-root\">\n ${this.errorMessage ? html`<div class=\"error\">${this.errorMessage}</div>` : null}\n ${(() => {\n const treeTheme: 'dark' | 'light' = this.theme === 'dark' ? 'dark' : 'light';\n const explorerBase = this.nearExplorerUrl || 'https://testnet.nearblocks.io';\n return this._treeNode\n ? html`<div class=\"tooltip-width\">\n <w3a-tx-tree\n light-dom\n .node=${this._treeNode}\n .theme=${treeTheme}\n .width=${this._txTreeWidth}\n .nearExplorerUrl=${explorerBase}\n .showShadow=${this.showShadow}\n ></w3a-tx-tree>\n </div>`\n : html`<div class=\"muted\">No actions</div>`;\n })()}\n <div class=\"actions\">\n <button\n class=\"cancel\"\n @click=${this.onCancel}\n ?disabled=${this.loading}\n >\n ${this.cancelText}\n </button>\n <button\n class=\"confirm ${this.loading ? 'loading' : ''}\"\n @click=${this.onConfirm}\n ?disabled=${this.loading}\n >\n ${this.loading\n ? html`<span class=\"loading-indicator\" role=\"progressbar\" aria-label=\"Loading\"></span><span class=\"sr-only\">Loading</span>`\n : html`${this.confirmText}`}\n </button>\n </div>\n </div>\n `;\n }\n}\n\nimport { W3A_TX_CONFIRM_CONTENT_ID } from '../tags';\n\nif (!customElements.get(W3A_TX_CONFIRM_CONTENT_ID)) {\n customElements.define(W3A_TX_CONFIRM_CONTENT_ID, TxConfirmContentElement);\n}\n\nexport default TxConfirmContentElement;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tx-confirm-content.js","names":["TxTree","treeTheme: 'dark' | 'light'"],"sources":["../../../../../../src/core/WebAuthnManager/LitComponents/IframeTxConfirmer/tx-confirm-content.ts"],"sourcesContent":["import { html, type PropertyValues } from 'lit';\nimport { LitElementWithProps } from '../LitElementWithProps';\nimport { dispatchLitCancel, dispatchLitConfirm } from '../lit-events';\n\nimport type { TransactionInputWasm } from '../../../types';\nimport type { VRFChallenge } from '../../../types/vrf-worker';\nimport { fromTransactionInputsWasm } from '../../../types/actions';\nimport TxTree from '../TxTree';\nimport { buildDisplayTreeFromTxPayloads } from '../TxTree/tx-tree-utils';\nimport { ensureExternalStyles } from '../css/css-loader';\nimport { W3A_TX_TREE_ID } from '../tags';\nimport type { ThemeName } from '../confirm-ui-types';\n\n/**\n * Shared confirmation content surface used by both Modal and Drawer containers.\n * - Renders summary, TxTree, and confirm/cancel actions\n * - Emits semantic events: `lit-confirm` and `lit-cancel` (containers bridge to w3a:* events)\n * - Does not own backdrop, focus traps, or ESC handling\n */\nexport class TxConfirmContentElement extends LitElementWithProps {\n // Fail fast in dev if nested custom elements are not defined\n static requiredChildTags = [W3A_TX_TREE_ID, 'tx-tree'];\n static keepDefinitions = [TxTree];\n static properties = {\n nearAccountId: { type: String, attribute: 'near-account-id' },\n txSigningRequests: { type: Array },\n intentDigest: { type: String, attribute: 'intent-digest' },\n vrfChallenge: { type: Object },\n theme: { type: String },\n loading: { type: Boolean },\n errorMessage: { type: String },\n title: { type: String },\n confirmText: { type: String },\n cancelText: { type: String },\n // Treat internal tree node as reactive state so setting it re-renders immediately\n _treeNode: { attribute: false, state: true },\n // Optional: set tooltip width via CSS var for nested components\n tooltipWidth: { type: String, attribute: 'tooltip-width' },\n // Optional: pass explorer base URL down to TxTree\n nearExplorerUrl: { type: String, attribute: 'near-explorer-url' },\n // Forwarded flag to control TxTree's shadow wrapper (drop shadow)\n showShadow: { type: Boolean, attribute: 'show-shadow' },\n } as const;\n\n declare nearAccountId: string;\n declare txSigningRequests: TransactionInputWasm[];\n declare intentDigest?: string;\n declare vrfChallenge?: Partial<VRFChallenge>;\n declare theme: ThemeName;\n declare loading: boolean;\n declare errorMessage?: string;\n declare title: string;\n declare confirmText: string;\n declare cancelText: string;\n declare tooltipWidth?: string | number;\n declare nearExplorerUrl?: string;\n declare showShadow: boolean;\n\n private _treeNode: any | null = null;\n // Keep essential custom elements from being tree-shaken\n private _ensureTreeDefinition = TxTree;\n // Tree width now sourced from a single CSS var so host can control it.\n // Falls back to the embedded tooltip width, and then to 360px.\n private _txTreeWidth: string | number = 'var(--tooltip-width, 100%)';\n\n // No static styles: structural styles are provided by tx-confirmer.css\n\n // Styles gating to avoid first-paint before tx-tree.css is ready\n private _stylesReady = false;\n private _stylePromises: Promise<void>[] = [];\n private _stylesAwaiting: Promise<void> | null = null;\n\n constructor() {\n super();\n // Pre-ensure document-level styles to warm the cache and await link loads\n const root = (document?.documentElement || null) as unknown as HTMLElement | null;\n if (root) {\n this._stylePromises.push(\n ensureExternalStyles(root, 'tx-tree.css', 'data-w3a-tx-tree-css'),\n ensureExternalStyles(root, 'tx-confirmer.css', 'data-w3a-tx-confirmer-css'),\n ensureExternalStyles(root, 'w3a-components.css', 'data-w3a-components-css'),\n );\n }\n this.nearAccountId = '';\n this.txSigningRequests = [];\n this.theme = 'dark';\n this.loading = false;\n this.title = 'Review Transaction';\n this.confirmText = 'Confirm';\n this.cancelText = 'Cancel';\n this.showShadow = false;\n // Leave tooltipWidth undefined by default so CSS responsive var applies.\n }\n\n protected getComponentPrefix(): string { return 'tx-confirm-content'; }\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n const root = (this as unknown) as HTMLElement;\n // Ensure tx-tree.css for nested light-DOM TxTree\n this._stylePromises.push(ensureExternalStyles(root, 'tx-tree.css', 'data-w3a-tx-tree-css'));\n // Also ensure tx-confirmer.css for shared confirmer styles\n this._stylePromises.push(ensureExternalStyles(root, 'tx-confirmer.css', 'data-w3a-tx-confirmer-css'));\n return root;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n // Reflect tooltip width var for nested components\n this._applyTooltipWidthVar();\n // Build initial tree from any pre-set props (upgrade-safe)\n this._rebuildTree();\n // Prevent drawer drag initiation from content area\n this.addEventListener('pointerdown', this._stopDragStart as EventListener);\n this.addEventListener('mousedown', this._stopDragStart as EventListener);\n this.addEventListener('touchstart', this._stopDragStart as EventListener, { passive: false } as AddEventListenerOptions);\n }\n\n disconnectedCallback(): void {\n this.removeEventListener('pointerdown', this._stopDragStart as EventListener);\n this.removeEventListener('mousedown', this._stopDragStart as EventListener);\n this.removeEventListener('touchstart', this._stopDragStart as EventListener);\n // No resize listener to clean up (width is CSS-driven)\n super.disconnectedCallback();\n }\n\n protected shouldUpdate(_changed: PropertyValues): boolean {\n if (this._stylesReady) return true;\n if (!this._stylesAwaiting) {\n const p = Promise.all(this._stylePromises).then(\n () => new Promise<void>((r) => requestAnimationFrame(() => requestAnimationFrame(() => r())))\n );\n this._stylesAwaiting = p.then(() => { this._stylesReady = true; this.requestUpdate(); });\n }\n return false;\n }\n\n updated(changed: PropertyValues) {\n super.updated(changed);\n if (changed.has('txSigningRequests')) {\n this._rebuildTree();\n }\n if (changed.has('tooltipWidth')) {\n this._applyTooltipWidthVar();\n }\n }\n\n private _applyTooltipWidthVar() {\n const w = this._normalizeWidth(this.tooltipWidth);\n // Only set when a caller explicitly provides a width; otherwise\n // keep the responsive CSS default defined on :host.\n if (w) this.setCssVars({ '--tooltip-width': w });\n }\n\n private _normalizeWidth(val?: string | number): string | undefined {\n if (val === undefined || val === null) return undefined;\n if (typeof val === 'number' && Number.isFinite(val)) return `${val}px`;\n const s = String(val).trim();\n return s.length ? s : undefined;\n }\n\n private _rebuildTree() {\n try {\n const inputs = Array.isArray(this.txSigningRequests) ? this.txSigningRequests : [];\n const uiTxs = fromTransactionInputsWasm(inputs);\n this._treeNode = buildDisplayTreeFromTxPayloads(uiTxs);\n } catch (e) {\n console.warn('[TxConfirmContent] failed to build TxTree', e);\n this._treeNode = null;\n }\n // Ensure view refreshes even if this runs in firstUpdated before Lit schedules next frame\n this.requestUpdate();\n }\n\n private _stopDragStart = (e: Event) => {\n e.stopPropagation();\n };\n\n private onConfirm = () => {\n if (this.loading) return;\n // Emit semantic event for containers to bridge to canonical events\n dispatchLitConfirm(this);\n };\n\n private onCancel = () => {\n if (this.loading) return;\n dispatchLitCancel(this);\n };\n\n render() {\n return html`\n <div class=\"txc-root\">\n ${this.errorMessage ? html`<div class=\"error\">${this.errorMessage}</div>` : null}\n ${(() => {\n const treeTheme: 'dark' | 'light' = this.theme === 'dark' ? 'dark' : 'light';\n const explorerBase = this.nearExplorerUrl || 'https://testnet.nearblocks.io';\n return this._treeNode\n ? html`<div class=\"tooltip-width\">\n <w3a-tx-tree\n light-dom\n .node=${this._treeNode}\n .theme=${treeTheme}\n .width=${this._txTreeWidth}\n .nearExplorerUrl=${explorerBase}\n .showShadow=${this.showShadow}\n ></w3a-tx-tree>\n </div>`\n : html`<div class=\"muted\">No actions</div>`;\n })()}\n <div class=\"actions\">\n <button\n class=\"cancel\"\n @click=${this.onCancel}\n ?disabled=${this.loading}\n >\n ${this.cancelText}\n </button>\n <button\n class=\"confirm ${this.loading ? 'loading' : ''}\"\n @click=${this.onConfirm}\n ?disabled=${this.loading}\n >\n ${this.loading\n ? html`<span class=\"loading-indicator\" role=\"progressbar\" aria-label=\"Loading\"></span><span class=\"sr-only\">Loading</span>`\n : html`${this.confirmText}`}\n </button>\n </div>\n </div>\n `;\n }\n}\n\nimport { W3A_TX_CONFIRM_CONTENT_ID } from '../tags';\n\nif (!customElements.get(W3A_TX_CONFIRM_CONTENT_ID)) {\n customElements.define(W3A_TX_CONFIRM_CONTENT_ID, TxConfirmContentElement);\n}\n\nexport default TxConfirmContentElement;\n"],"mappings":"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"}
|