@fangorn-network/westmarch 2026.10.27-dev → 2026.10.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ts/eval.js +0 -0
- package/package.json +11 -11
- package/site/worker.js +27 -8
- package/src/agent/agent-card.js +18 -1
- package/src/agent/mcp.js +15 -5
- package/src/discover/apps.js +15 -1
- package/src/publish/ship.js +27 -6
- package/src/publish/view.js +134 -40
- package/template/package.json +1 -1
- package/site/dist/assets/AccountNotFoundScreen-C4njXc69-DyVH4CEz.js +0 -1
- package/site/dist/assets/AddFundsSelectionScreen-RAoCn7ej-Dz1--SS9.js +0 -31
- package/site/dist/assets/Address-H8kD1d9O-BdFZmRwI.js +0 -17
- package/site/dist/assets/AffirmativeConsentScreen-BG0MJxku-CxaCAisL.js +0 -6
- package/site/dist/assets/AllowlistRejectionScreen-Cae6e1Od-JGk7vndN.js +0 -1
- package/site/dist/assets/ApiController-CTLbMCcH.js +0 -5
- package/site/dist/assets/ArrowsRightLeftIcon-B8g9adpz.js +0 -1
- package/site/dist/assets/AuthenticateWithWalletScreen-CU6hIcFT-CXD9_OP8.js +0 -1
- package/site/dist/assets/AwaitingEvmToSolBridgingScreen-D0e_sZMS-BtJCglvU.js +0 -1
- package/site/dist/assets/AwaitingExternalEthereumTransferScreen-ur5HL4R7-BgC2TsqH.js +0 -1
- package/site/dist/assets/AwaitingPasswordlessCodeScreen-DRHz76mM-B9OzLeEO.js +0 -103
- package/site/dist/assets/AwaitingSolToEvmBridgingScreen-CdLRrGD2-C7r5snUL.js +0 -1
- package/site/dist/assets/BridgeNetworkSelectionView-CFGjB2nO-BTV0NRio.js +0 -68
- package/site/dist/assets/CaptchaScreen-DbpvkIGx-7rSZIuM-.js +0 -1
- package/site/dist/assets/CheckCircleIcon-B1l17ioc.js +0 -1
- package/site/dist/assets/CheckCircleIcon-BGSI8nKf.js +0 -1
- package/site/dist/assets/Checkbox-D1EDeo41-BUfq0w99.js +0 -52
- package/site/dist/assets/ChevronDownIcon-B6uJvPHu.js +0 -1
- package/site/dist/assets/Chip-CZKIKt9K-r9Nk__0-.js +0 -26
- package/site/dist/assets/CoinbaseOnrampStatusScreen-BbyCJDXL-DWWNHxmR.js +0 -16
- package/site/dist/assets/ConnectEmailForm-B-VRE0MN-CRQwS0Xu.js +0 -3
- package/site/dist/assets/ConnectLedgerScreen-DWHABGot-CZcCt31O.js +0 -10
- package/site/dist/assets/ConnectOnlyLandingScreen-CZYx9Bmp-C5IOf-SQ.js +0 -1
- package/site/dist/assets/ConnectOnlyStatusScreen-DCRzjxHx-cwg74F3A.js +0 -1
- package/site/dist/assets/ConnectOrCreateScreen-CUUYUO07-D28oeK6b.js +0 -1
- package/site/dist/assets/ConnectPhoneForm-Dek5xn4C-EEdkKeTp.js +0 -95
- package/site/dist/assets/ConnectWalletView-DqI-PTvX-C2mEzukj.js +0 -74
- package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-CH_7r8iV.js +0 -7
- package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-Z33kis0B.js +0 -1
- package/site/dist/assets/ConnectorUtil-DH4NePk5.js +0 -21
- package/site/dist/assets/ConstantsUtil-DmLsRHAl.js +0 -198
- package/site/dist/assets/CopyToClipboard-i_OQSBJr-_G88JCVR.js +0 -39
- package/site/dist/assets/CopyableText-CQapvaMr-CGGfc_zM.js +0 -28
- package/site/dist/assets/CrossAppAuthScreen-CLw7ymZq-C9Okoc0V.js +0 -1
- package/site/dist/assets/CustomLandingScreenView-Cm_MBSyX-D2l6hdSl.js +0 -22
- package/site/dist/assets/DelegatedActionsConsentScreen-DYF2U4y5-Dda3KKqS.js +0 -1
- package/site/dist/assets/DelegatedActionsRevokeScreen-bPp6Uwyh-DG8kJPt1.js +0 -1
- package/site/dist/assets/DepositAddressAddressStepView-4vdkb55L-CcOUfn6f.js +0 -187
- package/site/dist/assets/DepositAddressScreen-DBLRs7aI-DeituDNh.js +0 -8
- package/site/dist/assets/DepositAddressV3Screen-CDqIEMQw-FDg6K14-.js +0 -1
- package/site/dist/assets/EmailInputForm-Cqo1mda8-BmbxvPHC.js +0 -124
- package/site/dist/assets/EmbeddedWalletConnectingScreen-D4T7DUzs-B05CQ9rx.js +0 -1
- package/site/dist/assets/EmbeddedWalletCreatedScreen-D7WhW5ve-Cxd1b9XH.js +0 -1
- package/site/dist/assets/EmbeddedWalletKeyExportScreen-CqV4NYQ3-CrJy0ViX.js +0 -23
- package/site/dist/assets/EmbeddedWalletOnAccountCreateScreen-BoKb3Q2S-Bakaa3zu.js +0 -1
- package/site/dist/assets/EmbeddedWalletPasswordUpdateScreen-D3rMlqS7-j78vKrcj.js +0 -1
- package/site/dist/assets/EmbeddedWalletPasswordUpdateSplashScreen-BPFkWJeE-D3dr7W9_.js +0 -1
- package/site/dist/assets/EnrollTotp-Dibew4dp-BXbYV8nI.js +0 -66
- package/site/dist/assets/EnvelopeIcon-DjPofnRI.js +0 -1
- package/site/dist/assets/ErrorBanner-BcpGRt0h-BhH6_V-9.js +0 -21
- package/site/dist/assets/ErrorMessage-D8VaAP5m-Bs7uX2a9.js +0 -8
- package/site/dist/assets/ErrorScreen-DipdTWzE-BgPRgnOb.js +0 -4
- package/site/dist/assets/ErrorScreen-DipdTWzE-CvxXC6pz.js +0 -1
- package/site/dist/assets/ExclamationCircleIcon-BE-WGrut.js +0 -1
- package/site/dist/assets/ExclamationTriangleIcon-Ca1Xlc_f.js +0 -1
- package/site/dist/assets/FarcasterConnectStatusScreen-51tjUxqq-De2JvZdV.js +0 -75
- package/site/dist/assets/FarcasterSignerStatusScreen-6x-Uh95G-bLp3hXoO.js +0 -28
- package/site/dist/assets/FiatOnrampScreen-BAhYeiTI-Jr6D6JiZ.js +0 -491
- package/site/dist/assets/FingerPrintIcon-DOCbS93y.js +0 -1
- package/site/dist/assets/FundSolWalletWithExternalSolanaWallet-WtLwYaOl-A_G5kfa1.js +0 -1
- package/site/dist/assets/FundWalletMethodHeader-BWNkokCT-LPv35wkD.js +0 -1
- package/site/dist/assets/FundWithBankDepositScreen-DajkHxBD-0hfGrfvf.js +0 -58
- package/site/dist/assets/FundingEditAmountScreen-CpvpiO4M-Dz0s_NWR.js +0 -1
- package/site/dist/assets/FundingMethodSelectionScreen-Db7vhRlE-ZGm-3-Io.js +0 -1
- package/site/dist/assets/GlobeAltIcon-BBRl2MMn.js +0 -1
- package/site/dist/assets/GooglePay-B53WnudL-BGiVpB8y.js +0 -1
- package/site/dist/assets/HCaptchaWrapper-CUi9LJsp-CHdfIeD_.js +0 -4
- package/site/dist/assets/InAppBrowserLoginNotPossible-BMR9br1T-Cgoiow3m.js +0 -1
- package/site/dist/assets/InfoBanner-Cb3p1z12-_YqQmRiu.js +0 -22
- package/site/dist/assets/InjectedWalletIcon-DLcYOGDj-tuIrKQHH.js +0 -1
- package/site/dist/assets/InstallWalletScreen-DTA8dwLv-BMU_wa61.js +0 -1
- package/site/dist/assets/JsonTree-BHzNC-ic-DcVr0YF0.js +0 -34
- package/site/dist/assets/LabelXs-oqZNqbm_-CNprGVQM.js +0 -6
- package/site/dist/assets/LandingScreen-CGWUoSUG-fH6rsQen.js +0 -1
- package/site/dist/assets/Layouts-BMRfo5hw-e-sepi6F.js +0 -77
- package/site/dist/assets/Link-BdDilT2T-BdwlRJch.js +0 -40
- package/site/dist/assets/LinkConflictScreen-C3ZEPsgl-BXKN2Qm5.js +0 -77
- package/site/dist/assets/LinkEmailScreen-dKo9frwc-Cyn7Q8p1.js +0 -1
- package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-CWiqnwLM.js +0 -117
- package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-YmDevJzf.js +0 -1
- package/site/dist/assets/LinkPhoneScreen-oIUpfj0w-h7shW-Ay.js +0 -1
- package/site/dist/assets/Loader-UAZqxsnw-DJEVblm1.js +0 -62
- package/site/dist/assets/LoadingSkeleton-BMsgO5PV-D2atjsP5.js +0 -17
- package/site/dist/assets/LockClosedIcon-9EFzWK1C.js +0 -1
- package/site/dist/assets/LoginFailedScreen-CN0dJV6U-By3Si77a.js +0 -1
- package/site/dist/assets/ManualTransferScreen-CHqcuqbs-BAHPY8rs.js +0 -1
- package/site/dist/assets/MfaAuthEnrollmentFlowScreen-Dj7gPTRC-CLjffFG1.js +0 -1
- package/site/dist/assets/MfaAuthVerifyFlowScreen-DbFpyWMy-BmQg1Y61.js +0 -1
- package/site/dist/assets/MfaEnrollmentFlowScreen-DhLnGgnr-DmBtTtlw.js +0 -1
- package/site/dist/assets/MfaVerifyFlowScreen-C_XPjMRP-4a683Bmf.js +0 -1
- package/site/dist/assets/ModalFooter-BCuEK_nz-C_71qsaz.js +0 -403
- package/site/dist/assets/MoonpayStatusScreen-CzTUtokc-DEHHcEf8.js +0 -16
- package/site/dist/assets/OAuthStatusScreen-ufbOa-da-BjAb_WsY.js +0 -1
- package/site/dist/assets/OpenLink-CUpJ1mOr-BLWFsPOW.js +0 -39
- package/site/dist/assets/PasskeySelectSignupOrLogin-xh2ScC_l-2PJTJxX-.js +0 -1
- package/site/dist/assets/PasskeyStatusScreen-Bla8MaOk-DCEg761l.js +0 -6
- package/site/dist/assets/PasswordRecoveryScreen-awGXZkQk-8nVjNc8k.js +0 -20
- package/site/dist/assets/PhArrowCircleDown-D97G-BOA.js +0 -14
- package/site/dist/assets/PhArrowClockwise-DVgyFuez.js +0 -14
- package/site/dist/assets/PhArrowDown-87b1BizM.js +0 -14
- package/site/dist/assets/PhArrowLeft-Da0MfnbK.js +0 -14
- package/site/dist/assets/PhArrowRight-AdrIL4DW.js +0 -14
- package/site/dist/assets/PhArrowSquareOut-Bk2CMG3I.js +0 -14
- package/site/dist/assets/PhArrowUp-4sgyKPGx.js +0 -14
- package/site/dist/assets/PhArrowUpRight-BNghD2zq.js +0 -14
- package/site/dist/assets/PhArrowsClockwise-BXRn1GEl.js +0 -14
- package/site/dist/assets/PhArrowsDownUp-DM09Jo_3.js +0 -14
- package/site/dist/assets/PhArrowsLeftRight-MuKBLUoF.js +0 -14
- package/site/dist/assets/PhBank-fHbgCqqZ.js +0 -14
- package/site/dist/assets/PhBrowser-2-9m-AkM.js +0 -14
- package/site/dist/assets/PhCaretDown-BDNabFuL.js +0 -14
- package/site/dist/assets/PhCaretLeft-CI460R-A.js +0 -14
- package/site/dist/assets/PhCaretRight-D7ZS3Ls8.js +0 -14
- package/site/dist/assets/PhCaretUp-C-iIfyvO.js +0 -14
- package/site/dist/assets/PhCheck-DxQXn57r.js +0 -14
- package/site/dist/assets/PhCircleHalf-MJZeRBGF.js +0 -14
- package/site/dist/assets/PhClock-x3MS3Mwi.js +0 -14
- package/site/dist/assets/PhCompass-hYn3HhGN.js +0 -14
- package/site/dist/assets/PhCopy-CWNYcABI.js +0 -14
- package/site/dist/assets/PhCreditCard-Fy4pzwtt.js +0 -14
- package/site/dist/assets/PhCurrencyDollar-BgiaenCi.js +0 -14
- package/site/dist/assets/PhDesktop-CxrzCSv5.js +0 -14
- package/site/dist/assets/PhDeviceMobile-CsyA5Goi.js +0 -14
- package/site/dist/assets/PhDotsThree-D-k1BiYg.js +0 -14
- package/site/dist/assets/PhEnvelope-D8kzeNox.js +0 -14
- package/site/dist/assets/PhFunnelSimple-CfQs5DAW.js +0 -14
- package/site/dist/assets/PhGlobe-DvmSc9_A.js +0 -14
- package/site/dist/assets/PhIdentificationCard-CfkZm-5K.js +0 -14
- package/site/dist/assets/PhImage-Cf0J2ZfJ.js +0 -14
- package/site/dist/assets/PhInfo-Bwi51-2X.js +0 -14
- package/site/dist/assets/PhLightbulb-C4FZV7Es.js +0 -14
- package/site/dist/assets/PhMagnifyingGlass-C9u8jSCJ.js +0 -14
- package/site/dist/assets/PhPaperPlaneRight-zxQVvPLX.js +0 -14
- package/site/dist/assets/PhPlus-C4UoW-2n.js +0 -14
- package/site/dist/assets/PhPower-CFyWDmgD.js +0 -14
- package/site/dist/assets/PhPuzzlePiece-BjoNVfST.js +0 -14
- package/site/dist/assets/PhQrCode-CP3tFauY.js +0 -14
- package/site/dist/assets/PhQuestion-wOWJBd3G.js +0 -14
- package/site/dist/assets/PhQuestionMark-CV0k9C0Y.js +0 -14
- package/site/dist/assets/PhSealCheck-vIKzREuN.js +0 -14
- package/site/dist/assets/PhSignOut-CxELV-i0.js +0 -14
- package/site/dist/assets/PhSpinner-CGDmbzUd.js +0 -14
- package/site/dist/assets/PhTrash-C9PD0SAt.js +0 -14
- package/site/dist/assets/PhUser-0sWNXQeZ.js +0 -14
- package/site/dist/assets/PhVault-6JTskUcC.js +0 -14
- package/site/dist/assets/PhWarning-CoKs3gz6.js +0 -14
- package/site/dist/assets/PhWarningCircle-BXHw1fCt.js +0 -14
- package/site/dist/assets/PhX-DX0SFIqC.js +0 -14
- package/site/dist/assets/PhoneIcon-CZ47md80.js +0 -1
- package/site/dist/assets/PinInput-DbZ0b1i1-BrTXu3Km.js +0 -247
- package/site/dist/assets/PrivyPluginContext-DA-yS5vO-CY60yubk.js +0 -1
- package/site/dist/assets/QrCode-DbnZwlkH-CcMrWV5D.js +0 -22
- package/site/dist/assets/RecoveryOAuthStatusScreen-CsgtTI2x-DgeDnHOK.js +0 -1
- package/site/dist/assets/RecoveryPasswordCreateScreen-Be-qJ-LU-CvJJwLhK.js +0 -1
- package/site/dist/assets/RecoverySelectionScreen-D1iGtpmi-CADtGtSV.js +0 -7
- package/site/dist/assets/SIWXUtil-Cpiv91-M.js +0 -1
- package/site/dist/assets/Screen-D30meWsY-vEusJ7KX.js +0 -175
- package/site/dist/assets/ScreenHeader-CHmc4-Lu-BvGTLg53.js +0 -31
- package/site/dist/assets/ScreenLayout-OwaQQcxH-cfOTmyl0.js +0 -1
- package/site/dist/assets/SelectSourceAsset-CWFog6gm-DxYklZYs.js +0 -140
- package/site/dist/assets/SetAutomaticRecoveryScreen-BO_OEqAZ-oeqeo05x.js +0 -14
- package/site/dist/assets/SetWalletPasswordForm-DwCTVtAh-BxFee9UA.js +0 -11
- package/site/dist/assets/ShieldCheckIcon-eFjsosCA.js +0 -1
- package/site/dist/assets/SignRequestScreen-BHKv32KR-z8ixfIma.js +0 -26
- package/site/dist/assets/SolanaWalletConnector-C7Lqk-Wz-Bc_lvdiF.js +0 -1
- package/site/dist/assets/StackedContainer-B2vaEl56-Do5dXB8-.js +0 -24
- package/site/dist/assets/StandardSignAndSendTransactionScreen-CfhIXVtd-DudetZAc.js +0 -20
- package/site/dist/assets/Subtitle-CV-2yKE4-DV0o1av3.js +0 -13
- package/site/dist/assets/TelegramAuthScreen-UL9zLfO8-Bo3sONvf.js +0 -1
- package/site/dist/assets/Title-BnzYV3Is-C3qOPnO_.js +0 -7
- package/site/dist/assets/TodoList-DnyULl18-BvxvubbF.js +0 -36
- package/site/dist/assets/TransactionDetails-e9nesl30-WWflkOIi.js +0 -109
- package/site/dist/assets/TransactionErrorView-BDBNqA_f-CotYKcgf.js +0 -178
- package/site/dist/assets/TransferFromWalletScreen-Qvn1Yuno-sVFlWqa8.js +0 -31
- package/site/dist/assets/TransferOrBridgeLoadingScreen-Dl1I_iIz-CV2-mY19.js +0 -6
- package/site/dist/assets/TurnstileWrapper-B7sNddys-oPbuMTQt.js +0 -1
- package/site/dist/assets/UpdateEmailScreen-DVOhPV0H-D_mjSpAy.js +0 -1
- package/site/dist/assets/UpdatePhoneScreen-CXRswTNZ-6RLG0ahv.js +0 -1
- package/site/dist/assets/UserLimitReachedScreen-5we2DHn8-CaVN0bti.js +0 -1
- package/site/dist/assets/Value-DTgR824E-Bp6WGZZm.js +0 -27
- package/site/dist/assets/WalletCards-DH1rqayz-D3cOTb9x.js +0 -1
- package/site/dist/assets/WalletIcon-DOIZhb2l.js +0 -1
- package/site/dist/assets/WalletInfoCard-sq_2wgFg-bOqfl5MA.js +0 -29
- package/site/dist/assets/WalletInterstitialScreen-Sh7LfsAh-DWaVkMCA.js +0 -1
- package/site/dist/assets/WalletLink-DK5LB5Ha-DjUZvqs-.js +0 -20
- package/site/dist/assets/WalletOverflowButton-bfCnp-9T-B6P7DQXA.js +0 -1
- package/site/dist/assets/WarningBanner-ZZqCEtZK-Bc2YKZb7.js +0 -21
- package/site/dist/assets/__vite-browser-external-NciY4Vu1.js +0 -1
- package/site/dist/assets/_esm-BZP3cXTv.js +0 -1
- package/site/dist/assets/_esm-ZmzBJpEs.js +0 -6
- package/site/dist/assets/accounts-D4AXF17G.js +0 -1
- package/site/dist/assets/accounts-IkdFx9nq.js +0 -1
- package/site/dist/assets/analytics-mkkvFRju-BRBcadka.js +0 -1
- package/site/dist/assets/baseSepolia-Bn1j1Ysw.js +0 -1
- package/site/dist/assets/basic-Cz1YiCSk.js +0 -1575
- package/site/dist/assets/capitalizeFirstLetter-DmLYqXsO-DtOXx-2n.js +0 -1
- package/site/dist/assets/ccip-B1J3oTZx.js +0 -7
- package/site/dist/assets/ccip-Bd7261zy.js +0 -1
- package/site/dist/assets/ccip-D6EHKpjI.js +0 -1
- package/site/dist/assets/chain-scefkYIH.js +0 -5
- package/site/dist/assets/check-DHnllI8N.js +0 -1
- package/site/dist/assets/chevron-down-1y-r4bGO.js +0 -1
- package/site/dist/assets/circle-alert-OwxamXUX.js +0 -1
- package/site/dist/assets/circle-check-big-3sZGVC10.js +0 -1
- package/site/dist/assets/circle-x-DQjNUV9J.js +0 -1
- package/site/dist/assets/client-B-BpRtwY.js +0 -1
- package/site/dist/assets/client-BfIR1FvH.js +0 -9
- package/site/dist/assets/coinbase-DCPC2L_R-YEuIn3jh.js +0 -3
- package/site/dist/assets/copy-DMOX_yn7.js +0 -1
- package/site/dist/assets/core-GIEmxmAa.js +0 -12
- package/site/dist/assets/createLucideIcon-BsERoFTA.js +0 -1
- package/site/dist/assets/defineChain-B-SQDLTG.js +0 -1
- package/site/dist/assets/dijkstra-CY95afk4.js +0 -1
- package/site/dist/assets/dist-CoS6E-3x.js +0 -1
- package/site/dist/assets/dist-Cp6IXeJd.js +0 -1
- package/site/dist/assets/dist-CrNxmdZj.js +0 -1
- package/site/dist/assets/dist-DYGtf4F0.js +0 -16
- package/site/dist/assets/embed.worker-Cnl4VGr3.js +0 -1
- package/site/dist/assets/errors-BQ3N-RVt-CZPAWCgC.js +0 -1
- package/site/dist/assets/esm-C3DslVJx.js +0 -1
- package/site/dist/assets/esm-Ci1ogKuK.js +0 -1
- package/site/dist/assets/esm-Co94ENUV.js +0 -37
- package/site/dist/assets/esm-bb8SANZh.js +0 -1
- package/site/dist/assets/esm-n2lWo7kz.js +0 -1
- package/site/dist/assets/ethers-zTjbodk5-Cs648CnD.js +0 -1
- package/site/dist/assets/eventemitter3-Dzc_0Uq2.js +0 -1
- package/site/dist/assets/external-link-BBPG3rG7.js +0 -1
- package/site/dist/assets/farcaster-DPlSjvF5-CzBCmgyL.js +0 -1
- package/site/dist/assets/features-CuiHbgEJ.js +0 -2
- package/site/dist/assets/fingerprint-pattern-CjLtyIxB.js +0 -1
- package/site/dist/assets/floating-ui.react-DmaCfayr.js +0 -1
- package/site/dist/assets/floating-ui.react-dom-CaoMF8mP.js +0 -1
- package/site/dist/assets/formatErc20TokenAmount-BuPk9xcy-BVqOKQif.js +0 -1
- package/site/dist/assets/formatter-CVbp4SlJ.js +0 -1
- package/site/dist/assets/get-entropy-details-for-user-dHRH5Gpi-BNiOFXbK.js +0 -1
- package/site/dist/assets/getChainName-DjpPdUSc-DUyKDrnp.js +0 -1
- package/site/dist/assets/getErc20Balance-jXNpFf0N-q4bV8kQq.js +0 -1
- package/site/dist/assets/getErc20TokenInfo-BNTrzLMP-DcnTFrXN.js +0 -1
- package/site/dist/assets/getFormattedUsdFromLamports-De3U9GlO-Gx4_wxON.js +0 -1
- package/site/dist/assets/getUsdcMintAddress-BVgm9GRo-r2UnDeEy.js +0 -1
- package/site/dist/assets/guards-BIW-GiMJ-D3tWTQAR.js +0 -1
- package/site/dist/assets/hooks.module-BYZGfwDl.js +0 -1
- package/site/dist/assets/hourglass-D_GfQdJr.js +0 -1
- package/site/dist/assets/id-UqEwL2BI-CTlvRMA5.js +0 -1
- package/site/dist/assets/index-BdEw5wyl-kLbhqLbv.js +0 -1
- package/site/dist/assets/index-C2h3EneX.js +0 -8
- package/site/dist/assets/index-CWARkn2w-DxuckIFn.js +0 -61
- package/site/dist/assets/index-DvMddJcd-CNBb4VUn.js +0 -12
- package/site/dist/assets/index-YiCw0Y_x-Czl0tWfF.js +0 -436
- package/site/dist/assets/index.browser-B-i-Lj3J.js +0 -1
- package/site/dist/assets/index.browser-BMmUcykv.js +0 -1
- package/site/dist/assets/index.es-Crd0TyUS.js +0 -2
- package/site/dist/assets/index.es-DQbup1WG.js +0 -3
- package/site/dist/assets/isPaymentRequestAvailable-Bq1cemEn-Cjf3l05I.js +0 -1
- package/site/dist/assets/jsx-runtime-CndCZlyt.js +0 -1
- package/site/dist/assets/landmark-BZPqMFEf.js +0 -1
- package/site/dist/assets/lib-DGtzi2DK.js +0 -1
- package/site/dist/assets/localBatchGatewayRequest-B71J8sQ9.js +0 -29
- package/site/dist/assets/lock-DyN_c-ud.js +0 -1
- package/site/dist/assets/logger-CsXm3oIv-B0UYpNFI.js +0 -1
- package/site/dist/assets/mail-V_mcPb64.js +0 -1
- package/site/dist/assets/modal-context-CwmSeFcv-DPWNJrfK.js +0 -1
- package/site/dist/assets/native-BKj27wfc.js +0 -1
- package/site/dist/assets/ofetch.CWycOUEr-Duby3iHT.js +0 -1
- package/site/dist/assets/parseAbi-Csg-8t59.js +0 -2
- package/site/dist/assets/parseAbiParameters-BWbIMYe4.js +0 -1
- package/site/dist/assets/parseEther-CHS0GNkM.js +0 -1
- package/site/dist/assets/pkce-DXF0yKjP-7_VY-d83.js +0 -1
- package/site/dist/assets/preload-helper-CRzLMJPS.js +0 -1
- package/site/dist/assets/privy-context-81KmsBw2-DiR6-Yq8.js +0 -2
- package/site/dist/assets/property-DuZ9DLP4.js +0 -3
- package/site/dist/assets/react-BfYA1q0G.js +0 -1
- package/site/dist/assets/react-CK2HRI1t.js +0 -1
- package/site/dist/assets/react-DxGeY8B8.js +0 -1
- package/site/dist/assets/react-auth-sHnipzbS.js +0 -1
- package/site/dist/assets/react-dom-BI2Koe4o.js +0 -1
- package/site/dist/assets/reservoir-x-nGuZkT-BguVFH3D.js +0 -1
- package/site/dist/assets/roles-BDPDWrwo.js +0 -1
- package/site/dist/assets/roles-DKPW79Ca.js +0 -1
- package/site/dist/assets/rolldown-runtime-Bjp52BOI.js +0 -1
- package/site/dist/assets/safe-url-D7SRPu33-CkMedGro.js +0 -1
- package/site/dist/assets/secp256k1-BeYL8aZl.js +0 -1
- package/site/dist/assets/secp256k1-Bh4MSkhz.js +0 -1
- package/site/dist/assets/secp256k1-Ci4cqHl0.js +0 -1
- package/site/dist/assets/secp256k1-DsxXqbXv.js +0 -1
- package/site/dist/assets/secp256k1-N9RUmafO.js +0 -1
- package/site/dist/assets/serializeAuthorizationList-DGMik9Wx.js +0 -1
- package/site/dist/assets/serializeSignature-CWKpxoab.js +0 -2
- package/site/dist/assets/sha2-C6s7zZmb.js +0 -1
- package/site/dist/assets/shared-DRZUmnL5-BewE5wK8.js +0 -193
- package/site/dist/assets/shared-FM0rljBt-CxLACri_.js +0 -21
- package/site/dist/assets/shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-BkAKsRNi.js +0 -1
- package/site/dist/assets/simulateTransaction-CfuOrae4-PjA_tGjX.js +0 -1
- package/site/dist/assets/smartphone-3p8nFSTE.js +0 -1
- package/site/dist/assets/src-BBjkfi-Q.js +0 -1
- package/site/dist/assets/storage-Ufl800Ne-1qCR2JMO.js +0 -8
- package/site/dist/assets/stringify-DqUj9VzO.js +0 -20
- package/site/dist/assets/stripe.esm-DEi2D291.js +0 -2
- package/site/dist/assets/styles-BsotlekN-Aq27nZGc.js +0 -9
- package/site/dist/assets/styles-Cm9H63WO-p_ic_dxE.js +0 -92
- package/site/dist/assets/styles-DVyDvTdj-CjsWqAld.js +0 -74
- package/site/dist/assets/styles-hslXy6xG-D5QHIrJU.js +0 -164
- package/site/dist/assets/telegram-B-JqnkqZ-Dqkm4rDn.js +0 -1
- package/site/dist/assets/to-ui-error-DWe-qwS3-Bi1HUQI9.js +0 -4
- package/site/dist/assets/toViemAccount-B5iDGq1b-CdFZwv07.js +0 -2
- package/site/dist/assets/transaction-BNTP-bFm-M5tJx8vY.js +0 -1
- package/site/dist/assets/transfer-6YztDh-t-BVQkTvG-.js +0 -1
- package/site/dist/assets/transformers.web-BTyOEJ0C.js +0 -40
- package/site/dist/assets/transformers.web-CUZUFjAK.js +0 -49
- package/site/dist/assets/triangle-alert-BG3Qw-Hq.js +0 -1
- package/site/dist/assets/twitch-5IOe4sIQ-CaXHFlAu.js +0 -1
- package/site/dist/assets/types-4CuOD23i.js +0 -1
- package/site/dist/assets/use-headless-crypto-deposit-Yn-QRLB3-CQqeyhGY.js +0 -1
- package/site/dist/assets/use-unlink-wallet-BKK4_5Ur-C0xQN_Lp.js +0 -1
- package/site/dist/assets/useActiveWallet-B-yZYGc6-BkK6rFBm.js +0 -123
- package/site/dist/assets/useGetSolPrice-x7gfUIHJ-CLVXqv6I.js +0 -1
- package/site/dist/assets/useGetTokenPrice-CaoUkb79-DAXXs3rs.js +0 -1
- package/site/dist/assets/useI18n-C-5n_noF-CGpkgIVy.js +0 -1
- package/site/dist/assets/useWalletBalance-CZnP5f_f-Cfd64m4n.js +0 -1
- package/site/dist/assets/useWallets-X1ndvJ_U-CAYqg7Za.js +0 -1
- package/site/dist/assets/utils-BkR7EQjg.js +0 -1
- package/site/dist/assets/utils-DJhBNOZA.js +0 -1
- package/site/dist/assets/utils-DdckVfQr.js +0 -1
- package/site/dist/assets/w3m-modal-B4H_uiPH.js +0 -1174
- package/site/dist/assets/wallet-BNI12IYk.js +0 -1
- package/site/dist/assets/wallet-CITSaPlB.js +0 -2
- package/site/dist/assets/wallet-connect-BvJtUsDt-CVlSNIXP.js +0 -1
- package/site/dist/assets/walletconnect-registry-xxG8XLCb-BpzpBq5s.js +0 -1
- package/site/dist/assets/walletconnect-v2-3frQFwbg-CzZ6oybX.js +0 -12
- package/site/dist/assets/wui-ux-by-reown-XyHdtV1O.js +0 -1147
- package/site/dist/assets/x-gjDrY2rk.js +0 -1
- package/site/dist/index.html +0 -21
- package/site/dist/theme.css +0 -7
package/src/publish/view.js
CHANGED
|
@@ -40,6 +40,9 @@ import { dirname } from "node:path";
|
|
|
40
40
|
import { EMBED_DIM, EMBED_DTYPE, EMBED_MODEL, embedDocumentDirect, packVec, unpackVec } from "../core/embed.js";
|
|
41
41
|
import { coverage as fitCoverage } from "../market/reactions.js";
|
|
42
42
|
|
|
43
|
+
// The origin the agent card is built with; the Worker swaps in wherever it is served from.
|
|
44
|
+
// Here, not in site/worker.js: workerd refuses a Worker module exporting anything but handlers.
|
|
45
|
+
export const ORIGIN = "https://origin.westmarch.invalid";
|
|
43
46
|
export const EMBEDDER = { runtime: "transformers.js", model: EMBED_MODEL, dtype: EMBED_DTYPE };
|
|
44
47
|
const SINGULAR = ["identity", "title", "subtitle", "temporal", "spatial", "media", "thread"];
|
|
45
48
|
const MULTI = ["tags", "measures", "relations", "text"];
|
|
@@ -168,12 +171,21 @@ export async function readOnlyFangorn() {
|
|
|
168
171
|
* A build that must not touch the chain — a candidate recipe graded before it ships —
|
|
169
172
|
* runs the exact code a real one does. */
|
|
170
173
|
export function localFangorn(chain, { appId, owner }) {
|
|
171
|
-
|
|
174
|
+
// Every version handed out is kept, so repoDiff can diff any two, as the SDK diffs two roots.
|
|
175
|
+
const versions = new Map();
|
|
176
|
+
const root = (k) => { const h = `0x${createHash("sha256").update(JSON.stringify(chain[k])).digest("hex")}`; versions.set(h, structuredClone(chain[k]?.records ?? [])); return h; };
|
|
177
|
+
const repoDiff = async (from, to) => {
|
|
178
|
+
if (!versions.has(from) || !versions.has(to)) throw new Error("unknown root");
|
|
179
|
+
const [a, b] = [versions.get(from), versions.get(to)], cidOf = new Map(a.map((r) => [r.id, r.cid])), ids = new Set(b.map((r) => r.id));
|
|
180
|
+
return { puts: b.filter((r) => cidOf.get(r.id) !== r.cid), deletes: a.filter((r) => !ids.has(r.id)).map((r) => r.id),
|
|
181
|
+
superseded: a.filter((r) => !ids.has(r.id) || b.some((x) => x.id === r.id && x.cid !== r.cid)).map((r) => r.cid) };
|
|
182
|
+
};
|
|
172
183
|
return {
|
|
184
|
+
engine: { repoDiff }, reads: 0,
|
|
173
185
|
setAppId() {}, getAppId: () => appId,
|
|
174
186
|
getAppRegistry: () => ({ getAppOwner: async () => owner }),
|
|
175
187
|
appRepos: async () => Object.keys(chain).map((k) => ({ owner: k.split("/")[0], repo: k.split("/").slice(1).join("/"), root: root(k) })),
|
|
176
|
-
readRepo: async (o, repo)
|
|
188
|
+
readRepo: async function (o, repo) { this.reads++; const c = chain[`${o}/${repo}`]; return { tip: c ? root(`${o}/${repo}`) : null, contents: { records: c?.records ?? [] } }; },
|
|
177
189
|
};
|
|
178
190
|
}
|
|
179
191
|
|
|
@@ -243,11 +255,12 @@ export function r2Store(bucket, prefix = "view/") {
|
|
|
243
255
|
const readJson = async (store, p, dflt) => { const b = await store.get(p); return b ? JSON.parse(new TextDecoder().decode(b)) : dflt; };
|
|
244
256
|
const writeJson = (store, p, o) => store.put(p, JSON.stringify(o, null, 1));
|
|
245
257
|
|
|
246
|
-
/** What a domain already serves: its manifest and every row (for tombstones and coverage)
|
|
247
|
-
|
|
258
|
+
/** What a domain already serves: its manifest and every row (for tombstones and coverage), or
|
|
259
|
+
* with `only`, the rows of those shard files alone. */
|
|
260
|
+
async function loadDomain(store, dir, only = null) {
|
|
248
261
|
const manifest = await readJson(store, `${dir}/manifest`, null);
|
|
249
262
|
const rows = new Map();
|
|
250
|
-
for (const s of manifest?.shards ?? []) {
|
|
263
|
+
for (const s of (manifest?.shards ?? []).filter((x) => !only || only.includes(x.file))) {
|
|
251
264
|
const b = await store.get(`${dir}/shards/${s.file}`);
|
|
252
265
|
if (!b) throw new Error(`${dir}: shard ${s.file} is named by its manifest and missing`);
|
|
253
266
|
for (const line of gunzipSync(b).toString("utf8").split("\n")) if (line.trim()) { const r = JSON.parse(line); rows.set(r.track_id, r); }
|
|
@@ -339,21 +352,38 @@ async function retry(f, tries = 6) {
|
|
|
339
352
|
}
|
|
340
353
|
}
|
|
341
354
|
|
|
355
|
+
const CHECKPOINT = 2048; // rows embedded between saves; a killed run redoes at most this many
|
|
342
356
|
async function publishDomain({ fangorn, store, schema, schemaHash, publisher, repo, head, domain, dir, rebake, embedBatch, embedder, log, shardRows, open }) {
|
|
343
357
|
// The head the domain was built from, and the schema it was built under: neither moved,
|
|
344
358
|
// nothing to read. This is what keeps a cron run with nothing new to one read per repo.
|
|
345
359
|
const was = rebake ? null : await readJson(store, `${dir}/manifest`, null);
|
|
346
360
|
if (was && was.head === head && was.schema_hash === schemaHash) return null;
|
|
347
361
|
|
|
348
|
-
|
|
362
|
+
// The head moved from one this domain was built from: read only what changed between them (the
|
|
363
|
+
// SDK's repoDiff opens only the changed paths of the record tree), not every record again. A
|
|
364
|
+
// schema with relations links each row against all the others, so it still reads the whole repo;
|
|
365
|
+
// so does an SDK whose diff can't name the replaced versions, and a diff that fails (a force-push
|
|
366
|
+
// to a head whose blocks are gone).
|
|
367
|
+
// ponytail: relations read whole; diff their targets too when a big corpus declares one.
|
|
368
|
+
const diff = was?.head && !schema.relations?.length && fangorn.engine?.repoDiff
|
|
369
|
+
? await retry(() => fangorn.engine.repoDiff(was.head, head)).catch((e) => { log(`${domain}: diff from ${was.head} failed (${e.message}); reading it whole`); return null; })
|
|
370
|
+
: null;
|
|
371
|
+
const got = diff?.superseded ? diff.puts : (await retry(() => fangorn.readRepo(publisher, repo))).contents.records;
|
|
349
372
|
// `open`: a private app's rows are sealed on chain (x402.js's sealRow); the Worker opens them here.
|
|
350
|
-
const records = new Map(await Promise.all(
|
|
373
|
+
const records = new Map(await Promise.all(got.filter((r) => r.payload && typeof r.payload === "object")
|
|
351
374
|
.map(async (r) => [r.cid, { id: r.id, fields: { ...(await open(r.payload)), entityType: r.type } }])));
|
|
352
375
|
linkRelations(records, schema);
|
|
353
376
|
const fieldsOf = (cid) => records.get(cid).fields;
|
|
354
377
|
|
|
355
378
|
if (rebake) await store.del(dir); // old shards would stay reachable
|
|
356
|
-
|
|
379
|
+
// Append only: the diff replaced nothing, so no row already served changes, and the 50k of them
|
|
380
|
+
// are left unread. Only the shards saved since the last head (`ahead`, a killed run's checkpoints)
|
|
381
|
+
// are read, to skip what they hold. A removal, an edit, a rebake or a coverage refit reads all.
|
|
382
|
+
// Rows in `ahead` are already counted, and come back among the puts of a diff from the old head.
|
|
383
|
+
const aheadRows = (was?.shards ?? []).filter((x) => was.ahead?.includes(x.file)).reduce((n, x) => n + x.count, 0);
|
|
384
|
+
const append = !!was && !!diff?.superseded && !diff.superseded.length && !was.tombstones?.length
|
|
385
|
+
&& (was.count ?? 0) + diff.puts.length - aheadRows < COVERAGE_REFIT * (was.coverage?.fit_at ?? 0);
|
|
386
|
+
const had = await loadDomain(store, dir, append ? was.ahead ?? [] : null);
|
|
357
387
|
const made = had.manifest?.embedder ?? (had.manifest ? { runtime: "fastembed", dtype: "fp32" } : null);
|
|
358
388
|
// Same model and dtype is the same encoder, whatever ran it: q8 on CPU, CUDA and WASM agree to
|
|
359
389
|
// ~0.98-0.99 cosine, fp32 against q8 noticeably less.
|
|
@@ -364,10 +394,11 @@ async function publishDomain({ fangorn, store, schema, schemaHash, publisher, re
|
|
|
364
394
|
const dead = new Set(had.manifest?.tombstones ?? []);
|
|
365
395
|
const live = (id) => had.rows.has(id) && !dead.has(id);
|
|
366
396
|
const fresh = [...records.keys()].filter((id) => !live(id));
|
|
367
|
-
|
|
397
|
+
// From a diff, `records` holds only what changed: what is gone is what it superseded.
|
|
398
|
+
const gone = diff?.superseded ? diff.superseded.filter(live) : [...had.rows.keys()].filter((id) => live(id) && !records.has(id));
|
|
368
399
|
// A row already served whose links changed (its matter came later, or moved): new fields,
|
|
369
|
-
// the same vector, so no embedding, only a rewrite.
|
|
370
|
-
const relinked = [...had.rows.keys()].filter((id) => live(id) && records.has(id)
|
|
400
|
+
// the same vector, so no embedding, only a rewrite. Only relations relink, and they read whole.
|
|
401
|
+
const relinked = diff?.superseded ? [] : [...had.rows.keys()].filter((id) => live(id) && records.has(id)
|
|
371
402
|
&& JSON.stringify(had.rows.get(id).fields) !== JSON.stringify(fieldsOf(id)));
|
|
372
403
|
for (const id of relinked) had.rows.get(id).fields = fieldsOf(id);
|
|
373
404
|
|
|
@@ -383,6 +414,34 @@ async function publishDomain({ fangorn, store, schema, schemaHash, publisher, re
|
|
|
383
414
|
}
|
|
384
415
|
}
|
|
385
416
|
|
|
417
|
+
const manifest = had.manifest ?? { name: domain, description: "", count: 0, dim: EMBED_DIM, model: EMBED_MODEL,
|
|
418
|
+
distance: "Cosine", embedder, filter: { owner: [publisher], repo: [repo] }, shards: [], tombstones: [] };
|
|
419
|
+
// Pages and R2 serve files of any size, but a reader holds a shard whole; 52k Steam games
|
|
420
|
+
// gzipped to 28 MiB in one. ponytail: split by row count (~550 B a row gzipped).
|
|
421
|
+
const writeShard = async (all) => {
|
|
422
|
+
const files = [];
|
|
423
|
+
for (let i = 0; i < all.length; i += shardRows) {
|
|
424
|
+
const ls = all.slice(i, i + shardRows);
|
|
425
|
+
const gz = gzipSync(`${ls.join("\n")}\n`, { level: 9 });
|
|
426
|
+
const digest = sha256(gz);
|
|
427
|
+
const file = `shard-${String(manifest.shards.length).padStart(4, "0")}-${digest.slice(0, 12)}.ndjson.gz`;
|
|
428
|
+
await store.put(`${dir}/shards/${file}`, gz);
|
|
429
|
+
manifest.shards.push({ file, count: ls.length, bytes: gz.length, sha256: digest });
|
|
430
|
+
files.push(file);
|
|
431
|
+
}
|
|
432
|
+
return files;
|
|
433
|
+
};
|
|
434
|
+
// What is embedded so far, served now under the old head: a run killed later (CPU, wall time:
|
|
435
|
+
// no exception, no `finally`) loses at most CHECKPOINT rows, and the next run embeds only the rest.
|
|
436
|
+
const save = async () => {
|
|
437
|
+
manifest.ahead = [...(manifest.ahead ?? []), ...await writeShard(lines)];
|
|
438
|
+
const rows = lines.map((l) => JSON.parse(l));
|
|
439
|
+
for (const r of rows) { had.rows.set(r.track_id, r); dead.delete(r.track_id); }
|
|
440
|
+
lines.length = 0;
|
|
441
|
+
manifest.head = had.manifest?.head ?? null;
|
|
442
|
+
manifest.schema_hash = schemaHash;
|
|
443
|
+
await applySpec(store, dir, manifest, schema, had.rows, dead, rolesOf, append ? rows : null);
|
|
444
|
+
};
|
|
386
445
|
let n = 0, stopped = null;
|
|
387
446
|
const lines = [];
|
|
388
447
|
// 32 at a time: what an encoder batches (embed.js, a GPU, the Worker's AI binding).
|
|
@@ -400,39 +459,26 @@ async function publishDomain({ fangorn, store, schema, schemaHash, publisher, re
|
|
|
400
459
|
}
|
|
401
460
|
if (Math.floor((n + ids.length) / 1000) > Math.floor(n / 1000)) log(`${domain}: embedded ${n + ids.length}/${fresh.length}`);
|
|
402
461
|
n += ids.length;
|
|
462
|
+
if (lines.length >= CHECKPOINT && n < fresh.length) await save();
|
|
403
463
|
}
|
|
404
|
-
const manifest = had.manifest ?? { name: domain, description: "", count: 0, dim: EMBED_DIM, model: EMBED_MODEL,
|
|
405
|
-
distance: "Cosine", embedder, filter: { owner: [publisher], repo: [repo] }, shards: [], tombstones: [] };
|
|
406
464
|
// Unfinished: the old head stays, so the next run sees a head to catch up to and embeds only what is missing.
|
|
407
465
|
manifest.head = stopped ? (had.manifest?.head ?? null) : head;
|
|
408
466
|
manifest.schema_hash = schemaHash;
|
|
467
|
+
if (!stopped) delete manifest.ahead; // the head is taken: everything is behind it
|
|
409
468
|
if (!fresh.length && !gone.length && !relinked.length && had.manifest && !rebake) {
|
|
410
|
-
await applySpec(store, dir, manifest, schema, had.rows, dead); // a schema change alone still lands
|
|
469
|
+
await applySpec(store, dir, manifest, schema, had.rows, dead, new Map(), append ? [] : null); // a schema change alone still lands
|
|
411
470
|
return { added: 0, removed: 0 };
|
|
412
471
|
}
|
|
413
472
|
|
|
414
|
-
// Pages and R2 serve files of any size, but a reader holds a shard whole; 52k Steam games
|
|
415
|
-
// gzipped to 28 MiB in one. ponytail: split by row count (~550 B a row gzipped).
|
|
416
|
-
const writeShard = async (all) => {
|
|
417
|
-
for (let i = 0; i < all.length; i += shardRows) {
|
|
418
|
-
const ls = all.slice(i, i + shardRows);
|
|
419
|
-
const gz = gzipSync(`${ls.join("\n")}\n`, { level: 9 });
|
|
420
|
-
const digest = sha256(gz);
|
|
421
|
-
const file = `shard-${String(manifest.shards.length).padStart(4, "0")}-${digest.slice(0, 12)}.ndjson.gz`;
|
|
422
|
-
await store.put(`${dir}/shards/${file}`, gz);
|
|
423
|
-
manifest.shards.push({ file, count: ls.length, bytes: gz.length, sha256: digest });
|
|
424
|
-
}
|
|
425
|
-
};
|
|
426
473
|
if (stopped) {
|
|
427
|
-
await
|
|
428
|
-
for (const l of lines) { const r = JSON.parse(l); had.rows.set(r.track_id, r); dead.delete(r.track_id); }
|
|
429
|
-
await applySpec(store, dir, manifest, schema, had.rows, dead, rolesOf);
|
|
474
|
+
await save();
|
|
430
475
|
log(`${domain}: stopped at ${n}/${fresh.length} (${stopped.message}); the rest on the next run`);
|
|
431
476
|
return { added: n, removed: 0, partial: true };
|
|
432
477
|
}
|
|
478
|
+
const last = lines.map((l) => JSON.parse(l));
|
|
433
479
|
if (lines.length) {
|
|
434
480
|
await writeShard(lines);
|
|
435
|
-
for (const
|
|
481
|
+
for (const r of last) { had.rows.set(r.track_id, r); dead.delete(r.track_id); }
|
|
436
482
|
}
|
|
437
483
|
for (const id of gone) dead.add(id);
|
|
438
484
|
// A tombstone hides a row from readers, but its shard still serves the bytes. A record
|
|
@@ -441,6 +487,8 @@ async function publishDomain({ fangorn, store, schema, schemaHash, publisher, re
|
|
|
441
487
|
// files are deleted. No re-embedding: the vectors are already in the rows.
|
|
442
488
|
// ponytail: rewrites the whole domain on every removal; compact past a threshold if domains get big.
|
|
443
489
|
if (dead.size || relinked.length) {
|
|
490
|
+
// A compaction rewrites `had.rows` as the whole domain, which append mode never loaded.
|
|
491
|
+
if (append) throw new Error(`${domain}: append mode reached a compaction; nothing written past the new shard`);
|
|
444
492
|
for (const s of manifest.shards) await store.del(`${dir}/shards/${s.file}`);
|
|
445
493
|
manifest.shards = [];
|
|
446
494
|
for (const id of dead) had.rows.delete(id);
|
|
@@ -449,16 +497,19 @@ async function publishDomain({ fangorn, store, schema, schemaHash, publisher, re
|
|
|
449
497
|
}
|
|
450
498
|
manifest.tombstones = [...dead].sort();
|
|
451
499
|
manifest.created_at = Math.floor(Date.now() / 1000);
|
|
452
|
-
await applySpec(store, dir, manifest, schema, had.rows, dead, rolesOf);
|
|
500
|
+
await applySpec(store, dir, manifest, schema, had.rows, dead, rolesOf, append ? last : null);
|
|
453
501
|
log(`${domain}: +${fresh.length} embedded, -${gone.length} removed, ${relinked.length} relinked, ${manifest.count} live`);
|
|
454
502
|
return { added: fresh.length, removed: gone.length, ...(relinked.length ? { relinked: relinked.length } : {}) };
|
|
455
503
|
}
|
|
456
504
|
|
|
457
505
|
/** Counts, types, roles, description, presentation, coverage and the hosts its media role
|
|
458
|
-
* links to (what a Worker may show inline, see site/worker.js) from what the domain holds.
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
506
|
+
* links to (what a Worker may show inline, see site/worker.js) from what the domain holds.
|
|
507
|
+
* `added`: append mode, where `rows` is not the whole domain: fold these new rows into the
|
|
508
|
+
* manifest's totals instead of recounting. Coverage is left as fitted (publishDomain appends only
|
|
509
|
+
* while no refit is due). ponytail: hosts only grow on append; a removal recounts them. */
|
|
510
|
+
async function applySpec(store, dir, manifest, schema, rows, dead, guessed = new Map(), added = null) {
|
|
511
|
+
const liveRows = added ?? [...rows.values()].filter((r) => !dead.has(r.track_id));
|
|
512
|
+
const types = added ? Object.fromEntries((manifest.entity_types ?? []).map((e) => [e.type, e.count])) : {};
|
|
462
513
|
for (const r of liveRows) types[r.fields?.entityType] = (types[r.fields?.entityType] ?? 0) + 1;
|
|
463
514
|
const tags = Object.entries(types).sort((a, b) => b[1] - a[1]).map(([t]) => t);
|
|
464
515
|
// Compare with what is stored, not with the manifest as it arrived: publishDomain has already
|
|
@@ -466,20 +517,20 @@ async function applySpec(store, dir, manifest, schema, rows, dead, guessed = new
|
|
|
466
517
|
// the old manifest naming deleted shards.
|
|
467
518
|
const before = JSON.stringify(await readJson(store, `${dir}/manifest`, null));
|
|
468
519
|
|
|
469
|
-
manifest.count = liveRows.length;
|
|
520
|
+
manifest.count = added ? (manifest.count ?? 0) + added.length : liveRows.length;
|
|
470
521
|
manifest.entity_types = tags.map((t) => ({ type: t, count: types[t] }));
|
|
471
522
|
const spec = domainSpec(schema, tags);
|
|
472
|
-
const fields = [...new Set(liveRows.slice(0, 500).flatMap((r) => Object.keys(r.fields ?? {})))].sort();
|
|
523
|
+
const fields = [...new Set([...(added ? manifest.role_map?.fields ?? [] : []), ...liveRows.slice(0, 500).flatMap((r) => Object.keys(r.fields ?? {}))])].sort();
|
|
473
524
|
manifest.role_map = { ...(spec?.role_map ?? manifest.role_map ?? guessed.values().next().value ?? completeRoles()), fields };
|
|
474
525
|
if (spec?.description) manifest.description = spec.description;
|
|
475
526
|
if (spec && Object.keys(spec.presentation).length) manifest.presentation = spec.presentation;
|
|
476
527
|
const media = [manifest.role_map.media ?? []].flat();
|
|
477
|
-
manifest.link_hosts = [...new Set(liveRows.flatMap((r) => media.map((m) => r.fields?.[m]))
|
|
528
|
+
manifest.link_hosts = [...new Set([...(added ? manifest.link_hosts ?? [] : []), ...liveRows.flatMap((r) => media.map((m) => r.fields?.[m]))
|
|
478
529
|
.filter((u) => typeof u === "string" && u.startsWith("https://"))
|
|
479
|
-
.map((u) => { try { return new URL(u).hostname; } catch { return null; } }).filter(Boolean))].sort();
|
|
530
|
+
.map((u) => { try { return new URL(u).hostname; } catch { return null; } })].filter(Boolean))].sort();
|
|
480
531
|
|
|
481
532
|
const cov = manifest.coverage;
|
|
482
|
-
if (liveRows.length && (!cov || liveRows.length >= COVERAGE_REFIT * (cov.fit_at ?? 0))) {
|
|
533
|
+
if (!added && liveRows.length && (!cov || liveRows.length >= COVERAGE_REFIT * (cov.fit_at ?? 0))) {
|
|
483
534
|
manifest.coverage = { ...fitCoverage(liveRows.map((r) => unpackVec(r.v))), fit_at: liveRows.length };
|
|
484
535
|
}
|
|
485
536
|
if (JSON.stringify(manifest) !== before) await writeJson(store, `${dir}/manifest`, manifest);
|
|
@@ -617,6 +668,49 @@ if (typeof process !== "undefined" && import.meta.url === `file://${process.argv
|
|
|
617
668
|
eq((await publishView({ fangorn, app: APP, schema, out: big, repos: ["big"], embedBatch: capped, log: () => {} }))[bd],
|
|
618
669
|
{ added: 48, removed: 0 }, "the next run embeds only the rest");
|
|
619
670
|
eq(manifestOf(big, bd).count, 80, "and serves all of it");
|
|
671
|
+
// Killed partway (a Worker over its CPU or wall time: no exception, no return): the last
|
|
672
|
+
// checkpoint is served, and the next run embeds only what came after it.
|
|
673
|
+
chain[BIG] = { records: Array.from({ length: CHECKPOINT + 100 }, (_, i) => ({ id: `k${i}`, cid: `kill${i}`, type: "shop.item.v1", payload: { sku: `k${i}`, name: `Kept ${i}` } })) };
|
|
674
|
+
let left = CHECKPOINT + 64;
|
|
675
|
+
const dies = (ts) => (left -= ts.length) < 0 ? new Promise(() => {}) : Promise.all(ts.map(embed));
|
|
676
|
+
publishView({ fangorn, app: APP, schema, out: big, repos: ["big"], embedBatch: dies, log: () => {} });
|
|
677
|
+
for (let i = 0; i < 200 && manifestOf(big, bd).count < CHECKPOINT; i++) await new Promise((ok) => setTimeout(ok, 10));
|
|
678
|
+
eq((await publishView({ fangorn, app: APP, schema, out: big, repos: ["big"], embedBatch: capped, log: () => {} }))[bd],
|
|
679
|
+
{ added: 100, removed: 80 }, "a killed run resumes from its last checkpoint");
|
|
680
|
+
// A built domain whose head moves reads only the diff: 10 new tracks on top of thousands
|
|
681
|
+
// never read the thousands again, and a removal or an edit drops the version it replaced.
|
|
682
|
+
const whole = fangorn.reads;
|
|
683
|
+
chain[BIG].records.push(...Array.from({ length: 10 }, (_, i) => ({ id: `n${i}`, cid: `next${i}`, type: "shop.item.v1", payload: { sku: `n${i}`, name: `New ${i}` } })));
|
|
684
|
+
chain[BIG].records.splice(0, 1, { ...chain[BIG].records[0], cid: "kill0-v2", payload: { sku: "k0", name: "Kept 0, renamed" } });
|
|
685
|
+
chain[BIG].records.splice(1, 1);
|
|
686
|
+
eq([(await publishView({ fangorn, app: APP, schema, out: big, repos: ["big"], embedBatch: capped, log: () => {} }))[bd], fangorn.reads - whole],
|
|
687
|
+
[{ added: 11, removed: 2 }, 0], "a moved head reads only what changed");
|
|
688
|
+
eq(manifestOf(big, bd).count, CHECKPOINT + 100 + 10 - 1, "and serves the repo as it now stands");
|
|
689
|
+
// Only additions: the rows already served are not read at all, only a delta shard is written.
|
|
690
|
+
const disk = fsStore(big), opened = [];
|
|
691
|
+
const watched = { ...disk, get: (p) => { opened.push(p); return disk.get(p); } };
|
|
692
|
+
const n0 = manifestOf(big, bd).count, shards0 = manifestOf(big, bd).shards.length;
|
|
693
|
+
chain[BIG].records.push(...Array.from({ length: 10 }, (_, i) => ({ id: `m${i}`, cid: `more${i}`, type: "shop.item.v1", payload: { sku: `m${i}`, name: `More ${i}` } })));
|
|
694
|
+
eq((await publishView({ fangorn, app: APP, schema, store: watched, repos: ["big"], embedBatch: capped, log: () => {} }))[bd],
|
|
695
|
+
{ added: 10, removed: 0 }, "an append embeds only the new records");
|
|
696
|
+
eq(opened.filter((p) => p.includes("/shards/")), [], "and reads no shard it already served");
|
|
697
|
+
const after = manifestOf(big, bd);
|
|
698
|
+
eq([after.count, after.shards.length, after.entity_types[0].count, after.ahead], [n0 + 10, shards0 + 1, n0 + 10, undefined], "counts, types and one delta shard, with the head taken");
|
|
699
|
+
eq((await liveFields(big)).length, n0 + 10, "and every row is still served");
|
|
700
|
+
// An append killed after a checkpoint: the next run reads only that checkpoint's shard, and
|
|
701
|
+
// embeds only what came after it, never the checkpointed rows a second time.
|
|
702
|
+
const n1 = manifestOf(big, bd).count, fit = manifestOf(big, bd).coverage.fit_at, extra = CHECKPOINT + 2;
|
|
703
|
+
if (n1 + extra >= COVERAGE_REFIT * fit) throw new Error(`test setup: ${n1} + ${extra} rows would refit coverage (fit at ${fit}), not append`);
|
|
704
|
+
chain[BIG].records.push(...Array.from({ length: extra }, (_, i) => ({ id: `a${i}`, cid: `app${i}`, type: "shop.item.v1", payload: { sku: `a${i}`, name: `Appended ${i}` } })));
|
|
705
|
+
left = CHECKPOINT + 1;
|
|
706
|
+
publishView({ fangorn, app: APP, schema, out: big, repos: ["big"], embedBatch: dies, log: () => {} });
|
|
707
|
+
for (let i = 0; i < 300 && !manifestOf(big, bd).ahead; i++) await new Promise((ok) => setTimeout(ok, 10));
|
|
708
|
+
eq([manifestOf(big, bd).count, manifestOf(big, bd).ahead?.length], [n1 + CHECKPOINT, 1], "a killed append serves its checkpoint, named as ahead of the head");
|
|
709
|
+
opened.length = 0;
|
|
710
|
+
eq((await publishView({ fangorn, app: APP, schema, store: watched, repos: ["big"], embedBatch: capped, log: () => {} }))[bd],
|
|
711
|
+
{ added: 2, removed: 0 }, "and the next run embeds only what came after it");
|
|
712
|
+
eq([opened.filter((p) => p.includes("/shards/")).length, manifestOf(big, bd).count, (await liveFields(big)).length],
|
|
713
|
+
[1, n1 + extra, n1 + extra], "reading only the checkpoint's shard, and serving each row once");
|
|
620
714
|
delete chain[BIG];
|
|
621
715
|
rmSync(big, { recursive: true, force: true });
|
|
622
716
|
eq((await publishView({ fangorn, app: APP, schema, out, embed, rebake: true, log: () => {} }))[d],
|
package/template/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,D as t}from"./privy-context-81KmsBw2-DiR6-Yq8.js";import{t as n}from"./jsx-runtime-CndCZlyt.js";import{t as r}from"./createLucideIcon-BsERoFTA.js";import{n as i}from"./modal-context-CwmSeFcv-DPWNJrfK.js";import{t as a}from"./ScreenLayout-OwaQQcxH-cfOTmyl0.js";var o=r(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),s=n(),c=({title:e=`Account not found`,subtitle:t,appName:n=`this app`,ctaText:r=`Try logging in again`,onRetry:i})=>(0,s.jsx)(a,{title:e,subtitle:t||`Please try logging in again or go to ${n} to create an account.`,icon:o,iconVariant:`warning`,primaryCta:{label:r,onClick:i},watermark:!0}),l={component:()=>{let{navigate:n,setModalData:r,data:a}=i(),o=t(),{getAuthMeta:l,client:u}=e();return(0,s.jsx)(c,{appName:o?.name,onRetry:()=>{let e=l();r({...a,login:{...a?.login,...e?.disableSignup?{disableSignup:!0}:{}}}),u?.authFlow&&(u.authFlow=void 0),n(`LandingScreen`)}})}};export{l as AccountNotFoundScreen,l as default,c as AccountNotFoundScreenView};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-Bjp52BOI.js";import{D as t}from"./privy-context-81KmsBw2-DiR6-Yq8.js";import{t as n}from"./jsx-runtime-CndCZlyt.js";import{t as r}from"./react-BfYA1q0G.js";import{n as i,t as a}from"./landmark-BZPqMFEf.js";import{t as o}from"./wallet-BNI12IYk.js";import{n as s}from"./modal-context-CwmSeFcv-DPWNJrfK.js";import{c}from"./Loader-UAZqxsnw-DJEVblm1.js";import{t as l}from"./index-CWARkn2w-DxuckIFn.js";import{n as u,t as d}from"./GooglePay-B53WnudL-BGiVpB8y.js";import{n as f,r as p,t as m}from"./isPaymentRequestAvailable-Bq1cemEn-Cjf3l05I.js";import{r as h}from"./styles-DVyDvTdj-CjsWqAld.js";import{c as g,l as _,p as v}from"./styles-hslXy6xG-D5QHIrJU.js";import{l as y,y as b}from"./use-headless-crypto-deposit-Yn-QRLB3-CQqeyhGY.js";var x=n(),S=e(r(),1),C={component:()=>{let e=b(),{onUserCloseViaDialogOrKeybindRef:n}=s(),r=t(),c=(0,S.useRef)(!1),C=m(f),O=m(p),[k,A]=(0,S.useState)(!1),j=C?`APPLE_PAY`:!1===C&&O?`GOOGLE_PAY`:null,M=!0===C||!1===C&&O!==void 0,N=!e?.startFiat||M||k;(0,S.useEffect)((()=>{let e=window.setTimeout((()=>A(!0)),2e3);return()=>window.clearTimeout(e)}),[]),(0,S.useEffect)((()=>{e&&(c.current=!1)}),[e]);let P=(0,S.useRef)(null);(0,S.useEffect)((()=>{e&&!e.error&&N&&P.current!==e&&(P.current=e,e.recordRowsViewed?.({walletPay:e.startFiat?j:void 0,walletPayTimedOut:e.startFiat?!M:void 0}))}),[N,e,j,M]);let F=(0,S.useCallback)((async()=>{!c.current&&e&&(c.current=!0,y(),await e.onCancel())}),[e]);if((0,S.useEffect)((()=>(n.current=F,()=>{n.current===F&&(n.current=null)})),[F,n]),!e)return null;if(e.error)return(0,x.jsx)(g,{title:`Unable to add funds`,subtitle:e.error,showClose:!0,onClose:F,primaryCta:{label:`Close`,onClick:F}});let I=async t=>{c.current||(c.current=!0,await e.startFiat?.(t))};return(0,x.jsx)(g,{title:`Pay with`,subtitle:`Debit cards typically have higher success rates than credit cards, even with Apple Pay or Google Pay.`,showClose:!0,onClose:F,children:N?(0,x.jsxs)(h,{style:{marginTop:`1rem`},$colorScheme:r.appearance.palette.colorScheme,children:[e.startFiat&&(0,x.jsxs)(_,{onClick:()=>I(`CREDIT_DEBIT_CARD`),children:[(0,x.jsx)(T,{children:(0,x.jsx)(i,{})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Debit or credit card`}),(0,x.jsx)(D,{children:`Less than 10 minutes`})]})]}),e.startFiat&&j===`APPLE_PAY`&&(0,x.jsxs)(_,{onClick:()=>I(`APPLE_PAY`),children:[(0,x.jsx)(T,{children:(0,x.jsx)(u,{width:18,height:18})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Apple Pay`}),(0,x.jsx)(D,{children:`Less than 10 minutes`})]})]}),e.startFiat&&j===`GOOGLE_PAY`&&(0,x.jsxs)(_,{onClick:()=>I(`GOOGLE_PAY`),children:[(0,x.jsx)(T,{children:(0,x.jsx)(d,{width:18,height:18})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Google Pay`}),(0,x.jsx)(D,{children:`Less than 10 minutes`})]})]}),e.startFiat&&(0,x.jsxs)(_,{onClick:()=>I(`BANK`),children:[(0,x.jsx)(T,{children:(0,x.jsx)(a,{})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Bank account`}),(0,x.jsx)(D,{children:`1–2 days`})]})]}),e.startCrypto&&(0,x.jsxs)(_,{onClick:async()=>{c.current||(c.current=!0,await e.startCrypto?.())},children:[(0,x.jsx)(T,{children:(0,x.jsx)(o,{})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Crypto wallet or exchange`}),(0,x.jsx)(D,{children:`Instant`})]})]})]}):(0,x.jsx)(w,{children:(0,x.jsx)(l,{size:`50px`})})})}},w=c.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
justify-content: center;
|
|
4
|
-
align-items: center;
|
|
5
|
-
margin-top: 1rem;
|
|
6
|
-
min-height: 8rem;
|
|
7
|
-
`,T=c.span`
|
|
8
|
-
width: 2rem;
|
|
9
|
-
height: 2rem;
|
|
10
|
-
border-radius: var(--privy-border-radius-full);
|
|
11
|
-
background-color: var(--privy-color-background-2);
|
|
12
|
-
color: var(--privy-color-icon-muted);
|
|
13
|
-
display: flex;
|
|
14
|
-
align-items: center;
|
|
15
|
-
justify-content: center;
|
|
16
|
-
flex-shrink: 0;
|
|
17
|
-
overflow: hidden;
|
|
18
|
-
|
|
19
|
-
svg {
|
|
20
|
-
width: 1.125rem;
|
|
21
|
-
height: 1.125rem;
|
|
22
|
-
}
|
|
23
|
-
`,E=c.span`
|
|
24
|
-
display: flex;
|
|
25
|
-
flex-direction: column;
|
|
26
|
-
align-items: flex-start;
|
|
27
|
-
`,D=c.span`
|
|
28
|
-
font-size: 0.875rem;
|
|
29
|
-
line-height: 1.25rem;
|
|
30
|
-
color: var(--privy-color-foreground-3);
|
|
31
|
-
`;export{C as AddFundsSelectionScreen,C as default};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-Bjp52BOI.js";import{t}from"./jsx-runtime-CndCZlyt.js";import{t as n}from"./react-BfYA1q0G.js";import{t as r}from"./check-DHnllI8N.js";import{t as i}from"./copy-DMOX_yn7.js";import{c as a}from"./Loader-UAZqxsnw-DJEVblm1.js";import{o}from"./ModalFooter-BCuEK_nz-C_71qsaz.js";import{p as s}from"./storage-Ufl800Ne-1qCR2JMO.js";var c=t(),l=e(n(),1),u=({address:e,showCopyIcon:t,url:n,className:a})=>{let[u,m]=(0,l.useState)(!1);function h(t){t.stopPropagation(),navigator.clipboard.writeText(e).then((()=>m(!0))).catch(console.error)}return(0,l.useEffect)((()=>{if(u){let e=setTimeout((()=>m(!1)),3e3);return()=>clearTimeout(e)}}),[u]),(0,c.jsxs)(d,n?{children:[(0,c.jsx)(p,{title:e,className:a,href:`${n}/address/${e}`,target:`_blank`,children:s(e)}),t&&(0,c.jsx)(o,{onClick:h,size:`sm`,style:{gap:`0.375rem`},children:(0,c.jsxs)(c.Fragment,u?{children:[`Copied`,(0,c.jsx)(r,{size:16})]}:{children:[`Copy`,(0,c.jsx)(i,{size:16})]})})]}:{children:[(0,c.jsx)(f,{title:e,className:a,children:s(e)}),t&&(0,c.jsx)(o,{onClick:h,size:`sm`,style:{gap:`0.375rem`,fontSize:`14px`},children:(0,c.jsxs)(c.Fragment,u?{children:[`Copied`,(0,c.jsx)(r,{size:14})]}:{children:[`Copy`,(0,c.jsx)(i,{size:14})]})})]})},d=a.span`
|
|
2
|
-
display: inline-flex;
|
|
3
|
-
align-items: center;
|
|
4
|
-
gap: 0.5rem;
|
|
5
|
-
`,f=a.span`
|
|
6
|
-
font-size: 14px;
|
|
7
|
-
font-weight: 500;
|
|
8
|
-
color: var(--privy-color-foreground);
|
|
9
|
-
`,p=a.a`
|
|
10
|
-
font-size: 14px;
|
|
11
|
-
color: var(--privy-color-foreground);
|
|
12
|
-
text-decoration: none;
|
|
13
|
-
|
|
14
|
-
&:hover {
|
|
15
|
-
text-decoration: underline;
|
|
16
|
-
}
|
|
17
|
-
`;export{u as t};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-Bjp52BOI.js";import{$ as e,D as t,i as n}from"./privy-context-81KmsBw2-DiR6-Yq8.js";import{t as r}from"./jsx-runtime-CndCZlyt.js";import{t as i}from"./react-BfYA1q0G.js";import{t as a}from"./createLucideIcon-BsERoFTA.js";import{t as o}from"./external-link-BBPG3rG7.js";import{n as s}from"./modal-context-CwmSeFcv-DPWNJrfK.js";import{c}from"./Loader-UAZqxsnw-DJEVblm1.js";import{l}from"./ModalFooter-BCuEK_nz-C_71qsaz.js";import{t as u}from"./ScreenLayout-OwaQQcxH-cfOTmyl0.js";import{t as d}from"./shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-BkAKsRNi.js";var f=a(`file-check`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m9 15 2 2 4-4`,key:`1grp1n`}]]),p=r();i();var m={component:()=>{let{user:r,logout:i}=n(),{onUserCloseViaDialogOrKeybindRef:a,setModalData:o,navigate:c}=s(),l=t(),{acceptTerms:u,closePrivyModal:f,createAnalyticsEvent:m}=e(),g=e=>{e?.preventDefault(),f({shouldCallAuthOnSuccess:!1}),i()};return a.current=g,(0,p.jsx)(h,{termsAndConditionsUrl:l?.legal.termsAndConditionsUrl,privacyPolicyUrl:l?.legal.privacyPolicyUrl,onAccept:async e=>{e?.preventDefault(),await u(),r&&d(r,l.embeddedWallets)?(o({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),m({eventName:`embedded_wallet_creation_failure_logout`,payload:{error:e,screen:`AffirmativeConsentScreen`}}),i()},callAuthOnSuccessOnClose:!0}}),c(`EmbeddedWalletOnAccountCreateScreen`)):f()},onDecline:g})}},h=({termsAndConditionsUrl:e,privacyPolicyUrl:t,onAccept:n,onDecline:r,title:i=`One last step`,subtitle:a=`By signing up, you agree to our terms and privacy policy.`})=>(0,p.jsx)(u,{title:i,subtitle:a,icon:f,primaryCta:{label:`Accept`,onClick:n},secondaryCta:{label:`No thanks`,onClick:r},watermark:!0,children:(e||t)&&(0,p.jsxs)(g,{children:[e&&(0,p.jsxs)(l,{variant:`muted`,href:e,target:`_blank`,size:`lg`,style:{justifyContent:`space-between`},as:`a`,children:[`View Terms`,(0,p.jsx)(o,{width:16,height:16,strokeWidth:2.25})]}),t&&(0,p.jsxs)(l,{variant:`muted`,href:t,target:`_blank`,size:`lg`,style:{justifyContent:`space-between`},as:`a`,children:[`View Privacy Policy`,(0,p.jsx)(o,{width:16,height:16,strokeWidth:2.25})]})]})}),g=c.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
gap: 12px;
|
|
5
|
-
margin-top: var(--screen-space);
|
|
6
|
-
`;export{m as AffirmativeConsentScreen,m as default,h as AffirmativeConsentScreenView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-Bjp52BOI.js";import{D as e}from"./privy-context-81KmsBw2-DiR6-Yq8.js";import{t}from"./jsx-runtime-CndCZlyt.js";import{t as n}from"./react-BfYA1q0G.js";import{t as r}from"./lock-DyN_c-ud.js";import{n as i}from"./modal-context-CwmSeFcv-DPWNJrfK.js";import{t as a}from"./ScreenLayout-OwaQQcxH-cfOTmyl0.js";import{t as o}from"./safe-url-D7SRPu33-CkMedGro.js";var s=t();n();var c=({title:e=`You don't have access to this app`,subtitle:t=`Have you been invited?`,ctaText:n=`Try another account`,ctaLink:i,onCtaClick:c})=>(0,s.jsx)(a,{title:e,subtitle:t,icon:r,iconVariant:`warning`,primaryCta:{label:n,onClick:()=>{let e=o(i);e?window.open(e,`_blank`,`noopener,noreferrer`):c?.()}},watermark:!0}),l={component:()=>{let{navigate:t}=i(),n=e(),r=n?.allowlistConfig.errorTitle||`You don't have access to this app`,a=n?.allowlistConfig.errorDetail||`Have you been invited?`,o=n?.allowlistConfig.errorCtaText||`Try another account`,l=n?.allowlistConfig.errorCtaLink;return(0,s.jsx)(c,{title:r,subtitle:a,ctaText:o,ctaLink:l??void 0,onCtaClick:()=>{t(`LandingScreen`)}})}};export{l as AllowlistRejectionScreen,l as default,c as AllowlistRejectionScreenView};
|