@privy-io/react-auth 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/cjs/actions/importWallet.js +1 -1
  2. package/dist/cjs/client.js +1 -1
  3. package/dist/cjs/components/LoginModal.js +1 -1
  4. package/dist/cjs/config.js +1 -1
  5. package/dist/cjs/connectors/embeddedProvider.js +1 -1
  6. package/dist/cjs/connectors/index.js +1 -1
  7. package/dist/cjs/connectors/solana/toSolanaWalletConnectors.js +1 -1
  8. package/dist/cjs/constants.js +1 -1
  9. package/dist/cjs/embedded-wallets/EmbeddedWalletIframe.js +1 -1
  10. package/dist/cjs/embedded-wallets/eventCallbacksQueue.js +1 -1
  11. package/dist/cjs/embedded-wallets/solana/provider.js +1 -1
  12. package/dist/cjs/hooks/internal-context.js +1 -1
  13. package/dist/cjs/hooks/privy-provider.js +1 -1
  14. package/dist/cjs/hooks/useEmbeddedWalletCreate.js +1 -1
  15. package/dist/cjs/hooks/useImportSolanaWallet.js +1 -1
  16. package/dist/cjs/hooks/useImportWallet.js +1 -1
  17. package/dist/cjs/hooks/useUser.js +1 -0
  18. package/dist/cjs/index.js +1 -1
  19. package/dist/cjs/lib/abstract-smart-wallets.js +1 -1
  20. package/dist/cjs/lib/funding/index.js +1 -1
  21. package/dist/cjs/lib/funding/moonpay/index.js +1 -1
  22. package/dist/cjs/lib/funding/moonpay/triggerMoonpayFlow.js +1 -1
  23. package/dist/cjs/lib/funding/prepareFundingMethods.js +1 -1
  24. package/dist/cjs/lib/funding/prepareFundingModalData.js +1 -1
  25. package/dist/cjs/paths.js +1 -1
  26. package/dist/cjs/privy-provider-BJZXBWyw.js +3 -0
  27. package/dist/cjs/screens/EmbeddedWalletPasswordUpdateScreen.js +1 -1
  28. package/dist/cjs/screens/Funding/FundingMethodSelectionScreen.js +1 -1
  29. package/dist/cjs/screens/LandingScreen/ConnectOrCreateScreen.js +1 -1
  30. package/dist/cjs/screens/LandingScreen/CustomLandingScreenView.js +1 -1
  31. package/dist/cjs/screens/LandingScreen/LandingScreen.js +1 -1
  32. package/dist/cjs/screens/LandingScreen/LandingScreenView.js +1 -1
  33. package/dist/cjs/screens/LandingScreen/PasskeyLink.js +1 -1
  34. package/dist/cjs/screens/Recovery/SetAutomaticRecoveryScreen.js +1 -1
  35. package/dist/cjs/session.js +1 -1
  36. package/dist/dts/farcaster.d.mts +1 -1
  37. package/dist/dts/farcaster.d.ts +1 -1
  38. package/dist/dts/index.d.mts +28 -6
  39. package/dist/dts/index.d.ts +28 -6
  40. package/dist/dts/smart-wallets.d.mts +1 -1
  41. package/dist/dts/smart-wallets.d.ts +1 -1
  42. package/dist/dts/solana.d.mts +4 -4
  43. package/dist/dts/solana.d.ts +4 -4
  44. package/dist/dts/{types-CyPM8Lj_.d.mts → types-DQ7QKE2m.d.mts} +9 -0
  45. package/dist/dts/{types-CyPM8Lj_.d.ts → types-DQ7QKE2m.d.ts} +9 -0
  46. package/dist/dts/ui.d.mts +1 -1
  47. package/dist/dts/ui.d.ts +1 -1
  48. package/dist/dts/{useSolanaWallets-lHWYp_2Q.d.mts → useSolanaWallets-C61-2PbZ.d.mts} +1 -1
  49. package/dist/dts/{useSolanaWallets-lHWYp_2Q.d.ts → useSolanaWallets-C61-2PbZ.d.ts} +1 -1
  50. package/dist/esm/actions/importWallet.mjs +1 -1
  51. package/dist/esm/client.mjs +1 -1
  52. package/dist/esm/components/LoginModal.mjs +1 -1
  53. package/dist/esm/config.mjs +1 -1
  54. package/dist/esm/connectors/embeddedProvider.mjs +1 -1
  55. package/dist/esm/connectors/index.mjs +1 -1
  56. package/dist/esm/connectors/solana/toSolanaWalletConnectors.mjs +1 -1
  57. package/dist/esm/constants.mjs +1 -1
  58. package/dist/esm/embedded-wallets/EmbeddedWalletIframe.mjs +2 -2
  59. package/dist/esm/embedded-wallets/eventCallbacksQueue.mjs +1 -1
  60. package/dist/esm/embedded-wallets/solana/provider.mjs +1 -1
  61. package/dist/esm/hooks/internal-context.mjs +1 -1
  62. package/dist/esm/hooks/privy-provider.mjs +1 -1
  63. package/dist/esm/hooks/useEmbeddedWalletCreate.mjs +1 -1
  64. package/dist/esm/hooks/useImportSolanaWallet.mjs +1 -1
  65. package/dist/esm/hooks/useImportWallet.mjs +1 -1
  66. package/dist/esm/hooks/useUser.mjs +1 -0
  67. package/dist/esm/index.mjs +1 -1
  68. package/dist/esm/lib/abstract-smart-wallets.mjs +1 -1
  69. package/dist/esm/lib/funding/index.mjs +1 -1
  70. package/dist/esm/lib/funding/moonpay/index.mjs +1 -1
  71. package/dist/esm/lib/funding/moonpay/triggerMoonpayFlow.mjs +1 -1
  72. package/dist/esm/lib/funding/prepareFundingMethods.mjs +1 -1
  73. package/dist/esm/lib/funding/prepareFundingModalData.mjs +1 -1
  74. package/dist/esm/paths.mjs +1 -1
  75. package/dist/esm/privy-provider-SxHxPcTS.mjs +3 -0
  76. package/dist/esm/screens/EmbeddedWalletPasswordUpdateScreen.mjs +1 -1
  77. package/dist/esm/screens/Funding/FundingMethodSelectionScreen.mjs +1 -1
  78. package/dist/esm/screens/LandingScreen/ConnectOrCreateScreen.mjs +1 -1
  79. package/dist/esm/screens/LandingScreen/CustomLandingScreenView.mjs +1 -1
  80. package/dist/esm/screens/LandingScreen/LandingScreen.mjs +1 -1
  81. package/dist/esm/screens/LandingScreen/LandingScreenView.mjs +1 -1
  82. package/dist/esm/screens/LandingScreen/PasskeyLink.mjs +1 -1
  83. package/dist/esm/screens/Recovery/SetAutomaticRecoveryScreen.mjs +1 -1
  84. package/dist/esm/session.mjs +1 -1
  85. package/package.json +3 -3
  86. package/dist/cjs/lib/funding/coinbase/isSupportedChainIdForCoinbaseOnramp.js +0 -1
  87. package/dist/cjs/privy-provider-CQFl2tPf.js +0 -3
  88. package/dist/esm/lib/funding/coinbase/isSupportedChainIdForCoinbaseOnramp.mjs +0 -1
  89. package/dist/esm/privy-provider-DOccla45.mjs +0 -3
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/EnvelopeIcon"),i=require("@heroicons/react/24/outline/PhoneIcon"),t=require("@heroicons/react/24/outline/UserCircleIcon"),s=require("react"),o=require("styled-components"),n=require("@privy-io/js-sdk-core"),a=require("../../components/ModalFooter.js"),l=require("../../components/ModalHeader.js"),c=require("../../configuration/context.js"),u=require("../../hooks/internal-context.js"),p=require("../../hooks/modal-context.js"),j=require("../../lib/toDisplayFromAccountType.js"),h=require("../../recent-login/context.js"),d=require("../../svg/email-or-phone.js"),g=require("./AppLogoHeader.js"),q=require("./EmailButton.js"),m=require("./EmptyWalletView.js"),y=require("./FarcasterButton.js"),f=require("./PasskeyLink.js"),w=require("./SmsButton.js"),v=require("./SocialButton.js"),b=require("./TelegramButton.js"),x=require("./WalletButtonList.js"),k=require("./WalletOverflowButton.js"),C=require("./Web2OverflowButton.js"),B=require("./styles.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../svg/protected-by-privy.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("../../hooks/events-context.js"),require("../../storage.js"),require("../../components/AppLogo.js"),require("../../components/ConnectEmailForm.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../hooks/privy-context.js"),require("../../components/Button.js"),require("../../components/Loader.js"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/forms/EmailInputForm.js"),require("../../components/ui/typography/ErrorMessage.js"),require("../../svg/farcaster.js"),require("../../components/ConnectPhoneForm.js"),require("../../components/PhoneCountryDropdown.js"),require("../../svg/apple.js"),require("../../svg/discord.js"),require("../../svg/github.js"),require("../../svg/google.js"),require("../../svg/instagram.js"),require("../../svg/linkedin.js"),require("../../svg/spotify.js"),require("../../svg/tiktok.js"),require("../../svg/twitter.js"),require("../../svg/telegram.js"),require("./WalletButton.js"),require("react-device-detect"),require("../../components/external-wallets/InjectedWalletIcon.js"),require("@heroicons/react/24/outline/WalletIcon"),require("../../lib/external-wallets/displayHelpers.js"),require("../../svg/brave-browser-icon.js"),require("../../svg/bybit.js"),require("../../svg/coinbase-wallet.js"),require("../../svg/cryptocom.js"),require("../../svg/metamask.js"),require("../../svg/phantom.js"),require("../../svg/rabby.js"),require("../../svg/rainbow.js"),require("../../svg/safe.js"),require("../../svg/uniswap.js"),require("../../svg/universal-profile.js"),require("../../svg/wallet-connect.js"),require("../../svg/zerion.js"),require("../../lib/isEmbeddedWebview.js"),require("@heroicons/react/24/outline/ChevronRightIcon");var A=/*#__PURE__*/T(r),M=/*#__PURE__*/T(i),S=/*#__PURE__*/T(t);let L=/*#__PURE__*/o.styled(g.AppLogoHeader).withConfig({displayName:"StyledAppLogoHeader",componentId:"sc-4938a02-0"})(["margin-bottom:16px;"]),E=({priority:e,email:r,sms:i,social:t})=>"web2-first"===e?"Other socials":r&&i&&t.length>0||r&&t.length>0?"Log in with email or socials":i&&t.length>0?"Log in with sms or socials":r&&i?"Continue with email or sms":r?"Continue with email":i?"Continue with sms":"Log in with a social account",W=({priority:r,email:i,sms:t,social:s})=>"web2-first"===r||s.length>0?/*#__PURE__*/e.jsx(S.default,{}):i&&t?/*#__PURE__*/e.jsx(d.EmailOrPhone,{}):i?/*#__PURE__*/e.jsx(A.default,{}):t?/*#__PURE__*/e.jsx(M.default,{}):null,I=({priority:e})=>"web2-first"===e?"Continue with a wallet":"Other wallets",F=({mostRecentlyUsedAccountType:e,smsAvailable:r,emailAvailable:i,prefilledType:t})=>i&&("email"===e&&"phone"!==t||"email"===t)||!r||"phone"!==e&&"phone"!==t?"email":"sms";exports.LandingScreenView=({connectOnly:r})=>{let{closePrivyModal:i,connectors:t}=u.usePrivyInternal(),{data:o,onUserCloseViaDialogOrKeybindRef:d}=p.usePrivyModal(),g=c.useAppConfig(),{accountType:T,walletClientType:A,chainType:M}=h.useRecentlyUsedLogin(),S=T?j.toDisplayFromAccountType(T):null,P=o?.login,{email:O,sms:H,google:V,twitter:R,discord:U,github:D,spotify:z,instagram:G,tiktok:K,linkedin:N,apple:Q,wallet:X,farcaster:J,telegram:Y}=s.useMemo((()=>P?.loginMethods?n.toObjectKeys(P.loginMethods,!0):null),[P])??g.loginMethods,{passkey:Z}=g.loginMethods,$=[O&&"email",H&&"sms",V&&"google",R&&"twitter",U&&"discord",D&&"github",z&&"spotify",G&&"instagram",K&&"tiktok",N&&"linkedin",Q&&"apple",J&&"farcaster",Y&&"telegram"].filter((e=>!!e)),_=$.length>0,ee=s.useMemo((()=>X&&!_?"web3-first":X&&g?.appearance.loginGroupPriority||"web2-first"),[X,_,g?.appearance.loginGroupPriority]),re=g?.appearance.hideDirectWeb2Inputs,[ie,te]=s.useState("default"),[se,oe]=s.useState(F({mostRecentlyUsedAccountType:T,smsAvailable:H,emailAvailable:O,prefilledType:P?.prefill?.type}));s.useEffect((()=>{oe(F({mostRecentlyUsedAccountType:T,smsAvailable:H,emailAvailable:O,prefilledType:P?.prefill?.type}))}),[O,H,T]);let ne=()=>{i({shouldCallAuthOnSuccess:!0}),setTimeout((()=>{te("default")}),150)};d.current=ne;let ae=[];A&&X?ae.push(A):S?.loginMethod&&$.includes(S.loginMethod)&&ae.push(S.loginMethod);let le=i=>"email"===i?/*#__PURE__*/e.jsx(q.EmailButton,{isEditable:"email"===se,setIsEditable:()=>{oe("email")},defaultValue:"email"===P?.prefill?.type?P.prefill.value:void 0},i):"sms"===i?/*#__PURE__*/e.jsx(w.SmsButton,{isEditable:"sms"===se,setIsEditable:()=>{oe("sms")},defaultValue:"phone"===P?.prefill?.type?P.prefill.value:void 0},i):"apple"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"apple"},i):"discord"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"discord"},i):"farcaster"===i?/*#__PURE__*/e.jsx(y.FarcasterButton,{},i):"github"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"github"},i):"google"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"google"},i):"linkedin"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"linkedin"},i):"tiktok"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"tiktok"},i):"spotify"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"spotify"},i):"instagram"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"instagram"},i):"twitter"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"twitter"},i):"telegram"===i?/*#__PURE__*/e.jsx(b.TelegramButton,{},i):x.toWalletButtons({walletList:g.appearance.walletList,walletChainType:g.appearance.walletChainType,connectors:t,connectOnly:r,ignore:[],walletConnectEnabled:g.externalWallets.walletConnect.enabled,forceWallet:{wallet:i,chainType:M??"ethereum"}}),ce=x.toWalletButtons({walletList:g.appearance.walletList.filter((e=>e!==A)),walletChainType:g.appearance.walletChainType,connectors:t,connectOnly:r,ignore:[...g.appearance.walletList,A],walletConnectEnabled:g.externalWallets.walletConnect.enabled}),ue=$.filter((e=>e!==S?.loginMethod)).flatMap(le),pe=ae.flatMap(le);"web3-first"===ee&&"default"===ie?ce.unshift(...pe):"web2-first"===ee&&ue.unshift(...pe);let je=$.filter((e=>"email"!==e&&"sms"!==e)),he=E({priority:ee,email:O,sms:H,social:je}),de=W({priority:ee,email:O,sms:H,social:je}),ge=/*#__PURE__*/e.jsx(k.WalletOverflowButton,{text:I({priority:ee}),onClick:()=>te("web3-overflow")}),qe=/*#__PURE__*/e.jsx(C.Web2OverflowButton,{text:he,icon:de,onClick:()=>te("web2-overflow")}),me=re?0:1,ye=X&&ce.length>0,fe=0===ue.length&&X&&0===ce.length,we=5-(ye?1:0),ve=ce.length>0?ce:/*#__PURE__*/e.jsx(m.EmptyWalletView,{chainType:g.appearance.walletChainType,withPadding:!0});/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{title:g.appearance.landingHeader,onClose:ne,backFn:"default"===ie?void 0:()=>{te("default")}}),"default"===ie&&/*#__PURE__*/e.jsx(L,{}),"default"===ie&&("string"==typeof g.appearance.loginMessage?/*#__PURE__*/e.jsx(B.Subtitle,{children:g.appearance.loginMessage}):g.appearance.loginMessage),/*#__PURE__*/e.jsx(B.AlignBottom,{style:{overflow:"hidden",padding:2},children:/*#__PURE__*/e.jsxs(B.LoginMethodContainer,{children:["default"===ie&&"web2-first"===ee&&/*#__PURE__*/e.jsxs(e.Fragment,{children:[ue.length>we?ue.slice(0,we-1):ue,ue.length>we&&qe,ye&&ge,fe&&/*#__PURE__*/e.jsx(m.EmptyWalletView,{chainType:g.appearance.walletChainType})]}),"default"===ie&&"web3-first"===ee&&/*#__PURE__*/e.jsxs(e.Fragment,{children:[X&&/*#__PURE__*/e.jsxs(e.Fragment,{children:[ce.length>we?ce.slice(0,we-1):ce,ce.length>we&&ge]}),ue.length>me&&qe,ue.length===me&&ue[0],fe&&/*#__PURE__*/e.jsx(m.EmptyWalletView,{chainType:g.appearance.walletChainType})]}),"web2-overflow"===ie&&/*#__PURE__*/e.jsx(e.Fragment,{children:"web3-first"===ee?ue:ue.slice(3)}),"web3-overflow"===ie?ve:[],Z&&"default"===ie&&/*#__PURE__*/e.jsx(f.PasskeyLink,{})]})}),g&&/*#__PURE__*/e.jsx(a.TermsAndConditions,{app:g}),/*#__PURE__*/e.jsx(a.BlobbyFooter,{})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/EnvelopeIcon"),i=require("@heroicons/react/24/outline/PhoneIcon"),t=require("@heroicons/react/24/outline/UserCircleIcon"),s=require("react"),o=require("styled-components"),n=require("@privy-io/js-sdk-core"),a=require("../../components/ModalFooter.js"),l=require("../../components/ModalHeader.js"),c=require("../../configuration/context.js"),u=require("../../hooks/internal-context.js"),p=require("../../hooks/modal-context.js"),j=require("../../lib/toDisplayFromAccountType.js"),h=require("../../recent-login/context.js"),d=require("../../svg/email-or-phone.js"),g=require("./AppLogoHeader.js"),q=require("./EmailButton.js"),m=require("./EmptyWalletView.js"),y=require("./FarcasterButton.js"),f=require("./PasskeyLink.js"),w=require("./SmsButton.js"),v=require("./SocialButton.js"),b=require("./TelegramButton.js"),x=require("./WalletButtonList.js"),k=require("./WalletOverflowButton.js"),C=require("./Web2OverflowButton.js"),B=require("./styles.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../svg/protected-by-privy.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("../index.js"),require("../../hooks/events-context.js"),require("../../storage.js"),require("../../components/AppLogo.js"),require("../../components/ConnectEmailForm.js"),require("../../errors.js"),require("ofetch"),require("../../hooks/captcha-context.js"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../hooks/privy-context.js"),require("../../components/Button.js"),require("../../components/Loader.js"),require("../../components/ui/chips/Chip.js"),require("../../components/ui/animation/LoadingSkeleton.js"),require("../../components/ui/forms/EmailInputForm.js"),require("../../components/ui/typography/ErrorMessage.js"),require("../../svg/farcaster.js"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("../../components/ConnectPhoneForm.js"),require("../../components/PhoneCountryDropdown.js"),require("../../svg/apple.js"),require("../../svg/discord.js"),require("../../svg/github.js"),require("../../svg/google.js"),require("../../svg/instagram.js"),require("../../svg/linkedin.js"),require("../../svg/spotify.js"),require("../../svg/tiktok.js"),require("../../svg/twitter.js"),require("../../svg/telegram.js"),require("./WalletButton.js"),require("react-device-detect"),require("../../components/external-wallets/InjectedWalletIcon.js"),require("@heroicons/react/24/outline/WalletIcon"),require("../../lib/external-wallets/displayHelpers.js"),require("../../svg/brave-browser-icon.js"),require("../../svg/bybit.js"),require("../../svg/coinbase-wallet.js"),require("../../svg/cryptocom.js"),require("../../svg/metamask.js"),require("../../svg/phantom.js"),require("../../svg/rabby.js"),require("../../svg/rainbow.js"),require("../../svg/safe.js"),require("../../svg/uniswap.js"),require("../../svg/universal-profile.js"),require("../../svg/wallet-connect.js"),require("../../svg/zerion.js"),require("../../lib/isEmbeddedWebview.js"),require("@heroicons/react/24/outline/ChevronRightIcon");var A=/*#__PURE__*/T(r),M=/*#__PURE__*/T(i),S=/*#__PURE__*/T(t);let L=/*#__PURE__*/o.styled(g.AppLogoHeader).withConfig({displayName:"StyledAppLogoHeader",componentId:"sc-4938a02-0"})(["margin-bottom:16px;"]),E=({priority:e,email:r,sms:i,social:t})=>"web2-first"===e?"Other socials":r&&i&&t.length>0||r&&t.length>0?"Log in with email or socials":i&&t.length>0?"Log in with sms or socials":r&&i?"Continue with email or sms":r?"Continue with email":i?"Continue with sms":"Log in with a social account",I=({priority:r,email:i,sms:t,social:s})=>"web2-first"===r||s.length>0?/*#__PURE__*/e.jsx(S.default,{}):i&&t?/*#__PURE__*/e.jsx(d.EmailOrPhone,{}):i?/*#__PURE__*/e.jsx(A.default,{}):t?/*#__PURE__*/e.jsx(M.default,{}):null,W=({priority:e})=>"web2-first"===e?"Continue with a wallet":"Other wallets",F=({mostRecentlyUsedAccountType:e,smsAvailable:r,emailAvailable:i,prefilledType:t})=>i&&("email"===e&&"phone"!==t||"email"===t)||!r||"phone"!==e&&"phone"!==t?"email":"sms";exports.LandingScreenView=({connectOnly:r})=>{let{closePrivyModal:i,connectors:t}=u.usePrivyInternal(),{data:o,onUserCloseViaDialogOrKeybindRef:d}=p.usePrivyModal(),g=c.useAppConfig(),{accountType:T,walletClientType:A,chainType:M}=h.useRecentlyUsedLogin(),S=T?j.toDisplayFromAccountType(T):null,P=o?.login,{email:O,sms:H,google:V,twitter:R,discord:U,github:D,spotify:z,instagram:G,tiktok:K,linkedin:N,apple:Q,wallet:X,farcaster:J,telegram:Y}=s.useMemo((()=>P?.loginMethods?n.toObjectKeys(P.loginMethods,!0):null),[P])??g.loginMethods,{passkey:Z}=g.loginMethods,$=[O&&"email",H&&"sms",V&&"google",R&&"twitter",U&&"discord",D&&"github",z&&"spotify",G&&"instagram",K&&"tiktok",N&&"linkedin",Q&&"apple",J&&"farcaster",Y&&"telegram"].filter((e=>!!e)),_=$.length>0,ee=s.useMemo((()=>X&&!_?"web3-first":X&&g?.appearance.loginGroupPriority||"web2-first"),[X,_,g?.appearance.loginGroupPriority]),re=g?.appearance.hideDirectWeb2Inputs,[ie,te]=s.useState("default"),[se,oe]=s.useState(F({mostRecentlyUsedAccountType:T,smsAvailable:H,emailAvailable:O,prefilledType:P?.prefill?.type}));s.useEffect((()=>{oe(F({mostRecentlyUsedAccountType:T,smsAvailable:H,emailAvailable:O,prefilledType:P?.prefill?.type}))}),[O,H,T]);let ne=()=>{i({shouldCallAuthOnSuccess:!0}),setTimeout((()=>{te("default")}),150)};d.current=ne;let ae=[];A&&X?ae.push(A):S?.loginMethod&&$.includes(S.loginMethod)&&ae.push(S.loginMethod);let le=i=>"email"===i?/*#__PURE__*/e.jsx(q.EmailButton,{isEditable:"email"===se,setIsEditable:()=>{oe("email")},defaultValue:"email"===P?.prefill?.type?P.prefill.value:void 0},i):"sms"===i?/*#__PURE__*/e.jsx(w.SmsButton,{isEditable:"sms"===se,setIsEditable:()=>{oe("sms")},defaultValue:"phone"===P?.prefill?.type?P.prefill.value:void 0},i):"apple"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"apple"},i):"discord"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"discord"},i):"farcaster"===i?/*#__PURE__*/e.jsx(y.FarcasterButton,{},i):"github"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"github"},i):"google"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"google"},i):"linkedin"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"linkedin"},i):"tiktok"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"tiktok"},i):"spotify"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"spotify"},i):"instagram"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"instagram"},i):"twitter"===i?/*#__PURE__*/e.jsx(v.SocialButton,{provider:"twitter"},i):"telegram"===i?/*#__PURE__*/e.jsx(b.TelegramButton,{},i):x.toWalletButtons({walletList:g.appearance.walletList,walletChainType:g.appearance.walletChainType,connectors:t,connectOnly:r,ignore:[],walletConnectEnabled:g.externalWallets.walletConnect.enabled,forceWallet:{wallet:i,chainType:M??"ethereum"}}),ce=x.toWalletButtons({walletList:g.appearance.walletList.filter((e=>e!==A)),walletChainType:g.appearance.walletChainType,connectors:t,connectOnly:r,ignore:[...g.appearance.walletList,A],walletConnectEnabled:g.externalWallets.walletConnect.enabled}),ue=$.filter((e=>e!==S?.loginMethod)).flatMap(le),pe=ae.flatMap(le);"web3-first"===ee&&"default"===ie?ce.unshift(...pe):"web2-first"===ee&&ue.unshift(...pe);let je=$.filter((e=>"email"!==e&&"sms"!==e)),he=E({priority:ee,email:O,sms:H,social:je}),de=I({priority:ee,email:O,sms:H,social:je}),ge=/*#__PURE__*/e.jsx(k.WalletOverflowButton,{text:W({priority:ee}),onClick:()=>te("web3-overflow")}),qe=/*#__PURE__*/e.jsx(C.Web2OverflowButton,{text:he,icon:de,onClick:()=>te("web2-overflow")}),me=re?0:1,ye=X&&ce.length>0,fe=0===ue.length&&X&&0===ce.length,we=5-(ye?1:0),ve=ce.length>0?ce:/*#__PURE__*/e.jsx(m.EmptyWalletView,{chainType:g.appearance.walletChainType,withPadding:!0});/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{title:g.appearance.landingHeader,onClose:ne,backFn:"default"===ie?void 0:()=>{te("default")}}),"default"===ie&&/*#__PURE__*/e.jsx(L,{}),"default"===ie&&("string"==typeof g.appearance.loginMessage?/*#__PURE__*/e.jsx(B.Subtitle,{children:g.appearance.loginMessage}):g.appearance.loginMessage),/*#__PURE__*/e.jsx(B.AlignBottom,{style:{overflow:"hidden",padding:2},children:/*#__PURE__*/e.jsxs(B.LoginMethodContainer,{children:["default"===ie&&"web2-first"===ee&&/*#__PURE__*/e.jsxs(e.Fragment,{children:[ue.length>we?ue.slice(0,we-1):ue,ue.length>we&&qe,ye&&ge,fe&&/*#__PURE__*/e.jsx(m.EmptyWalletView,{chainType:g.appearance.walletChainType})]}),"default"===ie&&"web3-first"===ee&&/*#__PURE__*/e.jsxs(e.Fragment,{children:[X&&/*#__PURE__*/e.jsxs(e.Fragment,{children:[ce.length>we?ce.slice(0,we-1):ce,ce.length>we&&ge]}),ue.length>me&&qe,ue.length===me&&ue[0],fe&&/*#__PURE__*/e.jsx(m.EmptyWalletView,{chainType:g.appearance.walletChainType})]}),"web2-overflow"===ie&&/*#__PURE__*/e.jsx(e.Fragment,{children:"web3-first"===ee?ue:ue.slice(3)}),"web3-overflow"===ie?ve:[],Z&&"default"===ie&&/*#__PURE__*/e.jsx(f.PasskeyLink,{})]})}),g&&/*#__PURE__*/e.jsx(a.TermsAndConditions,{app:g}),/*#__PURE__*/e.jsx(a.BlobbyFooter,{})]})};
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("../index.js"),n=require("styled-components"),i=require("../../hooks/captcha-context.js"),s=require("../../hooks/internal-context.js"),o=require("../../hooks/modal-context.js");require("../../hooks/index.js"),require("react"),require("../../errors.js"),require("ofetch"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../components/PrefetchedImage.js"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js");let c=/*#__PURE__*/n.css(["&&{width:100%;font-size:0.875rem;line-height:1rem;display:flex;gap:0.5rem;justify-content:center;align-items:center;padding:6px 8px;background-color:var(--privy-color-background);transition:background-color 200ms ease;color:var(--privy-color-accent) !important;:focus{outline:none;box-shadow:none;}}"]);const a=/*#__PURE__*/n.styled.button.withConfig({displayName:"StyledLink",componentId:"sc-9521c74b-0"})(["",""],c);exports.PasskeyLink=()=>{let{enabled:n,token:c}=i.useCaptcha(),{navigate:t,setModalData:u,app:l}=o.usePrivyModal(),{initLoginWithPasskey:h}=s.usePrivyInternal();/*#__PURE__*/return e.jsx(a,{onClick:()=>{l.loginConfig.passkeysForSignupEnabled?t(r.ModalScreen.SELECT_PASSKEY_SIGNUP_OR_LOGIN):(async()=>{n&&!c?(u({passkeyAuthModalData:{passkeySignupFlow:!1},captchaModalData:{callback:e=>h({captchaToken:e,withPrivyUi:!0}),userIntentRequired:!1,onSuccessNavigateTo:r.ModalScreen.AWAITING_PASSKEY_SYSTEM_DIALOGUE,onErrorNavigateTo:r.ModalScreen.ERROR_SCREEN}}),t(r.ModalScreen.CAPTCHA_SCREEN)):(await h({withPrivyUi:!0}),u({passkeyAuthModalData:{passkeySignupFlow:!1}}),t(r.ModalScreen.AWAITING_PASSKEY_SYSTEM_DIALOGUE))})()},children:"I have a passkey"})},exports.StyledLink=a;
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("../index.js"),n=require("@heroicons/react/24/outline/FingerPrintIcon"),i=require("react"),s=require("styled-components"),o=require("../../hooks/captcha-context.js"),t=require("../../hooks/internal-context.js"),c=require("../../hooks/modal-context.js"),a=require("./styles.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../hooks/index.js"),require("../../errors.js"),require("ofetch"),require("../../utils/index.js"),require("../../connectors/get-legacy-injected-providers.js"),require("../../connectors/is-wallet-installed.js"),require("../../utils/eth/getPublicClient.js"),require("viem"),require("../../components/PrefetchedImage.js"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../constants.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js");var l=/*#__PURE__*/u(n);let h=/*#__PURE__*/s.css(["&&{width:100%;font-size:0.875rem;line-height:1rem;display:flex;gap:0.5rem;justify-content:center;align-items:center;padding:6px 8px;background-color:var(--privy-color-background);transition:background-color 200ms ease;color:var(--privy-color-accent) !important;:focus{outline:none;box-shadow:none;}}"]);const j=/*#__PURE__*/s.styled.button.withConfig({displayName:"StyledLink",componentId:"sc-eb12d148-0"})(["",""],h);exports.PasskeyLink=()=>{let{enabled:n,token:s}=o.useCaptcha(),{navigate:u,setModalData:h,app:q,data:d}=c.usePrivyModal(),{initLoginWithPasskey:p}=t.usePrivyInternal(),g=()=>{q.loginConfig.passkeysForSignupEnabled?u(r.ModalScreen.SELECT_PASSKEY_SIGNUP_OR_LOGIN):(async()=>{n&&!s?(h({passkeyAuthModalData:{passkeySignupFlow:!1},captchaModalData:{callback:e=>p({captchaToken:e,withPrivyUi:!0}),userIntentRequired:!1,onSuccessNavigateTo:r.ModalScreen.AWAITING_PASSKEY_SYSTEM_DIALOGUE,onErrorNavigateTo:r.ModalScreen.ERROR_SCREEN}}),u(r.ModalScreen.CAPTCHA_SCREEN)):(await p({withPrivyUi:!0}),h({passkeyAuthModalData:{passkeySignupFlow:!1}}),u(r.ModalScreen.AWAITING_PASSKEY_SYSTEM_DIALOGUE))})()};return 0===i.useMemo((()=>{let e=d?.login?.loginMethods;return e?e.length:Object.entries(q.loginMethods).filter((([e,r])=>r)).filter((([e])=>"passkey"!==e)).length}),[q.loginMethods,d?.login])?/*#__PURE__*/e.jsxs(a.LoginMethodButton,{onClick:g,children:[/*#__PURE__*/e.jsx(l.default,{})," Continue with passkey"]}):/*#__PURE__*/e.jsx(j,{onClick:g,children:"I have a passkey"})},exports.StyledLink=j;
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/ExclamationTriangleIcon"),o=require("@heroicons/react/24/outline/LockClosedIcon"),i=require("react"),n=require("../../client/user.js"),t=require("../../components/Button.js"),s=require("../../components/ModalFooter.js"),c=require("../../components/ModalHeader.js"),a=require("../../components/ui/icons/WithCircleBorder.js"),l=require("../../components/ui/typography/Subtitle.js"),u=require("../../components/ui/typography/Title.js"),h=require("../../constants.js"),d=require("../../hooks/internal-context.js"),j=require("../../hooks/modal-context.js"),y=require("../../hooks/privy-context.js"),q=require("../LandingScreen/styles.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("viem/utils"),require("styled-components"),require("../../components/Loader.js"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("../index.js");var g=/*#__PURE__*/m(r),p=/*#__PURE__*/m(o);exports.SetAutomaticRecoveryScreen=()=>{let{user:r,getAccessToken:o}=y.usePrivyContext(),{walletProxy:m,refreshUser:f,closePrivyModal:v}=d.usePrivyInternal(),x=j.usePrivyModal(),{entropyId:w,entropyIdVerifier:b}=x.data?.recoverWallet,[S,C]=i.useState(!1),[k,T]=i.useState(null),[I,P]=i.useState(null);function W(){if(!S){if(I)return x.data?.setWalletPassword?.onFailure(I),void v();if(!k)return x.data?.setWalletPassword?.onFailure(Error("User exited set recovery flow")),void v()}}x.onUserCloseViaDialogOrKeybindRef.current=W;let A=!(!S&&!k);return I?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(c.ModalHeader,{onClose:W},"header"),/*#__PURE__*/e.jsx(a.WithCircleBorder,{$color:"var(--privy-color-error)",style:{alignSelf:"center"},children:/*#__PURE__*/e.jsx(g.default,{height:38,width:38,stroke:"var(--privy-color-error)"})}),/*#__PURE__*/e.jsx(u.Title,{style:{marginTop:"0.5rem"},children:"Something went wrong"}),/*#__PURE__*/e.jsx(q.Grow,{style:{minHeight:"2rem"}}),/*#__PURE__*/e.jsx(t.PrimaryButtonWithoutGray,{onClick:()=>P(null),children:"Try again"}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]}):/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(c.ModalHeader,{onClose:W},"header"),/*#__PURE__*/e.jsx(p.default,{style:{width:"3rem",height:"3rem",alignSelf:"center"}}),/*#__PURE__*/e.jsx(u.Title,{style:{marginTop:"0.5rem"},children:"Automatically secure your account"}),/*#__PURE__*/e.jsx(l.Subtitle,{style:{marginTop:"1rem"},children:"When you log into a new device, you’ll only need to authenticate to access your account. Never get logged out if you forget your password."}),/*#__PURE__*/e.jsx(q.Grow,{style:{minHeight:"2rem"}}),/*#__PURE__*/e.jsx(t.PrimaryButtonWithoutGray,{loading:S,disabled:A,onClick:()=>async function(){C(!0);try{let e=await o(),i=n.getPrivyWalletWithAddress(r,w);if(!e||!m||!i)return;if(!(await m.setRecovery({accessToken:e,entropyId:w,entropyIdVerifier:b,existingRecoveryMethod:i.recoveryMethod,recoveryMethod:"privy"})).entropyId)throw Error("Unable to set recovery on wallet");let t=await f();if(!t)throw Error("Unable to set recovery on wallet");let s=n.getPrivyWalletWithAddress(t,i.address);if(!s)throw Error("Unabled to set recovery on wallet");T(!!t),setTimeout((()=>{x.data?.setWalletPassword?.onSuccess(s),v()}),h.DEFAULT_SUCCESS_SCREEN_DURATION_MS)}catch(e){P(e)}finally{C(!1)}}(),children:k?"Success":"Confirm"}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/ExclamationTriangleIcon"),o=require("@heroicons/react/24/outline/LockClosedIcon"),i=require("react"),n=require("../../client/user.js"),t=require("../../components/Button.js"),s=require("../../components/ModalFooter.js"),c=require("../../components/ModalHeader.js"),a=require("../../components/ui/icons/WithCircleBorder.js"),l=require("../../components/ui/typography/Subtitle.js"),u=require("../../components/ui/typography/Title.js"),h=require("../../constants.js"),d=require("../../hooks/internal-context.js"),j=require("../../hooks/modal-context.js"),y=require("../../hooks/privy-context.js"),q=require("../LandingScreen/styles.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("viem/utils"),require("styled-components"),require("../../components/Loader.js"),require("../../configuration/context.js"),require("../../config.js"),require("../../configuration/defaultClientConfig.js"),require("../../configuration/login-methods.js"),require("../../configuration/wallets.js"),require("../../connectors/chains/index.js"),require("../../connectors/chains/arbitrum.js"),require("../../connectors/chains/arbitrumSepolia.js"),require("../../connectors/chains/avalanche.js"),require("../../connectors/chains/avalancheFuji.js"),require("../../connectors/chains/base.js"),require("../../connectors/chains/baseSepolia.js"),require("../../connectors/chains/berachainArtio.js"),require("../../connectors/chains/celo.js"),require("../../connectors/chains/celoAlfajores.js"),require("../../connectors/chains/filecoin.js"),require("../../connectors/chains/filecoinCalibration.js"),require("../../connectors/chains/garnetHolesky.js"),require("../../connectors/chains/holesky.js"),require("../../connectors/chains/linea.js"),require("../../connectors/chains/lineaTestnet.js"),require("../../connectors/chains/lukso.js"),require("../../connectors/chains/mainnet.js"),require("../../connectors/chains/optimism.js"),require("../../connectors/chains/optimismSepolia.js"),require("../../connectors/chains/polygon.js"),require("../../connectors/chains/polygonAmoy.js"),require("../../connectors/chains/redstone.js"),require("../../connectors/chains/sepolia.js"),require("../../connectors/chains/zora.js"),require("../../connectors/chains/zoraSepolia.js"),require("../../connectors/chains/zoraTestnet.js"),require("../../connectors/chains/utils.js"),require("../../lib/solana/index.js"),require("../../theme.js"),require("tinycolor2"),require("../../lib/cybr53.js"),require("../../svg/protected-by-privy.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("../../hooks/index.js"),require("../../components/PrefetchedImage.js"),require("../index.js");var g=/*#__PURE__*/m(r),p=/*#__PURE__*/m(o);exports.SetAutomaticRecoveryScreen=()=>{let{user:r,getAccessToken:o}=y.usePrivyContext(),{walletProxy:m,refreshSessionAndUser:f,closePrivyModal:v}=d.usePrivyInternal(),x=j.usePrivyModal(),{entropyId:w,entropyIdVerifier:S}=x.data?.recoverWallet,[b,C]=i.useState(!1),[k,T]=i.useState(null),[I,A]=i.useState(null);function P(){if(!b){if(I)return x.data?.setWalletPassword?.onFailure(I),void v();if(!k)return x.data?.setWalletPassword?.onFailure(Error("User exited set recovery flow")),void v()}}x.onUserCloseViaDialogOrKeybindRef.current=P;let W=!(!b&&!k);return I?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(c.ModalHeader,{onClose:P},"header"),/*#__PURE__*/e.jsx(a.WithCircleBorder,{$color:"var(--privy-color-error)",style:{alignSelf:"center"},children:/*#__PURE__*/e.jsx(g.default,{height:38,width:38,stroke:"var(--privy-color-error)"})}),/*#__PURE__*/e.jsx(u.Title,{style:{marginTop:"0.5rem"},children:"Something went wrong"}),/*#__PURE__*/e.jsx(q.Grow,{style:{minHeight:"2rem"}}),/*#__PURE__*/e.jsx(t.PrimaryButtonWithoutGray,{onClick:()=>A(null),children:"Try again"}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]}):/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(c.ModalHeader,{onClose:P},"header"),/*#__PURE__*/e.jsx(p.default,{style:{width:"3rem",height:"3rem",alignSelf:"center"}}),/*#__PURE__*/e.jsx(u.Title,{style:{marginTop:"0.5rem"},children:"Automatically secure your account"}),/*#__PURE__*/e.jsx(l.Subtitle,{style:{marginTop:"1rem"},children:"When you log into a new device, you’ll only need to authenticate to access your account. Never get logged out if you forget your password."}),/*#__PURE__*/e.jsx(q.Grow,{style:{minHeight:"2rem"}}),/*#__PURE__*/e.jsx(t.PrimaryButtonWithoutGray,{loading:b,disabled:W,onClick:()=>async function(){C(!0);try{let e=await o(),i=n.getPrivyWalletWithAddress(r,w);if(!e||!m||!i)return;if(!(await m.setRecovery({accessToken:e,entropyId:w,entropyIdVerifier:S,existingRecoveryMethod:i.recoveryMethod,recoveryMethod:"privy"})).entropyId)throw Error("Unable to set recovery on wallet");let t=await f();if(!t)throw Error("Unable to set recovery on wallet");let s=n.getPrivyWalletWithAddress(t,i.address);if(!s)throw Error("Unabled to set recovery on wallet");T(!!t),setTimeout((()=>{x.data?.setWalletPassword?.onSuccess(s),v()}),h.DEFAULT_SUCCESS_SCREEN_DURATION_MS)}catch(e){A(e)}finally{C(!1)}}(),children:k?"Success":"Confirm"}),/*#__PURE__*/e.jsx(s.BlobbyFooter,{})]})};
@@ -1 +1 @@
1
- "use strict";var e=require("js-cookie"),t=require("./auth-flows/authFlowToAuthenticateMethod.js"),s=require("./client/user.js"),r=require("./constants.js"),o=require("./cookies.js"),n=require("./effect.js"),i=require("./errors.js"),c=require("./hooks/useIdentityToken.js"),a=require("./paths.js"),u=require("./storage.js"),h=require("./token.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./auth-flows/custom-jwt-account.js"),require("./auth-flows/email.js"),require("./auth-flows/getUiHeader.js"),require("./auth-flows/guest.js"),require("jose"),require("./crypto.js"),require("./auth-flows/siwe.js"),require("./lib/siwe.js"),require("ofetch"),require("./auth-flows/sms.js"),require("./auth-flows/oauth/OAuthFlow.js"),require("./lib/pkce.js"),require("viem/utils"),require("react-device-detect"),require("zustand");var _,k=/*#__PURE__*/l(e),T=((_={}).PRIVY="privy_access_token",_.CUSTOMER="customer_access_token",_);exports.AccessTokenTypes=T,exports.Session=class{get token(){return this.privyAccessToken||this.customerAccessToken}getToken(e){return"privy_access_token"===e?this.privyAccessToken:this.customerAccessToken}get customerAccessToken(){return this._getToken(r.CUSTOMER_ACCESS_TOKEN_STORAGE_KEY)}get privyAccessToken(){return this._getToken(r.PRIVY_ACCESS_TOKEN_STORAGE_KEY)}_getToken(e){try{let t=u.default.get(e);return"string"==typeof t?h.Token.throwIfNotWellFormedJwt(t):null}catch(e){return console.error(e),this.destroyLocalState(),null}}get refreshToken(){try{let e=u.default.get(r.REFRESH_TOKEN_STORAGE_KEY);return"string"==typeof e?e:null}catch(e){return console.error(e),this.destroyLocalState(),null}}get forkedToken(){try{let e=u.default.get(r.FORKED_TOKEN_STORAGE_KEY);return"string"==typeof e?e:null}catch(e){return console.error(e),this.destroyLocalState(),null}}getProviderAccessToken(e){try{let t=u.default.get(r.getProviderAccessTokenStorageKey(e));if("string"!=typeof t)return null;{let s=new h.Token(t);return s.isExpired()?(u.default.del(r.getProviderAccessTokenStorageKey(e)),null):s.value}}catch(e){return console.error(e),null}}get mightHaveServerCookies(){try{let e=k.default.get(r.SESSION_COOKIE_KEY);return void 0!==e&&e.length>0}catch(e){console.error(e)}return!1}hasRefreshCredentials(e="privy_access_token"){let t="string"==typeof this.getToken(e),s="string"==typeof this.refreshToken&&this.refreshToken!==r.DEPRECATED_REFRESH_TOKEN;return this.mightHaveServerCookies||t&&s}hasRecoveryCredentials(){return"string"==typeof this.forkedToken}hasActiveAccessToken(e){let t=h.Token.parse(this.getToken(e));return null!==t&&!t.isExpired(30)}authenticate(e){return this.authenticateOnce.execute(e)}link(e){return this.linkOnce.execute(e)}refresh(){return this.refreshOnce.execute()}forkSession(){return this.forkSessionOnce.execute()}destroy(){return this.destroyOnce.execute()}storeProviderAccessToken(e,t){"string"==typeof t?u.default.put(r.getProviderAccessTokenStorageKey(e),t):u.default.del(r.getProviderAccessTokenStorageKey(e))}async _authenticate(e){try{let t=await e.authenticate(),{user:r,is_new_user:o,oauth_tokens:n}=t;this.handleTokenResponse(t);let i=n?{provider:n.provider,accessToken:n.access_token,accessTokenExpiresInSeconds:n.access_token_expires_in_seconds,refreshToken:n.refresh_token,refreshTokenExpiresInSeconds:n.refresh_token_expires_in_seconds,scopes:n.scopes}:void 0;return this._trackAuthenticateEvents(e,o),{user:s.convertUserResponseToUser(r),isNewUser:o,oAuthTokens:i}}catch(e){throw console.warn("Error authenticating session"),i.formatPrivyError(e)}}_trackAuthenticateEvents(e,s){let r=t.authFlowToAuthenticateMethod(e);r&&this.client&&this.client.createAnalyticsEvent({eventName:"sdk_authenticate",payload:{method:r,isNewUser:s}}),"siwe"===r&&this.client&&this.client.createAnalyticsEvent({eventName:"sdk_authenticate_siwe",payload:{connectorType:e.meta.connectorType,walletClientType:e.meta.walletClientType}})}async _link(e){try{let t=await e.link(),r=t.oauth_tokens,o=r?{provider:r.provider,accessToken:r.access_token,accessTokenExpiresInSeconds:r.access_token_expires_in_seconds,refreshToken:r.refresh_token,refreshTokenExpiresInSeconds:r.refresh_token_expires_in_seconds,scopes:r.scopes}:void 0;return{user:s.convertUserResponseToUser(t),oAuthTokens:o}}catch(e){throw console.warn("Error linking account"),i.formatPrivyError(e)}}async _refresh(){if(!this.api)throw new i.PrivyClientError("Session has no API instance");if(!this.client)throw new i.PrivyClientError("Session has no PrivyClient instance");await this.client.getAccessToken({disableAutoRefresh:!0});let e=this.token,t=this.refreshToken,r=this.forkedToken;if(this.client.useServerCookies&&!this.mightHaveServerCookies&&this.token&&window.location.origin===this.client.apiUrl)return this.destroyLocalState(),null;try{let o;if(e&&t||this.mightHaveServerCookies){let s={};e&&(s.authorization=`Bearer ${e}`),o=await this.api.post(a.sessionsRefreshPath,t?{refresh_token:t}:{},{headers:s}),r&&this.clearForkedToken()}else{if(!r)return null;o=await this.api.post(a.recoverForkedSessionsPath,{refresh_token:r}),this.clearForkedToken()}return this.handleTokenResponse(o),s.convertUserResponseToUser(o.user)}catch(e){if(e instanceof i.PrivyApiError&&e.privyErrorCode===i.PrivyErrorCode.MISSING_OR_INVALID_TOKEN)return console.warn("Unable to refresh tokens - token is missing or no longer valid"),this.destroyLocalState(),null;throw i.formatPrivyError(e)}}handleTokenResponse(e){e.session_update_action&&"set"!==e.session_update_action?"clear"===e.session_update_action?this.destroyLocalState():"ignore"===e.session_update_action&&(e.token&&(this.storeCustomerAccessToken(e.token),this.storePrivyAccessToken(e.privy_access_token)),e.identity_token&&this.storeIdentityToken(e.identity_token)):this._storeAllTokens(e)}_storeAllTokens(e){this.storeRefreshToken(e.refresh_token),this.storeCustomerAccessToken(e.token),this.storePrivyAccessToken(e.privy_access_token),e.identity_token&&this.storeIdentityToken(e.identity_token)}async _destroy(){try{await(this.api?.post(a.sessionsLogoutPath,{refresh_token:this.refreshToken}))}catch(e){console.warn("Error destroying session")}this.destroyLocalState()}async _forkSession(){if(!this.api)throw new i.PrivyClientError("Session has no API instance");let e=this.refreshToken;try{let t=await this.api.post(a.forkSessionPath,{refresh_token:e});return this.storeRefreshToken(t.refresh_token),this.storeCustomerAccessToken(t.token),t.new_session_refresh_token}catch(e){throw i.formatPrivyError(e)}}destroyLocalState(){this.storeRefreshToken(null),this.storeCustomerAccessToken(null),this.storePrivyAccessToken(null),this.clearIdentityToken(),this.clearForkedToken()}storeCustomerAccessToken(e){if("string"==typeof e){let t=u.default.get(r.CUSTOMER_ACCESS_TOKEN_STORAGE_KEY);if(u.default.put(r.CUSTOMER_ACCESS_TOKEN_STORAGE_KEY,e),!this.client?.useServerCookies){let t=h.Token.parse(e)?.expiration;k.default.set(r.CUSTOMER_ACCESS_TOKEN_COOKIE_KEY,e,{sameSite:"Strict",secure:o.getSecureMode(),expires:t?new Date(1e3*t):void 0})}t!==e&&this.client?.onStoreCustomerAccessToken?.(e)}else u.default.del(r.CUSTOMER_ACCESS_TOKEN_STORAGE_KEY),k.default.remove(r.CUSTOMER_ACCESS_TOKEN_COOKIE_KEY),this.client?.onDeleteCustomerAccessToken?.()}storeRefreshToken(e){"string"==typeof e?(u.default.put(r.REFRESH_TOKEN_STORAGE_KEY,e),this.client?.useServerCookies||k.default.set(r.SESSION_COOKIE_KEY,"t",{sameSite:"Strict",secure:o.getSecureMode(),expires:30})):(u.default.del(r.REFRESH_TOKEN_STORAGE_KEY),k.default.remove(r.REFRESH_TOKEN_COOKIE_KEY),k.default.remove(r.SESSION_COOKIE_KEY))}storePrivyAccessToken(e){"string"==typeof e?u.default.put(r.PRIVY_ACCESS_TOKEN_STORAGE_KEY,e):u.default.del(r.PRIVY_ACCESS_TOKEN_STORAGE_KEY)}storeIdentityToken(e){if(c.useIdTokenStore.setState({identityToken:e}),this.client?.useServerCookies)return;u.default.put(r.IDENTITY_TOKEN_STORAGE_KEY,e);let t=h.Token.parse(e)?.expiration;k.default.set(r.IDENTITY_TOKEN_COOKIE_KEY,e,{sameSite:"Strict",secure:o.getSecureMode(),expires:t?new Date(1e3*t):void 0})}clearIdentityToken(){u.default.del(r.IDENTITY_TOKEN_STORAGE_KEY),c.useIdTokenStore.setState({identityToken:null}),k.default.remove(r.IDENTITY_TOKEN_COOKIE_KEY)}clearForkedToken(){u.default.del(r.FORKED_TOKEN_STORAGE_KEY)}constructor(){this.authenticateOnce=new n.RunEffectOnce((async e=>this._authenticate(e))),this.linkOnce=new n.RunEffectOnce((async e=>this._link(e))),this.refreshOnce=new n.RunEffectOnce(this._refresh.bind(this)),this.destroyOnce=new n.RunEffectOnce(this._destroy.bind(this)),this.forkSessionOnce=new n.RunEffectOnce(this._forkSession.bind(this))}};
1
+ "use strict";var e=require("js-cookie"),t=require("./auth-flows/authFlowToAuthenticateMethod.js"),s=require("./client/user.js"),r=require("./constants.js"),o=require("./cookies.js"),n=require("./effect.js"),i=require("./errors.js"),c=require("./hooks/useIdentityToken.js"),a=require("./paths.js"),u=require("./storage.js"),h=require("./token.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./auth-flows/custom-jwt-account.js"),require("./auth-flows/email.js"),require("./auth-flows/getUiHeader.js"),require("./auth-flows/guest.js"),require("jose"),require("./crypto.js"),require("./auth-flows/siwe.js"),require("./lib/siwe.js"),require("ofetch"),require("./auth-flows/sms.js"),require("./auth-flows/oauth/OAuthFlow.js"),require("./lib/pkce.js"),require("viem/utils"),require("react-device-detect"),require("zustand");var k,_=/*#__PURE__*/l(e),T=((k={}).PRIVY="privy_access_token",k.CUSTOMER="customer_access_token",k);exports.AccessTokenTypes=T,exports.Session=class{get token(){return this.privyAccessToken||this.customerAccessToken}getToken(e){return"privy_access_token"===e?this.privyAccessToken:this.customerAccessToken}get customerAccessToken(){return this._getToken(r.CUSTOMER_ACCESS_TOKEN_STORAGE_KEY)}get privyAccessToken(){return this._getToken(r.PRIVY_ACCESS_TOKEN_STORAGE_KEY)}_getToken(e){try{let t=u.default.get(e);return"string"==typeof t?h.Token.throwIfNotWellFormedJwt(t):null}catch(e){return console.error(e),this.destroyLocalState(),null}}get refreshToken(){try{let e=u.default.get(r.REFRESH_TOKEN_STORAGE_KEY);return"string"==typeof e?e:null}catch(e){return console.error(e),this.destroyLocalState(),null}}get forkedToken(){try{let e=u.default.get(r.FORKED_TOKEN_STORAGE_KEY);return"string"==typeof e?e:null}catch(e){return console.error(e),this.destroyLocalState(),null}}getProviderAccessToken(e){try{let t=u.default.get(r.getProviderAccessTokenStorageKey(e));if("string"!=typeof t)return null;{let s=new h.Token(t);return s.isExpired()?(u.default.del(r.getProviderAccessTokenStorageKey(e)),null):s.value}}catch(e){return console.error(e),null}}get mightHaveServerCookies(){try{let e=_.default.get(r.SESSION_COOKIE_KEY);return void 0!==e&&e.length>0}catch(e){console.error(e)}return!1}hasRefreshCredentials(e="privy_access_token"){let t="string"==typeof this.getToken(e),s="string"==typeof this.refreshToken&&this.refreshToken!==r.DEPRECATED_REFRESH_TOKEN;return this.mightHaveServerCookies||t&&s}hasRecoveryCredentials(){return"string"==typeof this.forkedToken}hasActiveAccessToken(e){let t=h.Token.parse(this.getToken(e));return null!==t&&!t.isExpired(30)}authenticate(e){return this.authenticateOnce.execute(e)}link(e){return this.linkOnce.execute(e)}refresh(){return this.refreshOnce.execute()}forkSession(){return this.forkSessionOnce.execute()}destroy(){return this.destroyOnce.execute()}storeProviderAccessToken(e,t){"string"==typeof t?u.default.put(r.getProviderAccessTokenStorageKey(e),t):u.default.del(r.getProviderAccessTokenStorageKey(e))}updateIdentityToken(e){"string"==typeof e?this.storeIdentityToken(e):this.clearIdentityToken()}async _authenticate(e){try{let t=await e.authenticate(),{user:r,is_new_user:o,oauth_tokens:n}=t;this.handleTokenResponse(t);let i=n?{provider:n.provider,accessToken:n.access_token,accessTokenExpiresInSeconds:n.access_token_expires_in_seconds,refreshToken:n.refresh_token,refreshTokenExpiresInSeconds:n.refresh_token_expires_in_seconds,scopes:n.scopes}:void 0;return this._trackAuthenticateEvents(e,o),{user:s.convertUserResponseToUser(r),isNewUser:o,oAuthTokens:i}}catch(e){throw console.warn("Error authenticating session"),i.formatPrivyError(e)}}_trackAuthenticateEvents(e,s){let r=t.authFlowToAuthenticateMethod(e);r&&this.client&&this.client.createAnalyticsEvent({eventName:"sdk_authenticate",payload:{method:r,isNewUser:s}}),"siwe"===r&&this.client&&this.client.createAnalyticsEvent({eventName:"sdk_authenticate_siwe",payload:{connectorType:e.meta.connectorType,walletClientType:e.meta.walletClientType}})}async _link(e){try{let t=await e.link(),r=t.oauth_tokens,o=r?{provider:r.provider,accessToken:r.access_token,accessTokenExpiresInSeconds:r.access_token_expires_in_seconds,refreshToken:r.refresh_token,refreshTokenExpiresInSeconds:r.refresh_token_expires_in_seconds,scopes:r.scopes}:void 0;return{user:s.convertUserResponseToUser(t),oAuthTokens:o}}catch(e){throw console.warn("Error linking account"),i.formatPrivyError(e)}}async _refresh(){if(!this.api)throw new i.PrivyClientError("Session has no API instance");if(!this.client)throw new i.PrivyClientError("Session has no PrivyClient instance");await this.client.getAccessToken({disableAutoRefresh:!0});let e=this.token,t=this.refreshToken,r=this.forkedToken;if(this.client.useServerCookies&&!this.mightHaveServerCookies&&this.token&&window.location.origin===this.client.apiUrl)return this.destroyLocalState(),null;try{let o;if(e&&t||this.mightHaveServerCookies){let s={};e&&(s.authorization=`Bearer ${e}`),o=await this.api.post(a.sessionsRefreshPath,t?{refresh_token:t}:{},{headers:s}),r&&this.clearForkedToken()}else{if(!r)return null;o=await this.api.post(a.recoverForkedSessionsPath,{refresh_token:r}),this.clearForkedToken()}return this.handleTokenResponse(o),s.convertUserResponseToUser(o.user)}catch(e){if(e instanceof i.PrivyApiError&&e.privyErrorCode===i.PrivyErrorCode.MISSING_OR_INVALID_TOKEN)return console.warn("Unable to refresh tokens - token is missing or no longer valid"),this.destroyLocalState(),null;throw i.formatPrivyError(e)}}handleTokenResponse(e){e.session_update_action&&"set"!==e.session_update_action?"clear"===e.session_update_action?this.destroyLocalState():"ignore"===e.session_update_action&&(e.token&&(this.storeCustomerAccessToken(e.token),this.storePrivyAccessToken(e.privy_access_token)),e.identity_token&&this.storeIdentityToken(e.identity_token)):this._storeAllTokens(e)}_storeAllTokens(e){this.storeRefreshToken(e.refresh_token),this.storeCustomerAccessToken(e.token),this.storePrivyAccessToken(e.privy_access_token),e.identity_token&&this.storeIdentityToken(e.identity_token)}async _destroy(){try{await(this.api?.post(a.sessionsLogoutPath,{refresh_token:this.refreshToken}))}catch(e){console.warn("Error destroying session")}this.destroyLocalState()}async _forkSession(){if(!this.api)throw new i.PrivyClientError("Session has no API instance");let e=this.refreshToken;try{let t=await this.api.post(a.forkSessionPath,{refresh_token:e});return this.storeRefreshToken(t.refresh_token),this.storeCustomerAccessToken(t.token),t.new_session_refresh_token}catch(e){throw i.formatPrivyError(e)}}destroyLocalState(){this.storeRefreshToken(null),this.storeCustomerAccessToken(null),this.storePrivyAccessToken(null),this.clearIdentityToken(),this.clearForkedToken()}storeCustomerAccessToken(e){if("string"==typeof e){let t=u.default.get(r.CUSTOMER_ACCESS_TOKEN_STORAGE_KEY);if(u.default.put(r.CUSTOMER_ACCESS_TOKEN_STORAGE_KEY,e),!this.client?.useServerCookies){let t=h.Token.parse(e)?.expiration;_.default.set(r.CUSTOMER_ACCESS_TOKEN_COOKIE_KEY,e,{sameSite:"Strict",secure:o.getSecureMode(),expires:t?new Date(1e3*t):void 0})}t!==e&&this.client?.onStoreCustomerAccessToken?.(e)}else u.default.del(r.CUSTOMER_ACCESS_TOKEN_STORAGE_KEY),_.default.remove(r.CUSTOMER_ACCESS_TOKEN_COOKIE_KEY),this.client?.onDeleteCustomerAccessToken?.()}storeRefreshToken(e){"string"==typeof e?(u.default.put(r.REFRESH_TOKEN_STORAGE_KEY,e),this.client?.useServerCookies||_.default.set(r.SESSION_COOKIE_KEY,"t",{sameSite:"Strict",secure:o.getSecureMode(),expires:30})):(u.default.del(r.REFRESH_TOKEN_STORAGE_KEY),_.default.remove(r.REFRESH_TOKEN_COOKIE_KEY),_.default.remove(r.SESSION_COOKIE_KEY))}storePrivyAccessToken(e){"string"==typeof e?u.default.put(r.PRIVY_ACCESS_TOKEN_STORAGE_KEY,e):u.default.del(r.PRIVY_ACCESS_TOKEN_STORAGE_KEY)}storeIdentityToken(e){if(c.useIdTokenStore.setState({identityToken:e}),this.client?.useServerCookies)return;u.default.put(r.IDENTITY_TOKEN_STORAGE_KEY,e);let t=h.Token.parse(e)?.expiration;_.default.set(r.IDENTITY_TOKEN_COOKIE_KEY,e,{sameSite:"Strict",secure:o.getSecureMode(),expires:t?new Date(1e3*t):void 0})}clearIdentityToken(){u.default.del(r.IDENTITY_TOKEN_STORAGE_KEY),c.useIdTokenStore.setState({identityToken:null}),_.default.remove(r.IDENTITY_TOKEN_COOKIE_KEY)}clearForkedToken(){u.default.del(r.FORKED_TOKEN_STORAGE_KEY)}constructor(){this.authenticateOnce=new n.RunEffectOnce((async e=>this._authenticate(e))),this.linkOnce=new n.RunEffectOnce((async e=>this._link(e))),this.refreshOnce=new n.RunEffectOnce(this._refresh.bind(this)),this.destroyOnce=new n.RunEffectOnce(this._destroy.bind(this)),this.forkSessionOnce=new n.RunEffectOnce(this._forkSession.bind(this))}};
@@ -1,4 +1,4 @@
1
- import { L as LoginToFrame, U as User } from './types-CyPM8Lj_.js';
1
+ import { L as LoginToFrame, U as User } from './types-DQ7QKE2m.js';
2
2
  import '@solana/wallet-adapter-base';
3
3
  import 'react';
4
4
  import 'viem';
@@ -1,4 +1,4 @@
1
- import { L as LoginToFrame, U as User } from './types-CyPM8Lj_.js';
1
+ import { L as LoginToFrame, U as User } from './types-DQ7QKE2m.js';
2
2
  import '@solana/wallet-adapter-base';
3
3
  import 'react';
4
4
  import 'viem';
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { MouseEvent } from 'react';
3
- import { C as Chain, d as UserRecoveryMethod, m as PrivyFarcasterSignerInitResponse, n as MfaSubmitArgs, E as EthereumRpcRequestType, o as SolanaRpcRequestType, p as EthereumRpcResponseType, q as SolanaRpcResponseType, r as PrivyClientConfig, s as RpcConfig, u as EIP1193Provider, v as EntropyIdVerifier$1, w as RequestArguments, x as WalletTimeoutError, y as WalletConnector, B as BaseConnectedEthereumWallet, z as WalletClientType, A as ConnectedWalletMetadata, D as ConnectorType, G as WalletListEntry, H as ExternalWalletsConfig, I as BaseConnectedWallet, l as SolanaWalletConnector, U as User, J as ConnectWalletModalOptions, K as LoginModalOptions, g as CreateWalletOptions, W as Wallet, N as SetWalletRecoveryOptions, i as SignMessageModalUIOptions, Q as SignTypedDataParams, M as MfaMethod, T as UnsignedTransactionRequest, h as SendTransactionModalUIOptions, V as FundWalletConfig, X as ConnectedWallet, O as OAuthTokens, Y as CrossAppProviderDetails, Z as OAuthProviderType, _ as MoonpaySignRequest, $ as MoonpaySignResponse, a0 as SmartWalletConfig, a1 as PrivyServerConfig, a as LoginMethod, a2 as SiweWalletMetadata, a3 as TelegramAuthResult, a4 as TelegramWebAppData, a5 as OAuthUserInfo, a6 as OAuthFlowState, a7 as LoginWithCode, a8 as OtpFlowState, a9 as PasskeyFlowState, aa as SiweFlowState, ab as UnsignedTransactionRequestWithChainId, ac as BaseConnectedWalletType, f as ConnectedSolanaWallet, ad as CustomAuthFlowState } from './types-CyPM8Lj_.js';
4
- export { aw as Apple, aH as AppleOAuthWithMetadata, aP as ContractUIOptions, az as CrossAppAccount, aK as CrossAppAccountWithMetadata, at as Discord, aD as DiscordOAuthWithMetadata, aM as Email, ao as EmailWithMetadata, aT as Farcaster, aI as FarcasterWithMetadata, au as Github, aE as GithubOAuthWithMetadata, ar as Google, aB as GoogleOAuthWithMetadata, aA as LinkedAccountType, b as LinkedAccountWithMetadata, av as LinkedIn, aG as LinkedInOAuthWithMetadata, aV as LoginMethodOrderOption, af as MessageTypes, ah as MoonpayConfig, ai as MoonpayCurrencyCode, aR as MoonpayFundingConfig, aj as MoonpayPaymentMethod, aQ as NativeFundingConfig, an as NonEmptyArray, aU as Passkey, aL as PasskeyWithMetadata, aN as Phone, ap as PhoneWithMetadata, aS as PriceDisplayOptions, P as PrivyErrorCode, ak as Quantity, ag as SmartWallet, e as SolanaCluster, j as SolanaFundingConfig, S as SolanaTransactionReceipt, k as SupportedSolanaTransaction, ay as Telegram, aJ as TelegramWithMetadata, ax as Tiktok, aF as TiktokOAuthWithMetadata, al as TransactionLog, am as TransactionReceipt, aO as TransactionUIOptions, as as Twitter, aC as TwitterOAuthWithMetadata, ae as TypedMessage, aq as WalletWithMetadata } from './types-CyPM8Lj_.js';
3
+ import { C as Chain, d as UserRecoveryMethod, m as PrivyFarcasterSignerInitResponse, n as MfaSubmitArgs, E as EthereumRpcRequestType, o as SolanaRpcRequestType, p as EthereumRpcResponseType, q as SolanaRpcResponseType, r as PrivyClientConfig, s as RpcConfig, u as EIP1193Provider, v as EntropyIdVerifier$1, w as RequestArguments, x as WalletTimeoutError, y as WalletConnector, B as BaseConnectedEthereumWallet, z as WalletClientType, A as ConnectedWalletMetadata, D as ConnectorType, G as WalletListEntry, H as ExternalWalletsConfig, I as BaseConnectedWallet, l as SolanaWalletConnector, U as User, J as ConnectWalletModalOptions, K as LoginModalOptions, g as CreateWalletOptions, W as Wallet, N as SetWalletRecoveryOptions, i as SignMessageModalUIOptions, Q as SignTypedDataParams, M as MfaMethod, T as UnsignedTransactionRequest, h as SendTransactionModalUIOptions, V as FundWalletConfig, X as ConnectedWallet, O as OAuthTokens, Y as CrossAppProviderDetails, Z as OAuthProviderType, _ as MoonpaySignRequest, $ as MoonpaySignResponse, a0 as SmartWalletConfig, a1 as PrivyServerConfig, a as LoginMethod, a2 as SiweWalletMetadata, a3 as TelegramAuthResult, a4 as TelegramWebAppData, a5 as OAuthUserInfo, a6 as OAuthFlowState, a7 as LoginWithCode, a8 as OtpFlowState, a9 as PasskeyFlowState, aa as SiweFlowState, ab as UnsignedTransactionRequestWithChainId, ac as BaseConnectedWalletType, f as ConnectedSolanaWallet, ad as CustomAuthFlowState } from './types-DQ7QKE2m.js';
4
+ export { aw as Apple, aH as AppleOAuthWithMetadata, aP as ContractUIOptions, az as CrossAppAccount, aK as CrossAppAccountWithMetadata, at as Discord, aD as DiscordOAuthWithMetadata, aM as Email, ao as EmailWithMetadata, aT as Farcaster, aI as FarcasterWithMetadata, au as Github, aE as GithubOAuthWithMetadata, ar as Google, aB as GoogleOAuthWithMetadata, aA as LinkedAccountType, b as LinkedAccountWithMetadata, av as LinkedIn, aG as LinkedInOAuthWithMetadata, aV as LoginMethodOrderOption, af as MessageTypes, ah as MoonpayConfig, ai as MoonpayCurrencyCode, aR as MoonpayFundingConfig, aj as MoonpayPaymentMethod, aQ as NativeFundingConfig, an as NonEmptyArray, aU as Passkey, aL as PasskeyWithMetadata, aN as Phone, ap as PhoneWithMetadata, aS as PriceDisplayOptions, P as PrivyErrorCode, ak as Quantity, ag as SmartWallet, e as SolanaCluster, j as SolanaFundingConfig, S as SolanaTransactionReceipt, k as SupportedSolanaTransaction, ay as Telegram, aJ as TelegramWithMetadata, ax as Tiktok, aF as TiktokOAuthWithMetadata, al as TransactionLog, am as TransactionReceipt, aO as TransactionUIOptions, as as Twitter, aC as TwitterOAuthWithMetadata, ae as TypedMessage, aq as WalletWithMetadata } from './types-DQ7QKE2m.js';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { TurnstileProps } from '@marsidev/react-turnstile';
7
7
  import EventEmitter from 'eventemitter3';
@@ -14,8 +14,8 @@ import * as _simplewebauthn_types from '@simplewebauthn/types';
14
14
  import { PublicKeyCredentialRequestOptionsJSON } from '@simplewebauthn/types';
15
15
  import { Cluster } from '@solana/web3.js';
16
16
  import { FetchOptions } from 'ofetch';
17
- import { P as PrivyEvents } from './useSolanaWallets-lHWYp_2Q.js';
18
- export { C as CallbackError, U as UseSolanaWalletsInterface, u as useSolanaWallets } from './useSolanaWallets-lHWYp_2Q.js';
17
+ import { P as PrivyEvents } from './useSolanaWallets-C61-2PbZ.js';
18
+ export { C as CallbackError, U as UseSolanaWalletsInterface, u as useSolanaWallets } from './useSolanaWallets-C61-2PbZ.js';
19
19
  import '@solana/wallet-adapter-base';
20
20
  import '@privy-io/js-sdk-core';
21
21
  import '@metamask/eth-sig-util';
@@ -303,6 +303,12 @@ type MfaClearRequestDataType = {
303
303
  userId: string;
304
304
  };
305
305
  type MfaClearResponseDataType = Record<string, never>;
306
+ type AuthUnlinkPasskeyRequestDataType = {
307
+ accessToken: string;
308
+ credentialId: string;
309
+ removeAsMfa?: boolean;
310
+ };
311
+ type AuthUnlinkPasskeyResponseDataType = Record<string, never>;
306
312
  type FarcasterSignerInitRequestDataType = {
307
313
  address: string;
308
314
  hdWalletIndex: number | null;
@@ -394,6 +400,7 @@ interface EmbeddedWalletProxy {
394
400
  submitEnrollMfa: (data: MfaSubmitEnrollmentRequestDataType) => Promise<MfaSubmitEnrollmentResponseDataType>;
395
401
  unenrollMfa: (data: MfaUnenrollRequestDataType) => Promise<MfaUnenrollResponseDataType>;
396
402
  clearMfa: (data: MfaClearRequestDataType) => Promise<MfaClearResponseDataType>;
403
+ unlinkPasskeyAccount(data: AuthUnlinkPasskeyRequestDataType): Promise<AuthUnlinkPasskeyResponseDataType>;
397
404
  initFarcasterSigner: (data: FarcasterSignerInitRequestDataType) => Promise<FarcasterSignerInitResponseDataType>;
398
405
  signFarcasterMessage: (data: FarcasterSignRequestDataType) => Promise<FarcasterSignResponseDataType>;
399
406
  }
@@ -2427,7 +2434,6 @@ declare class PrivyClient {
2427
2434
  unlinkOAuth(provider: OAuthProviderType | `privy:${string}`, subject: string): Promise<User>;
2428
2435
  unlinkFarcaster(fid: number): Promise<User>;
2429
2436
  unlinkTelegram(telegramUserId: string): Promise<User>;
2430
- unlinkPasskey(credentialId: string): Promise<User>;
2431
2437
  revokeDelegatedWallet(): Promise<void>;
2432
2438
  createAnalyticsEvent({ eventName, payload, timestamp, options, }: {
2433
2439
  eventName: string;
@@ -2564,6 +2570,7 @@ declare class PrivyClient {
2564
2570
  walletClientType?: string;
2565
2571
  connectorType?: string;
2566
2572
  }): Promise<User>;
2573
+ updateUserAndIdToken(): Promise<User>;
2567
2574
  }
2568
2575
 
2569
2576
  /**
@@ -3096,9 +3103,11 @@ interface UseCrossAppAccountsInterface {
3096
3103
  *
3097
3104
  * @param message {string} the message to sign
3098
3105
  * @param options.address {string} the address of the embedded wallet from the linked privy app
3106
+ * @param options.chainId {number} (optional) the chain ID, required for smart wallet signatures
3099
3107
  */
3100
3108
  signMessage: (message: string, o: {
3101
3109
  address: string;
3110
+ chainId?: number;
3102
3111
  }) => Promise<string>;
3103
3112
  /**
3104
3113
  * For users who have linked an account from another privy app, prompts the user to sign typed data
@@ -3109,9 +3118,11 @@ interface UseCrossAppAccountsInterface {
3109
3118
  *
3110
3119
  * @param data {SignTypedDataParameters} the typed data to sign
3111
3120
  * @param options.address {string} the address of the embedded wallet from the linked privy app
3121
+ * @param options.chainId {number} (optional) the chain ID, required for smart wallet signatures
3112
3122
  */
3113
3123
  signTypedData: (data: SignTypedDataParams, o: {
3114
3124
  address: string;
3125
+ chainId?: number;
3115
3126
  }) => Promise<string>;
3116
3127
  /**
3117
3128
  * For users who have linked an account from another privy app, prompts the user to send a
@@ -3351,6 +3362,17 @@ interface UseDelegatedActionsInterface {
3351
3362
  }
3352
3363
  declare const useDelegatedActions: () => UseDelegatedActionsInterface;
3353
3364
 
3365
+ /**
3366
+ * Use this hook to programmatically update the user in response to any backend change
3367
+ *
3368
+ * @returns user - user object from Privy
3369
+ * refreshUser - method used to update the user object and identity token in the client
3370
+ */
3371
+ declare const useUser: () => {
3372
+ user: User | null;
3373
+ refreshUser: () => Promise<User | undefined>;
3374
+ };
3375
+
3354
3376
  /**
3355
3377
  * Hook to headlessly permissions to execute certain transactions to the wallet API.
3356
3378
  *
@@ -3489,4 +3511,4 @@ declare const LoginModal: ({ open }: {
3489
3511
  open: boolean;
3490
3512
  }) => react_jsx_runtime.JSX.Element;
3491
3513
 
3492
- export { BaseConnectedWalletType, Captcha, ConnectWalletModalOptions, ConnectedSolanaWallet, ConnectedWallet, ConnectorManager, CustomAuthFlowState, EIP1193Provider, EthereumWalletConnector, FundWalletConfig, LoginModal, LoginModalOptions, LoginWithCode, MfaMethod, OAuthFlowState, OAuthProviderType, OAuthTokens, OtpFlowState, PasskeyFlowState, PrivyClient, PrivyClientConfig, PrivyEvents, type PrivyInterface, PrivyProvider, type PrivyProviderProps, DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS, type SendCodeToEmail, type SendCodeToSms, SendTransactionModalUIOptions, SignMessageModalUIOptions, SignTypedDataParams, SiweFlowState, UnsignedTransactionRequest, type UseConnectCoinbaseSmartWalletInterface, type UseCustomAuth, type UseDelegatedActionsInterface, type UseFundWalletInterface, type UseImportWalletInterface, type UseLinkWithPasskey, type UseLoginWithEmail, type UseLoginWithPasskey, type UseLoginWithSms, type UseOAuthTokens, type UseWalletsInterface, User, VERSION, Wallet, WalletConnector, WalletListEntry, addPrivyRpcToChain, addRpcUrlOverrideToChain, errorIndicatesMaxMfaRetries, errorIndicatesMfaTimeout, errorIndicatesMfaVerificationFailed, getCustomerAccessToken as getAccessToken, getEmbeddedConnectedWallet, useActiveWallet, useConnectCoinbaseSmartWallet, useConnectWallet, useCreateWallet, useCrossAppAccounts, useCustomAuth, useDelegatedActions, useFarcasterSigner, useFundWallet, useGuestAccounts, useHeadlessDelegatedActions, useIdentityToken, useImportWallet, useLinkAccount, useLinkWithPasskey, useLinkWithSiwe, useLogin, useLoginWithEmail, useLoginWithOAuth, useLoginWithPasskey, useLoginWithSms, useLogout, useMfa, useMfaEnrollment, useModalStatus, useOAuthTokens, usePrivy, useRegisterMfaListener, useSendTransaction, useSetWalletPassword, useSetWalletRecovery, useSignMessage, useSignTransaction, useSignTypedData, useToken, useUpdateAccount, useWallets };
3514
+ export { BaseConnectedWalletType, Captcha, ConnectWalletModalOptions, ConnectedSolanaWallet, ConnectedWallet, ConnectorManager, CustomAuthFlowState, EIP1193Provider, EthereumWalletConnector, FundWalletConfig, LoginModal, LoginModalOptions, LoginWithCode, MfaMethod, OAuthFlowState, OAuthProviderType, OAuthTokens, OtpFlowState, PasskeyFlowState, PrivyClient, PrivyClientConfig, PrivyEvents, type PrivyInterface, PrivyProvider, type PrivyProviderProps, DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS, type SendCodeToEmail, type SendCodeToSms, SendTransactionModalUIOptions, SignMessageModalUIOptions, SignTypedDataParams, SiweFlowState, UnsignedTransactionRequest, type UseConnectCoinbaseSmartWalletInterface, type UseCustomAuth, type UseDelegatedActionsInterface, type UseFundWalletInterface, type UseImportWalletInterface, type UseLinkWithPasskey, type UseLoginWithEmail, type UseLoginWithPasskey, type UseLoginWithSms, type UseOAuthTokens, type UseWalletsInterface, User, VERSION, Wallet, WalletConnector, WalletListEntry, addPrivyRpcToChain, addRpcUrlOverrideToChain, errorIndicatesMaxMfaRetries, errorIndicatesMfaTimeout, errorIndicatesMfaVerificationFailed, getCustomerAccessToken as getAccessToken, getEmbeddedConnectedWallet, useActiveWallet, useConnectCoinbaseSmartWallet, useConnectWallet, useCreateWallet, useCrossAppAccounts, useCustomAuth, useDelegatedActions, useFarcasterSigner, useFundWallet, useGuestAccounts, useHeadlessDelegatedActions, useIdentityToken, useImportWallet, useLinkAccount, useLinkWithPasskey, useLinkWithSiwe, useLogin, useLoginWithEmail, useLoginWithOAuth, useLoginWithPasskey, useLoginWithSms, useLogout, useMfa, useMfaEnrollment, useModalStatus, useOAuthTokens, usePrivy, useRegisterMfaListener, useSendTransaction, useSetWalletPassword, useSetWalletRecovery, useSignMessage, useSignTransaction, useSignTypedData, useToken, useUpdateAccount, useUser, useWallets };
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { MouseEvent } from 'react';
3
- import { C as Chain, d as UserRecoveryMethod, m as PrivyFarcasterSignerInitResponse, n as MfaSubmitArgs, E as EthereumRpcRequestType, o as SolanaRpcRequestType, p as EthereumRpcResponseType, q as SolanaRpcResponseType, r as PrivyClientConfig, s as RpcConfig, u as EIP1193Provider, v as EntropyIdVerifier$1, w as RequestArguments, x as WalletTimeoutError, y as WalletConnector, B as BaseConnectedEthereumWallet, z as WalletClientType, A as ConnectedWalletMetadata, D as ConnectorType, G as WalletListEntry, H as ExternalWalletsConfig, I as BaseConnectedWallet, l as SolanaWalletConnector, U as User, J as ConnectWalletModalOptions, K as LoginModalOptions, g as CreateWalletOptions, W as Wallet, N as SetWalletRecoveryOptions, i as SignMessageModalUIOptions, Q as SignTypedDataParams, M as MfaMethod, T as UnsignedTransactionRequest, h as SendTransactionModalUIOptions, V as FundWalletConfig, X as ConnectedWallet, O as OAuthTokens, Y as CrossAppProviderDetails, Z as OAuthProviderType, _ as MoonpaySignRequest, $ as MoonpaySignResponse, a0 as SmartWalletConfig, a1 as PrivyServerConfig, a as LoginMethod, a2 as SiweWalletMetadata, a3 as TelegramAuthResult, a4 as TelegramWebAppData, a5 as OAuthUserInfo, a6 as OAuthFlowState, a7 as LoginWithCode, a8 as OtpFlowState, a9 as PasskeyFlowState, aa as SiweFlowState, ab as UnsignedTransactionRequestWithChainId, ac as BaseConnectedWalletType, f as ConnectedSolanaWallet, ad as CustomAuthFlowState } from './types-CyPM8Lj_.js';
4
- export { aw as Apple, aH as AppleOAuthWithMetadata, aP as ContractUIOptions, az as CrossAppAccount, aK as CrossAppAccountWithMetadata, at as Discord, aD as DiscordOAuthWithMetadata, aM as Email, ao as EmailWithMetadata, aT as Farcaster, aI as FarcasterWithMetadata, au as Github, aE as GithubOAuthWithMetadata, ar as Google, aB as GoogleOAuthWithMetadata, aA as LinkedAccountType, b as LinkedAccountWithMetadata, av as LinkedIn, aG as LinkedInOAuthWithMetadata, aV as LoginMethodOrderOption, af as MessageTypes, ah as MoonpayConfig, ai as MoonpayCurrencyCode, aR as MoonpayFundingConfig, aj as MoonpayPaymentMethod, aQ as NativeFundingConfig, an as NonEmptyArray, aU as Passkey, aL as PasskeyWithMetadata, aN as Phone, ap as PhoneWithMetadata, aS as PriceDisplayOptions, P as PrivyErrorCode, ak as Quantity, ag as SmartWallet, e as SolanaCluster, j as SolanaFundingConfig, S as SolanaTransactionReceipt, k as SupportedSolanaTransaction, ay as Telegram, aJ as TelegramWithMetadata, ax as Tiktok, aF as TiktokOAuthWithMetadata, al as TransactionLog, am as TransactionReceipt, aO as TransactionUIOptions, as as Twitter, aC as TwitterOAuthWithMetadata, ae as TypedMessage, aq as WalletWithMetadata } from './types-CyPM8Lj_.js';
3
+ import { C as Chain, d as UserRecoveryMethod, m as PrivyFarcasterSignerInitResponse, n as MfaSubmitArgs, E as EthereumRpcRequestType, o as SolanaRpcRequestType, p as EthereumRpcResponseType, q as SolanaRpcResponseType, r as PrivyClientConfig, s as RpcConfig, u as EIP1193Provider, v as EntropyIdVerifier$1, w as RequestArguments, x as WalletTimeoutError, y as WalletConnector, B as BaseConnectedEthereumWallet, z as WalletClientType, A as ConnectedWalletMetadata, D as ConnectorType, G as WalletListEntry, H as ExternalWalletsConfig, I as BaseConnectedWallet, l as SolanaWalletConnector, U as User, J as ConnectWalletModalOptions, K as LoginModalOptions, g as CreateWalletOptions, W as Wallet, N as SetWalletRecoveryOptions, i as SignMessageModalUIOptions, Q as SignTypedDataParams, M as MfaMethod, T as UnsignedTransactionRequest, h as SendTransactionModalUIOptions, V as FundWalletConfig, X as ConnectedWallet, O as OAuthTokens, Y as CrossAppProviderDetails, Z as OAuthProviderType, _ as MoonpaySignRequest, $ as MoonpaySignResponse, a0 as SmartWalletConfig, a1 as PrivyServerConfig, a as LoginMethod, a2 as SiweWalletMetadata, a3 as TelegramAuthResult, a4 as TelegramWebAppData, a5 as OAuthUserInfo, a6 as OAuthFlowState, a7 as LoginWithCode, a8 as OtpFlowState, a9 as PasskeyFlowState, aa as SiweFlowState, ab as UnsignedTransactionRequestWithChainId, ac as BaseConnectedWalletType, f as ConnectedSolanaWallet, ad as CustomAuthFlowState } from './types-DQ7QKE2m.js';
4
+ export { aw as Apple, aH as AppleOAuthWithMetadata, aP as ContractUIOptions, az as CrossAppAccount, aK as CrossAppAccountWithMetadata, at as Discord, aD as DiscordOAuthWithMetadata, aM as Email, ao as EmailWithMetadata, aT as Farcaster, aI as FarcasterWithMetadata, au as Github, aE as GithubOAuthWithMetadata, ar as Google, aB as GoogleOAuthWithMetadata, aA as LinkedAccountType, b as LinkedAccountWithMetadata, av as LinkedIn, aG as LinkedInOAuthWithMetadata, aV as LoginMethodOrderOption, af as MessageTypes, ah as MoonpayConfig, ai as MoonpayCurrencyCode, aR as MoonpayFundingConfig, aj as MoonpayPaymentMethod, aQ as NativeFundingConfig, an as NonEmptyArray, aU as Passkey, aL as PasskeyWithMetadata, aN as Phone, ap as PhoneWithMetadata, aS as PriceDisplayOptions, P as PrivyErrorCode, ak as Quantity, ag as SmartWallet, e as SolanaCluster, j as SolanaFundingConfig, S as SolanaTransactionReceipt, k as SupportedSolanaTransaction, ay as Telegram, aJ as TelegramWithMetadata, ax as Tiktok, aF as TiktokOAuthWithMetadata, al as TransactionLog, am as TransactionReceipt, aO as TransactionUIOptions, as as Twitter, aC as TwitterOAuthWithMetadata, ae as TypedMessage, aq as WalletWithMetadata } from './types-DQ7QKE2m.js';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { TurnstileProps } from '@marsidev/react-turnstile';
7
7
  import EventEmitter from 'eventemitter3';
@@ -14,8 +14,8 @@ import * as _simplewebauthn_types from '@simplewebauthn/types';
14
14
  import { PublicKeyCredentialRequestOptionsJSON } from '@simplewebauthn/types';
15
15
  import { Cluster } from '@solana/web3.js';
16
16
  import { FetchOptions } from 'ofetch';
17
- import { P as PrivyEvents } from './useSolanaWallets-lHWYp_2Q.js';
18
- export { C as CallbackError, U as UseSolanaWalletsInterface, u as useSolanaWallets } from './useSolanaWallets-lHWYp_2Q.js';
17
+ import { P as PrivyEvents } from './useSolanaWallets-C61-2PbZ.js';
18
+ export { C as CallbackError, U as UseSolanaWalletsInterface, u as useSolanaWallets } from './useSolanaWallets-C61-2PbZ.js';
19
19
  import '@solana/wallet-adapter-base';
20
20
  import '@privy-io/js-sdk-core';
21
21
  import '@metamask/eth-sig-util';
@@ -303,6 +303,12 @@ type MfaClearRequestDataType = {
303
303
  userId: string;
304
304
  };
305
305
  type MfaClearResponseDataType = Record<string, never>;
306
+ type AuthUnlinkPasskeyRequestDataType = {
307
+ accessToken: string;
308
+ credentialId: string;
309
+ removeAsMfa?: boolean;
310
+ };
311
+ type AuthUnlinkPasskeyResponseDataType = Record<string, never>;
306
312
  type FarcasterSignerInitRequestDataType = {
307
313
  address: string;
308
314
  hdWalletIndex: number | null;
@@ -394,6 +400,7 @@ interface EmbeddedWalletProxy {
394
400
  submitEnrollMfa: (data: MfaSubmitEnrollmentRequestDataType) => Promise<MfaSubmitEnrollmentResponseDataType>;
395
401
  unenrollMfa: (data: MfaUnenrollRequestDataType) => Promise<MfaUnenrollResponseDataType>;
396
402
  clearMfa: (data: MfaClearRequestDataType) => Promise<MfaClearResponseDataType>;
403
+ unlinkPasskeyAccount(data: AuthUnlinkPasskeyRequestDataType): Promise<AuthUnlinkPasskeyResponseDataType>;
397
404
  initFarcasterSigner: (data: FarcasterSignerInitRequestDataType) => Promise<FarcasterSignerInitResponseDataType>;
398
405
  signFarcasterMessage: (data: FarcasterSignRequestDataType) => Promise<FarcasterSignResponseDataType>;
399
406
  }
@@ -2427,7 +2434,6 @@ declare class PrivyClient {
2427
2434
  unlinkOAuth(provider: OAuthProviderType | `privy:${string}`, subject: string): Promise<User>;
2428
2435
  unlinkFarcaster(fid: number): Promise<User>;
2429
2436
  unlinkTelegram(telegramUserId: string): Promise<User>;
2430
- unlinkPasskey(credentialId: string): Promise<User>;
2431
2437
  revokeDelegatedWallet(): Promise<void>;
2432
2438
  createAnalyticsEvent({ eventName, payload, timestamp, options, }: {
2433
2439
  eventName: string;
@@ -2564,6 +2570,7 @@ declare class PrivyClient {
2564
2570
  walletClientType?: string;
2565
2571
  connectorType?: string;
2566
2572
  }): Promise<User>;
2573
+ updateUserAndIdToken(): Promise<User>;
2567
2574
  }
2568
2575
 
2569
2576
  /**
@@ -3096,9 +3103,11 @@ interface UseCrossAppAccountsInterface {
3096
3103
  *
3097
3104
  * @param message {string} the message to sign
3098
3105
  * @param options.address {string} the address of the embedded wallet from the linked privy app
3106
+ * @param options.chainId {number} (optional) the chain ID, required for smart wallet signatures
3099
3107
  */
3100
3108
  signMessage: (message: string, o: {
3101
3109
  address: string;
3110
+ chainId?: number;
3102
3111
  }) => Promise<string>;
3103
3112
  /**
3104
3113
  * For users who have linked an account from another privy app, prompts the user to sign typed data
@@ -3109,9 +3118,11 @@ interface UseCrossAppAccountsInterface {
3109
3118
  *
3110
3119
  * @param data {SignTypedDataParameters} the typed data to sign
3111
3120
  * @param options.address {string} the address of the embedded wallet from the linked privy app
3121
+ * @param options.chainId {number} (optional) the chain ID, required for smart wallet signatures
3112
3122
  */
3113
3123
  signTypedData: (data: SignTypedDataParams, o: {
3114
3124
  address: string;
3125
+ chainId?: number;
3115
3126
  }) => Promise<string>;
3116
3127
  /**
3117
3128
  * For users who have linked an account from another privy app, prompts the user to send a
@@ -3351,6 +3362,17 @@ interface UseDelegatedActionsInterface {
3351
3362
  }
3352
3363
  declare const useDelegatedActions: () => UseDelegatedActionsInterface;
3353
3364
 
3365
+ /**
3366
+ * Use this hook to programmatically update the user in response to any backend change
3367
+ *
3368
+ * @returns user - user object from Privy
3369
+ * refreshUser - method used to update the user object and identity token in the client
3370
+ */
3371
+ declare const useUser: () => {
3372
+ user: User | null;
3373
+ refreshUser: () => Promise<User | undefined>;
3374
+ };
3375
+
3354
3376
  /**
3355
3377
  * Hook to headlessly permissions to execute certain transactions to the wallet API.
3356
3378
  *
@@ -3489,4 +3511,4 @@ declare const LoginModal: ({ open }: {
3489
3511
  open: boolean;
3490
3512
  }) => react_jsx_runtime.JSX.Element;
3491
3513
 
3492
- export { BaseConnectedWalletType, Captcha, ConnectWalletModalOptions, ConnectedSolanaWallet, ConnectedWallet, ConnectorManager, CustomAuthFlowState, EIP1193Provider, EthereumWalletConnector, FundWalletConfig, LoginModal, LoginModalOptions, LoginWithCode, MfaMethod, OAuthFlowState, OAuthProviderType, OAuthTokens, OtpFlowState, PasskeyFlowState, PrivyClient, PrivyClientConfig, PrivyEvents, type PrivyInterface, PrivyProvider, type PrivyProviderProps, DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS, type SendCodeToEmail, type SendCodeToSms, SendTransactionModalUIOptions, SignMessageModalUIOptions, SignTypedDataParams, SiweFlowState, UnsignedTransactionRequest, type UseConnectCoinbaseSmartWalletInterface, type UseCustomAuth, type UseDelegatedActionsInterface, type UseFundWalletInterface, type UseImportWalletInterface, type UseLinkWithPasskey, type UseLoginWithEmail, type UseLoginWithPasskey, type UseLoginWithSms, type UseOAuthTokens, type UseWalletsInterface, User, VERSION, Wallet, WalletConnector, WalletListEntry, addPrivyRpcToChain, addRpcUrlOverrideToChain, errorIndicatesMaxMfaRetries, errorIndicatesMfaTimeout, errorIndicatesMfaVerificationFailed, getCustomerAccessToken as getAccessToken, getEmbeddedConnectedWallet, useActiveWallet, useConnectCoinbaseSmartWallet, useConnectWallet, useCreateWallet, useCrossAppAccounts, useCustomAuth, useDelegatedActions, useFarcasterSigner, useFundWallet, useGuestAccounts, useHeadlessDelegatedActions, useIdentityToken, useImportWallet, useLinkAccount, useLinkWithPasskey, useLinkWithSiwe, useLogin, useLoginWithEmail, useLoginWithOAuth, useLoginWithPasskey, useLoginWithSms, useLogout, useMfa, useMfaEnrollment, useModalStatus, useOAuthTokens, usePrivy, useRegisterMfaListener, useSendTransaction, useSetWalletPassword, useSetWalletRecovery, useSignMessage, useSignTransaction, useSignTypedData, useToken, useUpdateAccount, useWallets };
3514
+ export { BaseConnectedWalletType, Captcha, ConnectWalletModalOptions, ConnectedSolanaWallet, ConnectedWallet, ConnectorManager, CustomAuthFlowState, EIP1193Provider, EthereumWalletConnector, FundWalletConfig, LoginModal, LoginModalOptions, LoginWithCode, MfaMethod, OAuthFlowState, OAuthProviderType, OAuthTokens, OtpFlowState, PasskeyFlowState, PrivyClient, PrivyClientConfig, PrivyEvents, type PrivyInterface, PrivyProvider, type PrivyProviderProps, DEFAULT_SUPPORTED_CHAINS as SUPPORTED_CHAINS, type SendCodeToEmail, type SendCodeToSms, SendTransactionModalUIOptions, SignMessageModalUIOptions, SignTypedDataParams, SiweFlowState, UnsignedTransactionRequest, type UseConnectCoinbaseSmartWalletInterface, type UseCustomAuth, type UseDelegatedActionsInterface, type UseFundWalletInterface, type UseImportWalletInterface, type UseLinkWithPasskey, type UseLoginWithEmail, type UseLoginWithPasskey, type UseLoginWithSms, type UseOAuthTokens, type UseWalletsInterface, User, VERSION, Wallet, WalletConnector, WalletListEntry, addPrivyRpcToChain, addRpcUrlOverrideToChain, errorIndicatesMaxMfaRetries, errorIndicatesMfaTimeout, errorIndicatesMfaVerificationFailed, getCustomerAccessToken as getAccessToken, getEmbeddedConnectedWallet, useActiveWallet, useConnectCoinbaseSmartWallet, useConnectWallet, useCreateWallet, useCrossAppAccounts, useCustomAuth, useDelegatedActions, useFarcasterSigner, useFundWallet, useGuestAccounts, useHeadlessDelegatedActions, useIdentityToken, useImportWallet, useLinkAccount, useLinkWithPasskey, useLinkWithSiwe, useLogin, useLoginWithEmail, useLoginWithOAuth, useLoginWithPasskey, useLoginWithSms, useLogout, useMfa, useMfaEnrollment, useModalStatus, useOAuthTokens, usePrivy, useRegisterMfaListener, useSendTransaction, useSetWalletPassword, useSetWalletRecovery, useSignMessage, useSignTransaction, useSignTypedData, useToken, useUpdateAccount, useUser, useWallets };
@@ -7,7 +7,7 @@ import { SmartAccount, SendUserOperationParameters } from 'viem/account-abstract
7
7
  import * as viem from 'viem';
8
8
  import { SendTransactionParameters, Chain, Hash, Hex, TypedData, SignTypedDataParameters, EIP1193Provider, PublicClient, Client } from 'viem';
9
9
  import { SmartWalletType } from '@privy-io/js-sdk-core';
10
- import { h as SendTransactionModalUIOptions, i as SignMessageModalUIOptions } from './types-CyPM8Lj_.js';
10
+ import { h as SendTransactionModalUIOptions, i as SignMessageModalUIOptions } from './types-DQ7QKE2m.js';
11
11
  import '@solana/wallet-adapter-base';
12
12
  import '@privy-io/public-api';
13
13
  import 'eventemitter3';
@@ -7,7 +7,7 @@ import { SmartAccount, SendUserOperationParameters } from 'viem/account-abstract
7
7
  import * as viem from 'viem';
8
8
  import { SendTransactionParameters, Chain, Hash, Hex, TypedData, SignTypedDataParameters, EIP1193Provider, PublicClient, Client } from 'viem';
9
9
  import { SmartWalletType } from '@privy-io/js-sdk-core';
10
- import { h as SendTransactionModalUIOptions, i as SignMessageModalUIOptions } from './types-CyPM8Lj_.js';
10
+ import { h as SendTransactionModalUIOptions, i as SignMessageModalUIOptions } from './types-DQ7QKE2m.js';
11
11
  import '@solana/wallet-adapter-base';
12
12
  import '@privy-io/public-api';
13
13
  import 'eventemitter3';
@@ -1,7 +1,7 @@
1
- import { W as Wallet, j as SolanaFundingConfig, k as SupportedSolanaTransaction, h as SendTransactionModalUIOptions, S as SolanaTransactionReceipt } from './types-CyPM8Lj_.js';
2
- export { f as ConnectedSolanaWallet, l as SolanaAdapterConnector, t as toSolanaWalletConnectors } from './types-CyPM8Lj_.js';
3
- import { P as PrivyEvents } from './useSolanaWallets-lHWYp_2Q.js';
4
- export { U as UseSolanaWalletsInterface, u as useSolanaWallets } from './useSolanaWallets-lHWYp_2Q.js';
1
+ import { W as Wallet, j as SolanaFundingConfig, k as SupportedSolanaTransaction, h as SendTransactionModalUIOptions, S as SolanaTransactionReceipt } from './types-DQ7QKE2m.js';
2
+ export { f as ConnectedSolanaWallet, l as SolanaAdapterConnector, t as toSolanaWalletConnectors } from './types-DQ7QKE2m.js';
3
+ import { P as PrivyEvents } from './useSolanaWallets-C61-2PbZ.js';
4
+ export { U as UseSolanaWalletsInterface, u as useSolanaWallets } from './useSolanaWallets-C61-2PbZ.js';
5
5
  import { SendTransactionOptions } from '@solana/wallet-adapter-base';
6
6
  import { Connection } from '@solana/web3.js';
7
7
  import 'react';
@@ -1,7 +1,7 @@
1
- import { W as Wallet, j as SolanaFundingConfig, k as SupportedSolanaTransaction, h as SendTransactionModalUIOptions, S as SolanaTransactionReceipt } from './types-CyPM8Lj_.js';
2
- export { f as ConnectedSolanaWallet, l as SolanaAdapterConnector, t as toSolanaWalletConnectors } from './types-CyPM8Lj_.js';
3
- import { P as PrivyEvents } from './useSolanaWallets-lHWYp_2Q.js';
4
- export { U as UseSolanaWalletsInterface, u as useSolanaWallets } from './useSolanaWallets-lHWYp_2Q.js';
1
+ import { W as Wallet, j as SolanaFundingConfig, k as SupportedSolanaTransaction, h as SendTransactionModalUIOptions, S as SolanaTransactionReceipt } from './types-DQ7QKE2m.js';
2
+ export { f as ConnectedSolanaWallet, l as SolanaAdapterConnector, t as toSolanaWalletConnectors } from './types-DQ7QKE2m.js';
3
+ import { P as PrivyEvents } from './useSolanaWallets-C61-2PbZ.js';
4
+ export { U as UseSolanaWalletsInterface, u as useSolanaWallets } from './useSolanaWallets-C61-2PbZ.js';
5
5
  import { SendTransactionOptions } from '@solana/wallet-adapter-base';
6
6
  import { Connection } from '@solana/web3.js';
7
7
  import 'react';
@@ -1513,6 +1513,15 @@ interface PrivyClientConfig {
1513
1513
  */
1514
1514
  noPromptOnMfaRequired?: boolean;
1515
1515
  };
1516
+ passkeys?: {
1517
+ /**
1518
+ * - If `true`, unlinking a passkey as a login method will also unenroll it from MFA.
1519
+ * - If `false`, it will keep it as an mfa method as long as it has not been manually unenrolled.
1520
+ *
1521
+ * @default true
1522
+ */
1523
+ shouldUnenrollMfaOnUnlink?: boolean;
1524
+ };
1516
1525
  /**
1517
1526
  * @deprecated. Use `fundingMethodConfigurations -> moonpay -> useSandbox` instead.
1518
1527
  * Setting associated with fiat-on-ramp flows
@@ -1513,6 +1513,15 @@ interface PrivyClientConfig {
1513
1513
  */
1514
1514
  noPromptOnMfaRequired?: boolean;
1515
1515
  };
1516
+ passkeys?: {
1517
+ /**
1518
+ * - If `true`, unlinking a passkey as a login method will also unenroll it from MFA.
1519
+ * - If `false`, it will keep it as an mfa method as long as it has not been manually unenrolled.
1520
+ *
1521
+ * @default true
1522
+ */
1523
+ shouldUnenrollMfaOnUnlink?: boolean;
1524
+ };
1516
1525
  /**
1517
1526
  * @deprecated. Use `fundingMethodConfigurations -> moonpay -> useSandbox` instead.
1518
1527
  * Setting associated with fiat-on-ramp flows
package/dist/dts/ui.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { R as RuntimeLoginOverridableOptions, C as Chain } from './types-CyPM8Lj_.js';
2
+ import { R as RuntimeLoginOverridableOptions, C as Chain } from './types-DQ7QKE2m.js';
3
3
  import { Hex } from 'viem';
4
4
  import { Cluster } from '@privy-io/js-sdk-core';
5
5
  import '@solana/wallet-adapter-base';
package/dist/dts/ui.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { R as RuntimeLoginOverridableOptions, C as Chain } from './types-CyPM8Lj_.js';
2
+ import { R as RuntimeLoginOverridableOptions, C as Chain } from './types-DQ7QKE2m.js';
3
3
  import { Hex } from 'viem';
4
4
  import { Cluster } from '@privy-io/js-sdk-core';
5
5
  import '@solana/wallet-adapter-base';
@@ -1,4 +1,4 @@
1
- import { P as PrivyErrorCode, U as User, a as LoginMethod, b as LinkedAccountWithMetadata, B as BaseConnectedEthereumWallet, c as BaseConnectedSolanaWallet, W as Wallet, M as MfaMethod, d as UserRecoveryMethod, S as SolanaTransactionReceipt, O as OAuthTokens, C as Chain, F as FundingMethod, e as SolanaCluster, f as ConnectedSolanaWallet, g as CreateWalletOptions } from './types-CyPM8Lj_.js';
1
+ import { P as PrivyErrorCode, U as User, a as LoginMethod, b as LinkedAccountWithMetadata, B as BaseConnectedEthereumWallet, c as BaseConnectedSolanaWallet, W as Wallet, M as MfaMethod, d as UserRecoveryMethod, S as SolanaTransactionReceipt, O as OAuthTokens, C as Chain, F as FundingMethod, e as SolanaCluster, f as ConnectedSolanaWallet, g as CreateWalletOptions } from './types-DQ7QKE2m.js';
2
2
  import { MouseEvent } from 'react';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { P as PrivyErrorCode, U as User, a as LoginMethod, b as LinkedAccountWithMetadata, B as BaseConnectedEthereumWallet, c as BaseConnectedSolanaWallet, W as Wallet, M as MfaMethod, d as UserRecoveryMethod, S as SolanaTransactionReceipt, O as OAuthTokens, C as Chain, F as FundingMethod, e as SolanaCluster, f as ConnectedSolanaWallet, g as CreateWalletOptions } from './types-CyPM8Lj_.js';
1
+ import { P as PrivyErrorCode, U as User, a as LoginMethod, b as LinkedAccountWithMetadata, B as BaseConnectedEthereumWallet, c as BaseConnectedSolanaWallet, W as Wallet, M as MfaMethod, d as UserRecoveryMethod, S as SolanaTransactionReceipt, O as OAuthTokens, C as Chain, F as FundingMethod, e as SolanaCluster, f as ConnectedSolanaWallet, g as CreateWalletOptions } from './types-DQ7QKE2m.js';
2
2
  import { MouseEvent } from 'react';
3
3
 
4
4
  /**
@@ -1 +1 @@
1
- import{getImportedPrivySolanaWallet as e,getImportedPrivyEthereumWallet as t}from"../client/user.mjs";import{PrivyErrorCode as r,PrivyClientError as i}from"../errors.mjs";import"viem/utils";import"ofetch";const o=async({emitPrivyEvent:o,getAccessToken:a,initializeWalletProxy:n,refreshUser:l,user:c},{privateKey:s,chainType:E})=>{if(!c)throw o("linkAccount","onError",r.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new i("User must be authenticated before linking an account.");let[m,u]=await Promise.all([a(),n(15e3)]);if(!u||!m)throw o("linkAccount","onError",r.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new i("User must be authenticated before linking an account.");await u.importWallet({privateKey:s,accessToken:m,chainType:E});let T=await l(),w="solana"===E?e(T):t(T);if(!w)throw o("createWallet","onError",r.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return o("createWallet","onSuccess",{wallet:w}),w};export{o as importWallet};
1
+ import{getImportedPrivySolanaWallet as e,getImportedPrivyEthereumWallet as t}from"../client/user.mjs";import{PrivyErrorCode as r,PrivyClientError as i}from"../errors.mjs";import"viem/utils";import"ofetch";const o=async({emitPrivyEvent:o,getAccessToken:n,initializeWalletProxy:a,refreshSessionAndUser:l,user:s},{privateKey:c,chainType:E})=>{if(!s)throw o("linkAccount","onError",r.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new i("User must be authenticated before linking an account.");let[m,u]=await Promise.all([n(),a(15e3)]);if(!u||!m)throw o("linkAccount","onError",r.MUST_BE_AUTHENTICATED,{linkMethod:"siwe"}),new i("User must be authenticated before linking an account.");await u.importWallet({privateKey:c,accessToken:m,chainType:E});let T=await l(),w="solana"===E?e(T):t(T);if(!w)throw o("createWallet","onError",r.UNKNOWN_EMBEDDED_WALLET_ERROR),Error("Failed to import wallet");return o("createWallet","onSuccess",{wallet:w}),w};export{o as importWallet};