@ecency/sdk 2.4.17 → 2.4.18
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/browser/{chunk-F7W5CKAC.js → chunk-2ANYOCYN.js} +2 -2
- package/dist/browser/{chunk-F7W5CKAC.js.map → chunk-2ANYOCYN.js.map} +1 -1
- package/dist/browser/chunk-36AOY64H.js +2 -0
- package/dist/browser/chunk-36AOY64H.js.map +1 -0
- package/dist/browser/{chunk-IS3RG6IP.js → chunk-3OUVABTI.js} +2 -2
- package/dist/browser/{chunk-IS3RG6IP.js.map → chunk-3OUVABTI.js.map} +1 -1
- package/dist/browser/chunk-73J64EEQ.js +2 -0
- package/dist/browser/{chunk-FOHLJPTH.js.map → chunk-73J64EEQ.js.map} +1 -1
- package/dist/browser/chunk-7B2TRW3Y.js +2 -0
- package/dist/browser/chunk-7B2TRW3Y.js.map +1 -0
- package/dist/browser/chunk-BY3CXHIK.js +2 -0
- package/dist/browser/{chunk-KZ7ESL64.js.map → chunk-BY3CXHIK.js.map} +1 -1
- package/dist/browser/{chunk-JVYBP7BH.js → chunk-EHTCN4X5.js} +2 -2
- package/dist/browser/{chunk-JVYBP7BH.js.map → chunk-EHTCN4X5.js.map} +1 -1
- package/dist/browser/{chunk-L66OOKXI.js → chunk-EO6TGAAL.js} +2 -2
- package/dist/browser/{chunk-L66OOKXI.js.map → chunk-EO6TGAAL.js.map} +1 -1
- package/dist/browser/chunk-EOQ6ZEQ6.js +2 -0
- package/dist/browser/chunk-EOQ6ZEQ6.js.map +1 -0
- package/dist/browser/{chunk-ZLI2P5QI.js → chunk-G7UK7OAA.js} +2 -2
- package/dist/browser/{chunk-ZLI2P5QI.js.map → chunk-G7UK7OAA.js.map} +1 -1
- package/dist/browser/{chunk-3FR56QMW.js → chunk-H34MRPJG.js} +2 -2
- package/dist/browser/{chunk-3FR56QMW.js.map → chunk-H34MRPJG.js.map} +1 -1
- package/dist/browser/{chunk-7BFIUZCF.js → chunk-HS2D6O7J.js} +2 -2
- package/dist/browser/{chunk-7BFIUZCF.js.map → chunk-HS2D6O7J.js.map} +1 -1
- package/dist/browser/{chunk-6UYPRFW2.js → chunk-ISYWZWG7.js} +2 -2
- package/dist/browser/{chunk-6UYPRFW2.js.map → chunk-ISYWZWG7.js.map} +1 -1
- package/dist/browser/{chunk-SVWEBXN3.js → chunk-IWGTII7L.js} +2 -2
- package/dist/browser/{chunk-SVWEBXN3.js.map → chunk-IWGTII7L.js.map} +1 -1
- package/dist/browser/chunk-JLH3XJNT.js +2 -0
- package/dist/browser/{chunk-WZIYV3BG.js.map → chunk-JLH3XJNT.js.map} +1 -1
- package/dist/browser/{chunk-4WACFTD7.js → chunk-K27EKN2G.js} +2 -2
- package/dist/browser/{chunk-4WACFTD7.js.map → chunk-K27EKN2G.js.map} +1 -1
- package/dist/browser/{chunk-ETEMHLPK.js → chunk-K6ZAPF3O.js} +2 -2
- package/dist/browser/{chunk-ETEMHLPK.js.map → chunk-K6ZAPF3O.js.map} +1 -1
- package/dist/browser/{chunk-WIAN2AEG.js → chunk-LQMNAGAQ.js} +2 -2
- package/dist/browser/{chunk-WIAN2AEG.js.map → chunk-LQMNAGAQ.js.map} +1 -1
- package/dist/browser/chunk-NJV3ON3L.js +2 -0
- package/dist/browser/chunk-NJV3ON3L.js.map +1 -0
- package/dist/browser/{chunk-BHWDUBPI.js → chunk-OO7TNSDO.js} +2 -2
- package/dist/browser/{chunk-BHWDUBPI.js.map → chunk-OO7TNSDO.js.map} +1 -1
- package/dist/browser/chunk-PAE3HIPT.js +2 -0
- package/dist/browser/{chunk-QO2TFHO2.js.map → chunk-PAE3HIPT.js.map} +1 -1
- package/dist/browser/chunk-QDXJMILO.js +2 -0
- package/dist/browser/chunk-QDXJMILO.js.map +1 -0
- package/dist/browser/{chunk-BRMWBBBX.js → chunk-R6ITDRKU.js} +2 -2
- package/dist/browser/{chunk-BRMWBBBX.js.map → chunk-R6ITDRKU.js.map} +1 -1
- package/dist/browser/chunk-RYNXUPBF.js +2 -0
- package/dist/browser/chunk-RYNXUPBF.js.map +1 -0
- package/dist/browser/{chunk-SVROBXWO.js → chunk-UGOUX6UI.js} +2 -2
- package/dist/browser/{chunk-SVROBXWO.js.map → chunk-UGOUX6UI.js.map} +1 -1
- package/dist/browser/chunk-W6H2FORU.js +2 -0
- package/dist/browser/{chunk-7QYBZV6Y.js.map → chunk-W6H2FORU.js.map} +1 -1
- package/dist/browser/chunk-WV4Y4D4E.js +2 -0
- package/dist/browser/chunk-WV4Y4D4E.js.map +1 -0
- package/dist/browser/{chunk-NMCYCY5I.js → chunk-XIL25HFC.js} +2 -2
- package/dist/browser/{chunk-NMCYCY5I.js.map → chunk-XIL25HFC.js.map} +1 -1
- package/dist/browser/chunk-ZJEINVJL.js +2 -0
- package/dist/browser/{chunk-LZ7UKF5Q.js.map → chunk-ZJEINVJL.js.map} +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/modules/accounts/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/bookmarks/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/bookmarks/use-account-bookmark-add.js +1 -1
- package/dist/browser/modules/accounts/mutations/bookmarks/use-account-bookmark-delete.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorite-tags/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorite-tags/requests.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorite-tags/use-favorite-tag-add.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorite-tags/use-favorite-tag-delete.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorites/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorites/use-account-favorite-add.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorites/use-account-favorite-delete.js +1 -1
- package/dist/browser/modules/accounts/mutations/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-relations-update.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-revoke-key.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-revoke-posting.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-update-key-auths.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-update-password.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-update-recovery.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-update.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-claim-account.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-create-account.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-follow.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-grant-posting-permission.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-unfollow.js +1 -1
- package/dist/browser/modules/accounts/queries/check-favorite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/check-username-wallets-pending-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-full-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-pending-recovery-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-recoveries-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-reputations-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-subscriptions-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-vote-history-infinite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-accounts-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-aggregated-balance-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-balance-history-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-bookmarks-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-bots-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-favorite-tag-check-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-favorite-tags-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-favorites-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-follow-count-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-followers-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-following-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-friends-infinite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-muted-users-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-pro-members-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-profiles-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-referrals-infinite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-referrals-stats-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-relationship-between-accounts-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-search-friends-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-transactions-infinite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/index.js +1 -1
- package/dist/browser/modules/accounts/queries/lookup-accounts-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/search-accounts-by-username-query-options.js +1 -1
- package/dist/browser/modules/accounts/types/index.js +1 -1
- package/dist/browser/modules/accounts/utils/account-power.js +1 -1
- package/dist/browser/modules/accounts/utils/index.js +1 -1
- package/dist/browser/modules/ai/index.js +1 -1
- package/dist/browser/modules/ai/mutations/index.js +1 -1
- package/dist/browser/modules/ai/mutations/use-ai-assist.js +1 -1
- package/dist/browser/modules/ai/mutations/use-ai-transcribe.js +1 -1
- package/dist/browser/modules/ai/mutations/use-generate-image.js +1 -1
- package/dist/browser/modules/ai/queries/get-ai-assist-price-query-options.js +1 -1
- package/dist/browser/modules/ai/queries/get-ai-generate-price-query-options.js +1 -1
- package/dist/browser/modules/ai/queries/get-ai-images-query-options.js +1 -1
- package/dist/browser/modules/ai/queries/get-ai-transcribe-price-query-options.js +1 -1
- package/dist/browser/modules/ai/queries/index.js +1 -1
- package/dist/browser/modules/analytics/index.js +1 -1
- package/dist/browser/modules/analytics/mutations/index.js +1 -1
- package/dist/browser/modules/analytics/mutations/use-record-activity.js +1 -1
- package/dist/browser/modules/analytics/queries/get-discover-curation-query-options.js +1 -1
- package/dist/browser/modules/analytics/queries/get-discover-leaderboard-query-options.js +1 -1
- package/dist/browser/modules/analytics/queries/get-page-stats-query-options.js +1 -1
- package/dist/browser/modules/analytics/queries/index.js +1 -1
- package/dist/browser/modules/auth/index.js +1 -1
- package/dist/browser/modules/auth/requests.js +1 -1
- package/dist/browser/modules/bad-actors/index.js +1 -1
- package/dist/browser/modules/bad-actors/queries/get-bad-actors-query-options.js +1 -1
- package/dist/browser/modules/bad-actors/queries/index.js +1 -1
- package/dist/browser/modules/bridge/index.js +1 -1
- package/dist/browser/modules/bridge/requests.js +1 -1
- package/dist/browser/modules/communities/index.js +1 -1
- package/dist/browser/modules/communities/mutations/index.js +1 -1
- package/dist/browser/modules/communities/mutations/use-mute-post.js +1 -1
- package/dist/browser/modules/communities/mutations/use-pin-post.js +1 -1
- package/dist/browser/modules/communities/mutations/use-register-community-rewards.js +1 -1
- package/dist/browser/modules/communities/mutations/use-set-community-role.js +1 -1
- package/dist/browser/modules/communities/mutations/use-subscribe-community.js +1 -1
- package/dist/browser/modules/communities/mutations/use-unsubscribe-community.js +1 -1
- package/dist/browser/modules/communities/mutations/use-update-community.js +1 -1
- package/dist/browser/modules/communities/queries/get-account-notifications-infinite-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-communities-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-community-context-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-community-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-community-subscribers-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-rewarded-communities-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/index.js +1 -1
- package/dist/browser/modules/core/index.js +1 -1
- package/dist/browser/modules/core/queries/get-chain-properties-query-options.js +1 -1
- package/dist/browser/modules/core/queries/get-dynamic-props-query-options.js +1 -1
- package/dist/browser/modules/core/queries/get-reward-fund-query-options.js +1 -1
- package/dist/browser/modules/core/queries/index.js +1 -1
- package/dist/browser/modules/core/utils/index.js +1 -1
- package/dist/browser/modules/curation/dmca.js +1 -1
- package/dist/browser/modules/curation/index.js +1 -1
- package/dist/browser/modules/curation/mutations/index.js +1 -1
- package/dist/browser/modules/curation/mutations/use-curation-recommend.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-application-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-applications-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-feed-infinite-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-post-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-recommendations-infinite-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-recommender-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-roster-admin-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-roster-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-status-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/index.js +1 -1
- package/dist/browser/modules/curation/requests.js +1 -1
- package/dist/browser/modules/games/index.js +1 -1
- package/dist/browser/modules/games/mutations/game-claim.js +1 -1
- package/dist/browser/modules/games/mutations/index.js +1 -1
- package/dist/browser/modules/games/queries/game-status-check-query-options.js +1 -1
- package/dist/browser/modules/games/queries/index.js +1 -1
- package/dist/browser/modules/games/types/index.js +1 -1
- package/dist/browser/modules/hive-engine/index.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-all-hive-engine-tokens-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-balances-with-usd-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-general-info-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-metrics-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-transactions-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-balances-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-market-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-metadata-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-unclaimed-rewards-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/index.js +1 -1
- package/dist/browser/modules/hive-engine/requests.js +1 -1
- package/dist/browser/modules/hive-engine/types/index.js +1 -1
- package/dist/browser/modules/integrations/3speak/index.js +1 -1
- package/dist/browser/modules/integrations/3speak/queries/get-account-token-query-options.js +1 -1
- package/dist/browser/modules/integrations/3speak/queries/get-account-videos-query-options.js +1 -1
- package/dist/browser/modules/integrations/3speak/queries/index.js +1 -1
- package/dist/browser/modules/integrations/hiveposh/index.js +1 -1
- package/dist/browser/modules/integrations/hiveposh/queries/get-hiveposh-links-query-options.js +1 -1
- package/dist/browser/modules/integrations/hiveposh/queries/index.js +1 -1
- package/dist/browser/modules/integrations/index.js +1 -1
- package/dist/browser/modules/integrations/plausible/index.js +1 -1
- package/dist/browser/modules/integrations/plausible/queries/get-stats-query-options.js +1 -1
- package/dist/browser/modules/integrations/plausible/queries/index.js +1 -1
- package/dist/browser/modules/market/index.js +1 -1
- package/dist/browser/modules/market/mutations/index.js +1 -1
- package/dist/browser/modules/market/mutations/use-limit-order-cancel.js +1 -1
- package/dist/browser/modules/market/mutations/use-limit-order-create.js +1 -1
- package/dist/browser/modules/market/queries/get-market-data-query-options.js +1 -1
- package/dist/browser/modules/market/queries/index.js +1 -1
- package/dist/browser/modules/market/requests.js +1 -1
- package/dist/browser/modules/market/types/index.js +1 -1
- package/dist/browser/modules/newsletter/api.js +1 -1
- package/dist/browser/modules/newsletter/index.js +1 -1
- package/dist/browser/modules/newsletter/mutations/index.js +1 -1
- package/dist/browser/modules/newsletter/mutations/use-leave-digest.js +1 -1
- package/dist/browser/modules/newsletter/mutations/use-send-newsletter-issue.js +1 -1
- package/dist/browser/modules/newsletter/mutations/use-subscribe-digest.js +1 -1
- package/dist/browser/modules/newsletter/mutations/use-unsubscribe-all-digests.js +1 -1
- package/dist/browser/modules/newsletter/queries/get-digest-subscriptions-query-options.js +1 -1
- package/dist/browser/modules/newsletter/queries/get-newsletter-issues-query-options.js +1 -1
- package/dist/browser/modules/newsletter/queries/get-newsletter-posts-query-options.js +1 -1
- package/dist/browser/modules/newsletter/queries/get-newsletter-sender-query-options.js +1 -1
- package/dist/browser/modules/newsletter/queries/index.js +1 -1
- package/dist/browser/modules/notifications/enums/index.js +1 -1
- package/dist/browser/modules/notifications/index.js +1 -1
- package/dist/browser/modules/notifications/mutations/index.js +1 -1
- package/dist/browser/modules/notifications/mutations/use-mark-notifications-read.js +1 -1
- package/dist/browser/modules/notifications/mutations/use-set-last-read.js +1 -1
- package/dist/browser/modules/notifications/queries/get-announcements-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/get-notifications-infinite-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/get-notifications-settings-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/get-notifications-unread-count-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/get-spotlights-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/index.js +1 -1
- package/dist/browser/modules/operations/builders/index.js +1 -1
- package/dist/browser/modules/operations/index.js +1 -1
- package/dist/browser/modules/points/index.js +1 -1
- package/dist/browser/modules/points/mutations/index.js +1 -1
- package/dist/browser/modules/points/mutations/use-claim-points.js +1 -1
- package/dist/browser/modules/points/queries/get-points-asset-general-info-query-options.js +1 -1
- package/dist/browser/modules/points/queries/get-points-query-options.js +1 -1
- package/dist/browser/modules/points/queries/index.js +1 -1
- package/dist/browser/modules/polls/index.js +1 -1
- package/dist/browser/modules/polls/mutations/index.js +1 -1
- package/dist/browser/modules/polls/mutations/use-poll-vote.js +1 -1
- package/dist/browser/modules/polls/queries/get-poll-query-options.js +1 -1
- package/dist/browser/modules/polls/queries/index.js +1 -1
- package/dist/browser/modules/posts/cache/discussions-cache-utils.js +1 -1
- package/dist/browser/modules/posts/cache/entries-cache-management.js +1 -1
- package/dist/browser/modules/posts/cache/index.js +1 -1
- package/dist/browser/modules/posts/index.js +1 -1
- package/dist/browser/modules/posts/mutations/add-fragment.js +1 -1
- package/dist/browser/modules/posts/mutations/edit-fragment.js +1 -1
- package/dist/browser/modules/posts/mutations/index.js +1 -1
- package/dist/browser/modules/posts/mutations/remove-fragment.js +1 -1
- package/dist/browser/modules/posts/mutations/use-add-draft.js +1 -1
- package/dist/browser/modules/posts/mutations/use-add-image.js +1 -1
- package/dist/browser/modules/posts/mutations/use-add-schedule.js +1 -1
- package/dist/browser/modules/posts/mutations/use-comment.js +1 -1
- package/dist/browser/modules/posts/mutations/use-cross-post.js +1 -1
- package/dist/browser/modules/posts/mutations/use-delete-comment.js +1 -1
- package/dist/browser/modules/posts/mutations/use-delete-draft.js +1 -1
- package/dist/browser/modules/posts/mutations/use-delete-image.js +1 -1
- package/dist/browser/modules/posts/mutations/use-delete-schedule.js +1 -1
- package/dist/browser/modules/posts/mutations/use-move-schedule.js +1 -1
- package/dist/browser/modules/posts/mutations/use-promote.js +1 -1
- package/dist/browser/modules/posts/mutations/use-reblog.js +1 -1
- package/dist/browser/modules/posts/mutations/use-update-draft.js +1 -1
- package/dist/browser/modules/posts/mutations/use-update-reply.js +1 -1
- package/dist/browser/modules/posts/mutations/use-upload-image.js +1 -1
- package/dist/browser/modules/posts/mutations/use-vote.js +1 -1
- package/dist/browser/modules/posts/queries/get-account-posts-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-comment-history-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-content-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-content-replies-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-deleted-entry-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-discussions-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-drafts-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-entry-active-votes-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-fragments-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-images-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-normalize-post-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-post-header-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-post-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-post-tips-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-posts-ranked-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-promoted-posts-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-reblogged-by-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-reblogs-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-schedules-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-shorts-feed-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-trending-tags-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-trending-tags-with-stats-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-user-post-vote-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-by-account-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-by-host-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-by-tag-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-feed-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-following-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-trending-authors-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-trending-tags-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/index.js +1 -1
- package/dist/browser/modules/posts/types/index.js +1 -1
- package/dist/browser/modules/posts/utils/filter-dmca-entries.js +1 -1
- package/dist/browser/modules/posts/utils/waves-helpers.js +1 -1
- package/dist/browser/modules/private-api/index.js +1 -1
- package/dist/browser/modules/private-api/requests.js +1 -1
- package/dist/browser/modules/promotions/index.js +1 -1
- package/dist/browser/modules/promotions/mutations/index.js +1 -1
- package/dist/browser/modules/promotions/mutations/use-boost-plus.js +1 -1
- package/dist/browser/modules/promotions/mutations/use-rc-delegation.js +1 -1
- package/dist/browser/modules/promotions/queries/get-boost-plus-account-prices-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/get-boost-plus-prices-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/get-promote-price-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/get-rc-delegation-active-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/get-rc-delegation-prices-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/index.js +1 -1
- package/dist/browser/modules/proposals/index.js +1 -1
- package/dist/browser/modules/proposals/mutations/index.js +1 -1
- package/dist/browser/modules/proposals/mutations/use-proposal-create.js +1 -1
- package/dist/browser/modules/proposals/mutations/use-proposal-vote.js +1 -1
- package/dist/browser/modules/proposals/queries/get-proposal-votes-query-options.js +1 -1
- package/dist/browser/modules/proposals/queries/index.js +1 -1
- package/dist/browser/modules/quests/index.js +1 -1
- package/dist/browser/modules/quests/mutations/buy-streak-freeze.js +1 -1
- package/dist/browser/modules/quests/mutations/index.js +1 -1
- package/dist/browser/modules/quests/queries/get-quests-query-options.js +1 -1
- package/dist/browser/modules/quests/queries/index.js +1 -1
- package/dist/browser/modules/resource-credits/index.js +1 -1
- package/dist/browser/modules/resource-credits/queries/get-rc-resource-params-query-options.js +1 -1
- package/dist/browser/modules/resource-credits/queries/index.js +1 -1
- package/dist/browser/modules/resource-credits/utils/estimate-rc-precheck.js +1 -1
- package/dist/browser/modules/resource-credits/utils/index.js +1 -1
- package/dist/browser/modules/search/dmca.js +2 -0
- package/dist/browser/modules/search/dmca.js.map +1 -0
- package/dist/browser/modules/search/index.js +1 -1
- package/dist/browser/modules/search/parse-json-response.js +1 -1
- package/dist/browser/modules/search/queries/get-search-account-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-search-api-infinite-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-search-path-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-search-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-search-topics-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-similar-entries-query-options.js +1 -1
- package/dist/browser/modules/search/queries/index.js +1 -1
- package/dist/browser/modules/search/requests.js +1 -1
- package/dist/browser/modules/support/index.js +1 -1
- package/dist/browser/modules/support/mutations/index.js +1 -1
- package/dist/browser/modules/support/mutations/update-support-settings.js +1 -1
- package/dist/browser/modules/support/queries/get-support-settings-query-options.js +1 -1
- package/dist/browser/modules/support/queries/index.js +1 -1
- package/dist/browser/modules/wallet/index.js +1 -1
- package/dist/browser/modules/wallet/mutations/index.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-claim-engine-rewards.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-claim-interest.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-claim-rewards.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-convert.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-delegate-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-delegate-rc.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-delegate-vesting-shares.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-engine-market-order.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-set-withdraw-vesting-route.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-stake-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-from-savings.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-point.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-to-savings.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-to-vesting.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-undelegate-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-unstake-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-wallet-operation.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-withdraw-vesting.js +1 -1
- package/dist/browser/modules/wallet/queries/get-account-wallet-asset-info-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hbd-asset-general-info-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hbd-asset-transactions-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-asset-general-info-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-asset-transactions-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-power-asset-general-info-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-power-asset-transactions-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-power-delegatings-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-incoming-rc-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-portfolio-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-received-vesting-shares-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/index.js +1 -1
- package/dist/browser/modules/wallet/types/index.js +1 -1
- package/dist/browser/modules/witnesses/index.js +1 -1
- package/dist/browser/modules/witnesses/mutations/index.js +1 -1
- package/dist/browser/modules/witnesses/mutations/use-witness-proxy.js +1 -1
- package/dist/browser/modules/witnesses/mutations/use-witness-vote.js +1 -1
- package/dist/browser/modules/witnesses/queries/get-witnesses-query-options.js +1 -1
- package/dist/browser/modules/witnesses/queries/index.js +1 -1
- package/dist/node/index.cjs +3 -3
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.mjs +3 -3
- package/dist/node/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/browser/chunk-7B5CJV66.js +0 -2
- package/dist/browser/chunk-7B5CJV66.js.map +0 -1
- package/dist/browser/chunk-7QYBZV6Y.js +0 -2
- package/dist/browser/chunk-A2ZUZQJW.js +0 -2
- package/dist/browser/chunk-A2ZUZQJW.js.map +0 -1
- package/dist/browser/chunk-FOHLJPTH.js +0 -2
- package/dist/browser/chunk-KZ7ESL64.js +0 -2
- package/dist/browser/chunk-LZ7UKF5Q.js +0 -2
- package/dist/browser/chunk-QO2TFHO2.js +0 -2
- package/dist/browser/chunk-RXGIT5EC.js +0 -2
- package/dist/browser/chunk-RXGIT5EC.js.map +0 -1
- package/dist/browser/chunk-UWERF3NL.js +0 -2
- package/dist/browser/chunk-UWERF3NL.js.map +0 -1
- package/dist/browser/chunk-WTTXOAV3.js +0 -2
- package/dist/browser/chunk-WTTXOAV3.js.map +0 -1
- package/dist/browser/chunk-WZIYV3BG.js +0 -2
- package/dist/browser/chunk-ZPE5HNBG.js +0 -2
- package/dist/browser/chunk-ZPE5HNBG.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {b}from'./chunk-36AOY64H.js';import {c}from'./chunk-Q567KEFE.js';import {j}from'./chunk-UB5YHSMC.js';function o(n,t,r){return j(`bridge.${n}`,t,void 0,void 0,r)}async function y(n,t,r,e){let{json_metadata:i}=n;if(i?.original_author&&i?.original_permlink&&i.tags?.[0]==="cross-post")try{let s=await m(i.original_author,i.original_permlink,t,r,e);return s?{...n,original_entry:s,num:r}:n}catch{return n}return {...n,num:r}}async function f(n,t,r){let e=n.map(l),i=await Promise.all(e.map(s=>y(s,t,void 0,r)));return b(i)}async function P(n,t="",r="",e=20,i="",s="",u){let a=await o("get_ranked_posts",{sort:n,start_author:t,start_permlink:r,limit:e,tag:i,observer:s},u);return Array.isArray(a)?f(a,s,u):(a!=null&&console.warn(`[SDK] get_ranked_posts returned ${typeof a} instead of an array for sort=${n}; treating as no results.`),null)}async function E(n,t,r="",e="",i=20,s="",u){if(c.dmcaAccounts.includes(t))return [];let a=await o("get_account_posts",{sort:n,account:t,start_author:r,start_permlink:e,limit:i,observer:s},u);return Array.isArray(a)?f(a,s,u):(a!=null&&console.warn(`[SDK] get_account_posts returned ${typeof a} instead of an array for account=${t}, sort=${n}; treating as no results.`),null)}function l(n){let t={...n,active_votes:Array.isArray(n.active_votes)?[...n.active_votes]:[],beneficiaries:Array.isArray(n.beneficiaries)?[...n.beneficiaries]:[],blacklists:Array.isArray(n.blacklists)?[...n.blacklists]:[],replies:Array.isArray(n.replies)?[...n.replies]:[],stats:n.stats?{...n.stats}:null},r=["author","title","body","created","category","permlink","url","updated"];for(let e of r)t[e]==null&&(t[e]="");return t.author_reputation==null&&(t.author_reputation=0),t.children==null&&(t.children=0),t.depth==null&&(t.depth=0),t.net_rshares==null&&(t.net_rshares=0),t.payout==null&&(t.payout=0),t.percent_hbd==null&&(t.percent_hbd=0),t.stats||(t.stats={flag_weight:0,gray:false,hide:false,total_votes:0}),t.author_payout_value==null&&(t.author_payout_value="0.000 HBD"),t.curator_payout_value==null&&(t.curator_payout_value="0.000 HBD"),t.max_accepted_payout==null&&(t.max_accepted_payout="1000000.000 HBD"),t.payout_at==null&&(t.payout_at=""),t.pending_payout_value==null&&(t.pending_payout_value="0.000 HBD"),t.promoted==null&&(t.promoted="0.000 HBD"),t.is_paidout==null&&(t.is_paidout=false),t}async function m(n="",t="",r="",e,i){let s=await o("get_post",{author:n,permlink:t,observer:r},i);if(s){let u=l(s),a=await y(u,r,e,i);return b(a)}}async function A(n="",t=""){let r=await o("get_post_header",{author:n,permlink:t});return r&&l(r)}async function h(n,t,r){let e=await o("get_discussion",{author:n,permlink:t,observer:r||n});if(e){let i={};for(let[s,u]of Object.entries(e))i[s]=b(l(u));return i}return e}async function v(n,t=""){return o("get_community",{name:n,observer:t})}async function w(n="",t=100,r,e="rank",i=""){return o("list_communities",{last:n,limit:t,query:r,sort:e,observer:i})}async function x(n){let t=await o("normalize_post",{post:n});return t&&l(t)}async function S(n){return o("list_all_subscriptions",{account:n})}async function k(n){return o("list_subscribers",{community:n})}async function R(n,t){return o("get_relationship_between_accounts",[n,t])}async function C(n,t){return o("get_profiles",{accounts:n,observer:t})}export{o as a,y as b,P as c,E as d,m as e,A as f,h as g,v as h,w as i,x as j,S as k,k as l,R as m,C as n};//# sourceMappingURL=chunk-2ANYOCYN.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-2ANYOCYN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/bridge/requests.ts"],"names":["bridgeApiCall","endpoint","params","signal","callRPC","resolvePost","post","observer","num","json","resp","getPost","resolvePosts","posts","validatedPosts","validateEntry","resolved","p","filterDmcaEntry","getPostsRanked","sort","start_author","start_permlink","limit","tag","getAccountPosts","account","CONFIG","entry","newEntry","requiredStringProps","prop","author","permlink","validatedEntry","getPostHeader","getDiscussion","validatedResp","key","getCommunity","name","getCommunities","last","query","normalizePost","getSubscriptions","getSubscribers","community","getRelationshipBetweenAccounts","follower","following","getProfiles","accounts"],"mappings":"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","file":"chunk-F7W5CKAC.js","sourcesContent":["import { CONFIG } from \"@/modules/core\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\nimport { AccountRelationship, Profile } from \"@/modules/accounts/types\";\nimport { Community } from \"@/modules/communities/types/community\";\nimport { Subscription } from \"@/modules/communities/types/subscription\";\nimport { Entry } from \"@/modules/posts/types\";\nimport { filterDmcaEntry } from \"@/modules/posts/utils/filter-dmca-entries\";\n\ntype BridgeParams = Record<string, unknown> | unknown[];\n\nexport function bridgeApiCall<T>(endpoint: string, params: BridgeParams, signal?: AbortSignal): Promise<T> {\n return callRPC(`bridge.${endpoint}`, params, undefined, undefined, signal) as Promise<T>;\n}\n\nexport async function resolvePost(\n post: Entry,\n observer: string,\n num?: number,\n signal?: AbortSignal\n): Promise<Entry> {\n const { json_metadata: json } = post;\n\n if (json?.original_author && json?.original_permlink && json.tags?.[0] === \"cross-post\") {\n try {\n const resp = await getPost(\n json.original_author,\n json.original_permlink,\n observer,\n num,\n signal\n );\n if (resp) {\n return {\n ...post,\n original_entry: resp,\n num,\n };\n }\n return post;\n } catch {\n return post;\n }\n }\n\n return { ...post, num };\n}\n\nasync function resolvePosts(posts: Entry[], observer: string, signal?: AbortSignal): Promise<Entry[]> {\n const validatedPosts = posts.map(validateEntry);\n const resolved = await Promise.all(validatedPosts.map((p) => resolvePost(p, observer, undefined, signal)));\n return filterDmcaEntry(resolved) as Entry[];\n}\n\nexport async function getPostsRanked(\n sort: string,\n start_author: string = \"\",\n start_permlink: string = \"\",\n limit: number = 20,\n tag: string = \"\",\n observer: string = \"\",\n signal?: AbortSignal\n): Promise<Entry[] | null> {\n const resp = await bridgeApiCall<Entry[] | null>(\"get_ranked_posts\", {\n sort,\n start_author,\n start_permlink,\n limit,\n tag,\n observer,\n }, signal);\n\n if (Array.isArray(resp)) {\n return resolvePosts(resp, observer, signal);\n }\n\n if (resp != null) {\n console.warn(\n `[SDK] get_ranked_posts returned ${typeof resp} instead of an array for sort=${sort}; treating as no results.`\n );\n }\n\n return null;\n}\n\nexport async function getAccountPosts(\n sort: string,\n account: string,\n start_author: string = \"\",\n start_permlink: string = \"\",\n limit: number = 20,\n observer: string = \"\",\n signal?: AbortSignal\n): Promise<Entry[] | null> {\n if (CONFIG.dmcaAccounts.includes(account)) {\n return [];\n }\n\n const resp = await bridgeApiCall<Entry[] | null>(\"get_account_posts\", {\n sort,\n account,\n start_author,\n start_permlink,\n limit,\n observer,\n }, signal);\n\n if (Array.isArray(resp)) {\n return resolvePosts(resp, observer, signal);\n }\n\n if (resp != null) {\n console.warn(\n `[SDK] get_account_posts returned ${typeof resp} instead of an array for account=${account}, sort=${sort}; treating as no results.`\n );\n }\n\n return null;\n}\n\n/**\n * Validates that an Entry object has required properties with non-null values.\n */\nfunction validateEntry(entry: Entry): Entry {\n const newEntry: Entry = {\n ...entry,\n active_votes: Array.isArray(entry.active_votes) ? [...entry.active_votes] : [],\n beneficiaries: Array.isArray(entry.beneficiaries) ? [...entry.beneficiaries] : [],\n blacklists: Array.isArray(entry.blacklists) ? [...entry.blacklists] : [],\n replies: Array.isArray(entry.replies) ? [...entry.replies] : [],\n stats: entry.stats ? { ...entry.stats } : null,\n };\n\n const requiredStringProps: (keyof Entry)[] = [\n \"author\",\n \"title\",\n \"body\",\n \"created\",\n \"category\",\n \"permlink\",\n \"url\",\n \"updated\",\n ];\n\n for (const prop of requiredStringProps) {\n if (newEntry[prop] == null) {\n (newEntry as any)[prop] = \"\";\n }\n }\n\n if (newEntry.author_reputation == null) {\n newEntry.author_reputation = 0;\n }\n if (newEntry.children == null) {\n newEntry.children = 0;\n }\n if (newEntry.depth == null) {\n newEntry.depth = 0;\n }\n if (newEntry.net_rshares == null) {\n newEntry.net_rshares = 0;\n }\n if (newEntry.payout == null) {\n newEntry.payout = 0;\n }\n if (newEntry.percent_hbd == null) {\n newEntry.percent_hbd = 0;\n }\n\n if (!newEntry.stats) {\n newEntry.stats = {\n flag_weight: 0,\n gray: false,\n hide: false,\n total_votes: 0,\n };\n }\n\n if (newEntry.author_payout_value == null) {\n newEntry.author_payout_value = \"0.000 HBD\";\n }\n if (newEntry.curator_payout_value == null) {\n newEntry.curator_payout_value = \"0.000 HBD\";\n }\n if (newEntry.max_accepted_payout == null) {\n newEntry.max_accepted_payout = \"1000000.000 HBD\";\n }\n if (newEntry.payout_at == null) {\n newEntry.payout_at = \"\";\n }\n if (newEntry.pending_payout_value == null) {\n newEntry.pending_payout_value = \"0.000 HBD\";\n }\n if (newEntry.promoted == null) {\n newEntry.promoted = \"0.000 HBD\";\n }\n\n if (newEntry.is_paidout == null) {\n newEntry.is_paidout = false;\n }\n\n return newEntry;\n}\n\nexport async function getPost(\n author: string = \"\",\n permlink: string = \"\",\n observer: string = \"\",\n num?: number,\n signal?: AbortSignal\n): Promise<Entry | undefined> {\n const resp = await bridgeApiCall<Entry | null>(\"get_post\", {\n author,\n permlink,\n observer,\n }, signal);\n\n if (resp) {\n const validatedEntry = validateEntry(resp);\n const post = await resolvePost(validatedEntry, observer, num, signal);\n return filterDmcaEntry(post) as Entry;\n }\n\n return undefined;\n}\n\nexport async function getPostHeader(\n author: string = \"\",\n permlink: string = \"\"\n): Promise<Entry | null> {\n const resp = await bridgeApiCall<Entry | null>(\"get_post_header\", {\n author,\n permlink,\n });\n return resp ? validateEntry(resp) : resp;\n}\n\nexport async function getDiscussion(\n author: string,\n permlink: string,\n observer?: string\n): Promise<Record<string, Entry> | null> {\n const resp = await bridgeApiCall<Record<string, Entry> | null>(\"get_discussion\", {\n author,\n permlink,\n observer: observer || author,\n });\n\n if (resp) {\n const validatedResp: Record<string, Entry> = {};\n for (const [key, entry] of Object.entries(resp)) {\n // Filtered as well as validated: a thread is served by .discussion.json\n // and rendered under every post, and a takedown covers a comment the\n // same way it covers the post it hangs under (#1862).\n validatedResp[key] = filterDmcaEntry(validateEntry(entry)) as Entry;\n }\n return validatedResp;\n }\n return resp;\n}\n\nexport async function getCommunity(\n name: string,\n observer: string | undefined = \"\"\n): Promise<Community | null> {\n return bridgeApiCall<Community | null>(\"get_community\", { name, observer });\n}\n\nexport async function getCommunities(\n last: string = \"\",\n limit: number = 100,\n query?: string | null,\n sort: string = \"rank\",\n observer: string = \"\"\n): Promise<Community[] | null> {\n return bridgeApiCall<Community[] | null>(\"list_communities\", {\n last,\n limit,\n query,\n sort,\n observer,\n });\n}\n\nexport async function normalizePost(post: unknown): Promise<Entry | null> {\n const resp = await bridgeApiCall<Entry | null>(\"normalize_post\", { post });\n return resp ? validateEntry(resp) : resp;\n}\n\nexport async function getSubscriptions(account: string): Promise<Subscription[] | null> {\n return bridgeApiCall<Subscription[] | null>(\"list_all_subscriptions\", { account });\n}\n\nexport async function getSubscribers(community: string): Promise<Subscription[] | null> {\n return bridgeApiCall<Subscription[] | null>(\"list_subscribers\", { community });\n}\n\nexport async function getRelationshipBetweenAccounts(\n follower: string,\n following: string\n): Promise<AccountRelationship | null> {\n return bridgeApiCall<AccountRelationship | null>(\"get_relationship_between_accounts\", [\n follower,\n following,\n ]);\n}\n\nexport async function getProfiles(\n accounts: string[],\n observer?: string\n): Promise<Profile[]> {\n return bridgeApiCall<Profile[]>(\"get_profiles\", { accounts, observer });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/modules/bridge/requests.ts"],"names":["bridgeApiCall","endpoint","params","signal","callRPC","resolvePost","post","observer","num","json","resp","getPost","resolvePosts","posts","validatedPosts","validateEntry","resolved","p","filterDmcaEntry","getPostsRanked","sort","start_author","start_permlink","limit","tag","getAccountPosts","account","CONFIG","entry","newEntry","requiredStringProps","prop","author","permlink","validatedEntry","getPostHeader","getDiscussion","validatedResp","key","getCommunity","name","getCommunities","last","query","normalizePost","getSubscriptions","getSubscribers","community","getRelationshipBetweenAccounts","follower","following","getProfiles","accounts"],"mappings":"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","file":"chunk-2ANYOCYN.js","sourcesContent":["import { CONFIG } from \"@/modules/core\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\nimport { AccountRelationship, Profile } from \"@/modules/accounts/types\";\nimport { Community } from \"@/modules/communities/types/community\";\nimport { Subscription } from \"@/modules/communities/types/subscription\";\nimport { Entry } from \"@/modules/posts/types\";\nimport { filterDmcaEntry } from \"@/modules/posts/utils/filter-dmca-entries\";\n\ntype BridgeParams = Record<string, unknown> | unknown[];\n\nexport function bridgeApiCall<T>(endpoint: string, params: BridgeParams, signal?: AbortSignal): Promise<T> {\n return callRPC(`bridge.${endpoint}`, params, undefined, undefined, signal) as Promise<T>;\n}\n\nexport async function resolvePost(\n post: Entry,\n observer: string,\n num?: number,\n signal?: AbortSignal\n): Promise<Entry> {\n const { json_metadata: json } = post;\n\n if (json?.original_author && json?.original_permlink && json.tags?.[0] === \"cross-post\") {\n try {\n const resp = await getPost(\n json.original_author,\n json.original_permlink,\n observer,\n num,\n signal\n );\n if (resp) {\n return {\n ...post,\n original_entry: resp,\n num,\n };\n }\n return post;\n } catch {\n return post;\n }\n }\n\n return { ...post, num };\n}\n\nasync function resolvePosts(posts: Entry[], observer: string, signal?: AbortSignal): Promise<Entry[]> {\n const validatedPosts = posts.map(validateEntry);\n const resolved = await Promise.all(validatedPosts.map((p) => resolvePost(p, observer, undefined, signal)));\n return filterDmcaEntry(resolved) as Entry[];\n}\n\nexport async function getPostsRanked(\n sort: string,\n start_author: string = \"\",\n start_permlink: string = \"\",\n limit: number = 20,\n tag: string = \"\",\n observer: string = \"\",\n signal?: AbortSignal\n): Promise<Entry[] | null> {\n const resp = await bridgeApiCall<Entry[] | null>(\"get_ranked_posts\", {\n sort,\n start_author,\n start_permlink,\n limit,\n tag,\n observer,\n }, signal);\n\n if (Array.isArray(resp)) {\n return resolvePosts(resp, observer, signal);\n }\n\n if (resp != null) {\n console.warn(\n `[SDK] get_ranked_posts returned ${typeof resp} instead of an array for sort=${sort}; treating as no results.`\n );\n }\n\n return null;\n}\n\nexport async function getAccountPosts(\n sort: string,\n account: string,\n start_author: string = \"\",\n start_permlink: string = \"\",\n limit: number = 20,\n observer: string = \"\",\n signal?: AbortSignal\n): Promise<Entry[] | null> {\n if (CONFIG.dmcaAccounts.includes(account)) {\n return [];\n }\n\n const resp = await bridgeApiCall<Entry[] | null>(\"get_account_posts\", {\n sort,\n account,\n start_author,\n start_permlink,\n limit,\n observer,\n }, signal);\n\n if (Array.isArray(resp)) {\n return resolvePosts(resp, observer, signal);\n }\n\n if (resp != null) {\n console.warn(\n `[SDK] get_account_posts returned ${typeof resp} instead of an array for account=${account}, sort=${sort}; treating as no results.`\n );\n }\n\n return null;\n}\n\n/**\n * Validates that an Entry object has required properties with non-null values.\n */\nfunction validateEntry(entry: Entry): Entry {\n const newEntry: Entry = {\n ...entry,\n active_votes: Array.isArray(entry.active_votes) ? [...entry.active_votes] : [],\n beneficiaries: Array.isArray(entry.beneficiaries) ? [...entry.beneficiaries] : [],\n blacklists: Array.isArray(entry.blacklists) ? [...entry.blacklists] : [],\n replies: Array.isArray(entry.replies) ? [...entry.replies] : [],\n stats: entry.stats ? { ...entry.stats } : null,\n };\n\n const requiredStringProps: (keyof Entry)[] = [\n \"author\",\n \"title\",\n \"body\",\n \"created\",\n \"category\",\n \"permlink\",\n \"url\",\n \"updated\",\n ];\n\n for (const prop of requiredStringProps) {\n if (newEntry[prop] == null) {\n (newEntry as any)[prop] = \"\";\n }\n }\n\n if (newEntry.author_reputation == null) {\n newEntry.author_reputation = 0;\n }\n if (newEntry.children == null) {\n newEntry.children = 0;\n }\n if (newEntry.depth == null) {\n newEntry.depth = 0;\n }\n if (newEntry.net_rshares == null) {\n newEntry.net_rshares = 0;\n }\n if (newEntry.payout == null) {\n newEntry.payout = 0;\n }\n if (newEntry.percent_hbd == null) {\n newEntry.percent_hbd = 0;\n }\n\n if (!newEntry.stats) {\n newEntry.stats = {\n flag_weight: 0,\n gray: false,\n hide: false,\n total_votes: 0,\n };\n }\n\n if (newEntry.author_payout_value == null) {\n newEntry.author_payout_value = \"0.000 HBD\";\n }\n if (newEntry.curator_payout_value == null) {\n newEntry.curator_payout_value = \"0.000 HBD\";\n }\n if (newEntry.max_accepted_payout == null) {\n newEntry.max_accepted_payout = \"1000000.000 HBD\";\n }\n if (newEntry.payout_at == null) {\n newEntry.payout_at = \"\";\n }\n if (newEntry.pending_payout_value == null) {\n newEntry.pending_payout_value = \"0.000 HBD\";\n }\n if (newEntry.promoted == null) {\n newEntry.promoted = \"0.000 HBD\";\n }\n\n if (newEntry.is_paidout == null) {\n newEntry.is_paidout = false;\n }\n\n return newEntry;\n}\n\nexport async function getPost(\n author: string = \"\",\n permlink: string = \"\",\n observer: string = \"\",\n num?: number,\n signal?: AbortSignal\n): Promise<Entry | undefined> {\n const resp = await bridgeApiCall<Entry | null>(\"get_post\", {\n author,\n permlink,\n observer,\n }, signal);\n\n if (resp) {\n const validatedEntry = validateEntry(resp);\n const post = await resolvePost(validatedEntry, observer, num, signal);\n return filterDmcaEntry(post) as Entry;\n }\n\n return undefined;\n}\n\nexport async function getPostHeader(\n author: string = \"\",\n permlink: string = \"\"\n): Promise<Entry | null> {\n const resp = await bridgeApiCall<Entry | null>(\"get_post_header\", {\n author,\n permlink,\n });\n return resp ? validateEntry(resp) : resp;\n}\n\nexport async function getDiscussion(\n author: string,\n permlink: string,\n observer?: string\n): Promise<Record<string, Entry> | null> {\n const resp = await bridgeApiCall<Record<string, Entry> | null>(\"get_discussion\", {\n author,\n permlink,\n observer: observer || author,\n });\n\n if (resp) {\n const validatedResp: Record<string, Entry> = {};\n for (const [key, entry] of Object.entries(resp)) {\n // Filtered as well as validated: a thread is served by .discussion.json\n // and rendered under every post, and a takedown covers a comment the\n // same way it covers the post it hangs under (#1862).\n validatedResp[key] = filterDmcaEntry(validateEntry(entry)) as Entry;\n }\n return validatedResp;\n }\n return resp;\n}\n\nexport async function getCommunity(\n name: string,\n observer: string | undefined = \"\"\n): Promise<Community | null> {\n return bridgeApiCall<Community | null>(\"get_community\", { name, observer });\n}\n\nexport async function getCommunities(\n last: string = \"\",\n limit: number = 100,\n query?: string | null,\n sort: string = \"rank\",\n observer: string = \"\"\n): Promise<Community[] | null> {\n return bridgeApiCall<Community[] | null>(\"list_communities\", {\n last,\n limit,\n query,\n sort,\n observer,\n });\n}\n\nexport async function normalizePost(post: unknown): Promise<Entry | null> {\n const resp = await bridgeApiCall<Entry | null>(\"normalize_post\", { post });\n return resp ? validateEntry(resp) : resp;\n}\n\nexport async function getSubscriptions(account: string): Promise<Subscription[] | null> {\n return bridgeApiCall<Subscription[] | null>(\"list_all_subscriptions\", { account });\n}\n\nexport async function getSubscribers(community: string): Promise<Subscription[] | null> {\n return bridgeApiCall<Subscription[] | null>(\"list_subscribers\", { community });\n}\n\nexport async function getRelationshipBetweenAccounts(\n follower: string,\n following: string\n): Promise<AccountRelationship | null> {\n return bridgeApiCall<AccountRelationship | null>(\"get_relationship_between_accounts\", [\n follower,\n following,\n ]);\n}\n\nexport async function getProfiles(\n accounts: string[],\n observer?: string\n): Promise<Profile[]> {\n return bridgeApiCall<Profile[]>(\"get_profiles\", { accounts, observer });\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {c}from'./chunk-Q567KEFE.js';var a="This post is not available due to a copyright/fraudulent claim.";function l(n){return Array.isArray(n)?n.map(t=>e(t)):e(n)}function e(n){if(!n)return n;let t=`@${n.author}/${n.permlink}`;return c.dmcaPatterns.includes(t)||c.dmcaPatternRegexes.some(i=>i.test(t))?{...n,body:a,title:"",json_metadata:{},original_entry:void 0}:n}export{a,l as b};//# sourceMappingURL=chunk-36AOY64H.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-36AOY64H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/utils/filter-dmca-entries.ts"],"names":["DMCA_NOTICE_BODY","filterDmcaEntry","entryOrEntries","entry","applyFilter","entryPath","CONFIG","regex"],"mappings":"oCAIO,IAAMA,CAAAA,CAAmB,kEAUzB,SAASC,CAAAA,CAAgBC,EAAwF,CACtH,OAAI,KAAA,CAAM,OAAA,CAAQA,CAAc,CAAA,CAEvBA,CAAAA,CAAe,GAAA,CAAKC,GAAUC,CAAAA,CAAYD,CAAK,CAAC,CAAA,CAElDC,CAAAA,CAAYF,CAAc,CACnC,CAEA,SAASE,CAAAA,CAAYD,CAAAA,CAA2D,CAC9E,GAAI,CAACA,CAAAA,CAAO,OAAOA,CAAAA,CAEnB,IAAME,CAAAA,CAAY,CAAA,CAAA,EAAIF,CAAAA,CAAM,MAAM,CAAA,CAAA,EAAIA,CAAAA,CAAM,QAAQ,CAAA,CAAA,CAKpD,OAHEG,CAAAA,CAAO,YAAA,CAAa,QAAA,CAASD,CAAS,CAAA,EACtCC,CAAAA,CAAO,kBAAA,CAAmB,IAAA,CAAMC,GAAUA,CAAAA,CAAM,IAAA,CAAKF,CAAS,CAAC,CAAA,CAGxD,CACL,GAAGF,CAAAA,CACH,KAAMH,CAAAA,CACN,KAAA,CAAO,EAAA,CAWP,aAAA,CAAe,EAAC,CAOhB,cAAA,CAAgB,MAClB,EAGKG,CACT","file":"chunk-36AOY64H.js","sourcesContent":["import { CONFIG } from \"@/modules/core\";\nimport { Entry } from \"../types\";\n\n/** What a listed post shows in place of its body (the search mask reuses it). */\nexport const DMCA_NOTICE_BODY = \"This post is not available due to a copyright/fraudulent claim.\";\n\n/**\n * Filters and censors entries that match DMCA patterns\n * @param entry - Single entry or array of entries to filter\n * @returns Filtered entry/entries with DMCA content censored.\n * Note: Can return null/undefined if input is falsy - callers should guard against this.\n */\nexport function filterDmcaEntry(entry: Entry): Entry | null | undefined;\nexport function filterDmcaEntry(entries: Entry[]): Entry[];\nexport function filterDmcaEntry(entryOrEntries: Entry | Entry[] | null | undefined): Entry | Entry[] | null | undefined {\n if (Array.isArray(entryOrEntries)) {\n // Array elements are non-null Entries, so applyFilter never returns nullish here.\n return entryOrEntries.map((entry) => applyFilter(entry)) as Entry[];\n }\n return applyFilter(entryOrEntries);\n}\n\nfunction applyFilter(entry: Entry | null | undefined): Entry | null | undefined {\n if (!entry) return entry;\n\n const entryPath = `@${entry.author}/${entry.permlink}`;\n const isDmca =\n CONFIG.dmcaPatterns.includes(entryPath) ||\n CONFIG.dmcaPatternRegexes.some((regex) => regex.test(entryPath));\n\n if (isDmca) {\n return {\n ...entry,\n body: DMCA_NOTICE_BODY,\n title: \"\",\n // Blanked with them, because a CARD never reads the body: the summary is\n // `json_metadata.description` when the author set one, and the image is\n // `json_metadata.thumbnails`/`image` before anything the body contains.\n // Clearing body and title alone still served the original summary and\n // cover through /api/oembed and the entry page's own og:/twitter: tags\n // (both via buildEntryCardFields), and the whole metadata object through\n // `.json`. The RSS feeds and the `.md` summary were never affected: both\n // read the body string, and `.md` takes only `tags` and `app` from here.\n // The same three fields the curation mask blanks, for the same reason\n // (modules/curation/dmca.ts).\n json_metadata: {},\n // A cross-post renders what it QUOTES, not its own body: the feed card\n // and the entry page both read `original_entry` and fall back to the\n // wrapper only when it is absent. So a listed cross-post kept serving\n // the quoted post's title, summary, cover and body straight through the\n // takedown. The quoted post is untouched at its own URL; what this\n // removes is the listed path's rendering of it.\n original_entry: undefined,\n };\n }\n\n return entry;\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-RP2MYKXX.js';import {a as a$2}from'./chunk-FAIL5473.js';import {a as a$3}from'./chunk-BTBLTGAP.js';import {a as a$4}from'./chunk-XCEKWUQP.js';import {a as a$6}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-RP2MYKXX.js';import {a as a$2}from'./chunk-FAIL5473.js';import {a as a$3}from'./chunk-BTBLTGAP.js';import {a as a$4}from'./chunk-XCEKWUQP.js';import {a as a$6}from'./chunk-UGOUX6UI.js';import {a as a$1}from'./chunk-JIFT2BF5.js';import {a as a$5}from'./chunk-XKRGZQK2.js';import {b as b$1}from'./chunk-KJJ4Q6HG.js';import {b}from'./chunk-ZRBTHYIY.js';import {queryOptions}from'@tanstack/react-query';function T(o,r,u={refetch:false}){let i=b(),s=u.currency??"usd",l=async t=>(u.refetch?await i.fetchQuery(t):await i.prefetchQuery(t),i.getQueryData(t.queryKey)),p=async t=>{if(!t||s==="usd")return t;try{let e=await b$1(s);return {...t,price:t.price*e}}catch(e){return console.warn(`Failed to convert price from USD to ${s}:`,e),t}},O=a(o,s,true),P=async()=>{try{let e=(await i.fetchQuery(O)).wallets.find(a=>a.symbol.toUpperCase()===r.toUpperCase());if(!e)return;let n=[];if(e.liquid!==void 0&&e.liquid!==null&&n.push({name:"liquid",balance:e.liquid}),e.staked!==void 0&&e.staked!==null&&e.staked>0&&n.push({name:"staked",balance:e.staked}),e.savings!==void 0&&e.savings!==null&&e.savings>0&&n.push({name:"savings",balance:e.savings}),e.extraData&&Array.isArray(e.extraData))for(let a of e.extraData){if(!a||typeof a!="object")continue;let c=a.dataKey,y=a.value;if(typeof y=="string"){let d=y.replace(/,/g,"").match(/[+-]?\s*(\d+(?:\.\d+)?)/);if(d){let f=Math.abs(Number.parseFloat(d[1]));c==="delegated_hive_power"?n.push({name:"outgoing_delegations",balance:f}):c==="received_hive_power"?n.push({name:"incoming_delegations",balance:f}):c==="powering_down_hive_power"&&n.push({name:"pending_power_down",balance:f});}}}return {name:e.symbol,title:e.name,price:e.fiatRate,accountBalance:e.balance,apr:e.apr?.toString(),layer:e.layer,pendingRewards:e.pendingRewards,parts:n}}catch{return}};return queryOptions({queryKey:["ecency-wallets","asset-info",o,r,s],queryFn:async()=>{let t=await P();if(t&&t.price>0)return t;let e;if(r==="HIVE")e=await l(a$1(o));else if(r==="HP")e=await l(a$2(o));else if(r==="HBD")e=await l(a$3(o));else if(r==="POINTS")e=await l(a$4(o));else if((await i.ensureQueryData(a$5(o))).some(a=>a.symbol===r))e=await l(a$6(o,r));else {if(t)return t;throw new Error(`[SDK][Wallet] \u2013 unrecognized asset "${r}"`)}if(t&&e&&e.price>0){let n=await p(e);return {...t,price:n.price}}return await p(e)}})}export{T as a};//# sourceMappingURL=chunk-3OUVABTI.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-3OUVABTI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/wallet/queries/get-account-wallet-asset-info-query-options.ts"],"names":["getAccountWalletAssetInfoQueryOptions","username","asset","options","queryClient","getQueryClient","currency","fetchQuery","qo","convertPriceToUserCurrency","assetInfo","conversionRate","getCurrencyRate","error","portfolioQuery","getPortfolioQueryOptions","getPortfolioAssetInfo","assetItem","item","parts","extraItem","dataKey","value","match","numValue","queryOptions","portfolioAssetInfo","getHiveAssetGeneralInfoQueryOptions","getHivePowerAssetGeneralInfoQueryOptions","getHbdAssetGeneralInfoQueryOptions","getPointsAssetGeneralInfoQueryOptions","getHiveEngineTokensBalancesQueryOptions","balance","getHiveEngineTokenGeneralInfoQueryOptions","converted"],"mappings":"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","file":"chunk-IS3RG6IP.js","sourcesContent":["import { getQueryClient } from \"@/modules/core\";\nimport { getCurrencyRate } from \"@/modules/market\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport type { GeneralAssetInfo } from \"../types\";\nimport { getHiveAssetGeneralInfoQueryOptions } from \"./get-hive-asset-general-info-query-options\";\nimport { getHbdAssetGeneralInfoQueryOptions } from \"./get-hbd-asset-general-info-query-options\";\nimport { getHivePowerAssetGeneralInfoQueryOptions } from \"./get-hive-power-asset-general-info-query-options\";\nimport { getHiveEngineTokensBalancesQueryOptions } from \"@/modules/hive-engine/queries\";\nimport { getHiveEngineTokenGeneralInfoQueryOptions } from \"@/modules/hive-engine/queries\";\nimport { getPointsAssetGeneralInfoQueryOptions } from \"@/modules/points/queries\";\nimport {\n getPortfolioQueryOptions,\n type PortfolioResponse,\n type PortfolioWalletItem,\n} from \"./get-portfolio-query-options\";\n\ninterface Options {\n refetch?: boolean;\n currency?: string;\n}\n\nexport function getAccountWalletAssetInfoQueryOptions(\n username: string,\n asset: string,\n options: Options = { refetch: false }\n) {\n const queryClient = getQueryClient();\n const currency = options.currency ?? \"usd\";\n\n const fetchQuery = async (qo: any) => {\n if (options.refetch) {\n await queryClient.fetchQuery(qo);\n } else {\n await queryClient.prefetchQuery(qo);\n }\n return queryClient.getQueryData<GeneralAssetInfo>(qo.queryKey);\n };\n\n const convertPriceToUserCurrency = async (\n assetInfo: GeneralAssetInfo | undefined\n ): Promise<GeneralAssetInfo | undefined> => {\n if (!assetInfo || currency === \"usd\") {\n return assetInfo;\n }\n\n try {\n const conversionRate = await getCurrencyRate(currency);\n return {\n ...assetInfo,\n price: assetInfo.price * conversionRate,\n };\n } catch (error) {\n console.warn(`Failed to convert price from USD to ${currency}:`, error);\n return assetInfo;\n }\n };\n\n const portfolioQuery = getPortfolioQueryOptions(username, currency, true);\n\n const getPortfolioAssetInfo = async () => {\n try {\n const portfolio: PortfolioResponse = await queryClient.fetchQuery(portfolioQuery);\n const assetItem = portfolio.wallets.find(\n (item: PortfolioWalletItem) =>\n item.symbol.toUpperCase() === asset.toUpperCase()\n );\n\n if (!assetItem) return undefined;\n\n const parts: Array<{ name: string; balance: number }> = [];\n\n if (assetItem.liquid !== undefined && assetItem.liquid !== null) {\n parts.push({ name: \"liquid\", balance: assetItem.liquid });\n }\n\n if (assetItem.staked !== undefined && assetItem.staked !== null && assetItem.staked > 0) {\n parts.push({ name: \"staked\", balance: assetItem.staked });\n }\n\n if (assetItem.savings !== undefined && assetItem.savings !== null && assetItem.savings > 0) {\n parts.push({ name: \"savings\", balance: assetItem.savings });\n }\n\n if (assetItem.extraData && Array.isArray(assetItem.extraData)) {\n for (const extraItem of assetItem.extraData) {\n if (!extraItem || typeof extraItem !== \"object\") continue;\n\n const dataKey = extraItem.dataKey;\n const value = extraItem.value;\n\n if (typeof value === \"string\") {\n const cleanValue = value.replace(/,/g, \"\");\n const match = cleanValue.match(/[+-]?\\s*(\\d+(?:\\.\\d+)?)/);\n if (match) {\n const numValue = Math.abs(Number.parseFloat(match[1]));\n\n if (dataKey === \"delegated_hive_power\") {\n parts.push({ name: \"outgoing_delegations\", balance: numValue });\n } else if (dataKey === \"received_hive_power\") {\n parts.push({ name: \"incoming_delegations\", balance: numValue });\n } else if (dataKey === \"powering_down_hive_power\") {\n parts.push({ name: \"pending_power_down\", balance: numValue });\n }\n }\n }\n }\n }\n\n return {\n name: assetItem.symbol,\n title: assetItem.name,\n price: assetItem.fiatRate,\n accountBalance: assetItem.balance,\n apr: assetItem.apr?.toString(),\n layer: assetItem.layer,\n pendingRewards: assetItem.pendingRewards,\n parts,\n } as GeneralAssetInfo;\n } catch {\n return undefined;\n }\n };\n\n return queryOptions({\n queryKey: [\"ecency-wallets\", \"asset-info\", username, asset, currency],\n queryFn: async () => {\n const portfolioAssetInfo = await getPortfolioAssetInfo();\n\n if (portfolioAssetInfo && portfolioAssetInfo.price > 0) {\n return portfolioAssetInfo;\n }\n\n let assetInfo: GeneralAssetInfo | undefined;\n\n if (asset === \"HIVE\") {\n assetInfo = await fetchQuery(getHiveAssetGeneralInfoQueryOptions(username));\n } else if (asset === \"HP\") {\n assetInfo = await fetchQuery(getHivePowerAssetGeneralInfoQueryOptions(username));\n } else if (asset === \"HBD\") {\n assetInfo = await fetchQuery(getHbdAssetGeneralInfoQueryOptions(username));\n } else if (asset === \"POINTS\") {\n assetInfo = await fetchQuery(getPointsAssetGeneralInfoQueryOptions(username));\n } else {\n // Check if it's a Hive Engine token\n const balances = await queryClient.ensureQueryData(\n getHiveEngineTokensBalancesQueryOptions(username)\n );\n\n if (balances.some((balance) => balance.symbol === asset)) {\n assetInfo = await fetchQuery(\n getHiveEngineTokenGeneralInfoQueryOptions(username, asset)\n );\n } else if (portfolioAssetInfo) {\n // Unknown asset but portfolio has data — use it as-is\n return portfolioAssetInfo;\n } else {\n throw new Error(\n `[SDK][Wallet] – unrecognized asset \"${asset}\"`\n );\n }\n }\n\n // If portfolio had rich data (parts, balance) but zero price,\n // merge the fallback price into the portfolio data\n if (portfolioAssetInfo && assetInfo && assetInfo.price > 0) {\n const converted = await convertPriceToUserCurrency(assetInfo);\n return {\n ...portfolioAssetInfo,\n price: converted!.price,\n };\n }\n\n return await convertPriceToUserCurrency(assetInfo);\n },\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/modules/wallet/queries/get-account-wallet-asset-info-query-options.ts"],"names":["getAccountWalletAssetInfoQueryOptions","username","asset","options","queryClient","getQueryClient","currency","fetchQuery","qo","convertPriceToUserCurrency","assetInfo","conversionRate","getCurrencyRate","error","portfolioQuery","getPortfolioQueryOptions","getPortfolioAssetInfo","assetItem","item","parts","extraItem","dataKey","value","match","numValue","queryOptions","portfolioAssetInfo","getHiveAssetGeneralInfoQueryOptions","getHivePowerAssetGeneralInfoQueryOptions","getHbdAssetGeneralInfoQueryOptions","getPointsAssetGeneralInfoQueryOptions","getHiveEngineTokensBalancesQueryOptions","balance","getHiveEngineTokenGeneralInfoQueryOptions","converted"],"mappings":"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","file":"chunk-3OUVABTI.js","sourcesContent":["import { getQueryClient } from \"@/modules/core\";\nimport { getCurrencyRate } from \"@/modules/market\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport type { GeneralAssetInfo } from \"../types\";\nimport { getHiveAssetGeneralInfoQueryOptions } from \"./get-hive-asset-general-info-query-options\";\nimport { getHbdAssetGeneralInfoQueryOptions } from \"./get-hbd-asset-general-info-query-options\";\nimport { getHivePowerAssetGeneralInfoQueryOptions } from \"./get-hive-power-asset-general-info-query-options\";\nimport { getHiveEngineTokensBalancesQueryOptions } from \"@/modules/hive-engine/queries\";\nimport { getHiveEngineTokenGeneralInfoQueryOptions } from \"@/modules/hive-engine/queries\";\nimport { getPointsAssetGeneralInfoQueryOptions } from \"@/modules/points/queries\";\nimport {\n getPortfolioQueryOptions,\n type PortfolioResponse,\n type PortfolioWalletItem,\n} from \"./get-portfolio-query-options\";\n\ninterface Options {\n refetch?: boolean;\n currency?: string;\n}\n\nexport function getAccountWalletAssetInfoQueryOptions(\n username: string,\n asset: string,\n options: Options = { refetch: false }\n) {\n const queryClient = getQueryClient();\n const currency = options.currency ?? \"usd\";\n\n const fetchQuery = async (qo: any) => {\n if (options.refetch) {\n await queryClient.fetchQuery(qo);\n } else {\n await queryClient.prefetchQuery(qo);\n }\n return queryClient.getQueryData<GeneralAssetInfo>(qo.queryKey);\n };\n\n const convertPriceToUserCurrency = async (\n assetInfo: GeneralAssetInfo | undefined\n ): Promise<GeneralAssetInfo | undefined> => {\n if (!assetInfo || currency === \"usd\") {\n return assetInfo;\n }\n\n try {\n const conversionRate = await getCurrencyRate(currency);\n return {\n ...assetInfo,\n price: assetInfo.price * conversionRate,\n };\n } catch (error) {\n console.warn(`Failed to convert price from USD to ${currency}:`, error);\n return assetInfo;\n }\n };\n\n const portfolioQuery = getPortfolioQueryOptions(username, currency, true);\n\n const getPortfolioAssetInfo = async () => {\n try {\n const portfolio: PortfolioResponse = await queryClient.fetchQuery(portfolioQuery);\n const assetItem = portfolio.wallets.find(\n (item: PortfolioWalletItem) =>\n item.symbol.toUpperCase() === asset.toUpperCase()\n );\n\n if (!assetItem) return undefined;\n\n const parts: Array<{ name: string; balance: number }> = [];\n\n if (assetItem.liquid !== undefined && assetItem.liquid !== null) {\n parts.push({ name: \"liquid\", balance: assetItem.liquid });\n }\n\n if (assetItem.staked !== undefined && assetItem.staked !== null && assetItem.staked > 0) {\n parts.push({ name: \"staked\", balance: assetItem.staked });\n }\n\n if (assetItem.savings !== undefined && assetItem.savings !== null && assetItem.savings > 0) {\n parts.push({ name: \"savings\", balance: assetItem.savings });\n }\n\n if (assetItem.extraData && Array.isArray(assetItem.extraData)) {\n for (const extraItem of assetItem.extraData) {\n if (!extraItem || typeof extraItem !== \"object\") continue;\n\n const dataKey = extraItem.dataKey;\n const value = extraItem.value;\n\n if (typeof value === \"string\") {\n const cleanValue = value.replace(/,/g, \"\");\n const match = cleanValue.match(/[+-]?\\s*(\\d+(?:\\.\\d+)?)/);\n if (match) {\n const numValue = Math.abs(Number.parseFloat(match[1]));\n\n if (dataKey === \"delegated_hive_power\") {\n parts.push({ name: \"outgoing_delegations\", balance: numValue });\n } else if (dataKey === \"received_hive_power\") {\n parts.push({ name: \"incoming_delegations\", balance: numValue });\n } else if (dataKey === \"powering_down_hive_power\") {\n parts.push({ name: \"pending_power_down\", balance: numValue });\n }\n }\n }\n }\n }\n\n return {\n name: assetItem.symbol,\n title: assetItem.name,\n price: assetItem.fiatRate,\n accountBalance: assetItem.balance,\n apr: assetItem.apr?.toString(),\n layer: assetItem.layer,\n pendingRewards: assetItem.pendingRewards,\n parts,\n } as GeneralAssetInfo;\n } catch {\n return undefined;\n }\n };\n\n return queryOptions({\n queryKey: [\"ecency-wallets\", \"asset-info\", username, asset, currency],\n queryFn: async () => {\n const portfolioAssetInfo = await getPortfolioAssetInfo();\n\n if (portfolioAssetInfo && portfolioAssetInfo.price > 0) {\n return portfolioAssetInfo;\n }\n\n let assetInfo: GeneralAssetInfo | undefined;\n\n if (asset === \"HIVE\") {\n assetInfo = await fetchQuery(getHiveAssetGeneralInfoQueryOptions(username));\n } else if (asset === \"HP\") {\n assetInfo = await fetchQuery(getHivePowerAssetGeneralInfoQueryOptions(username));\n } else if (asset === \"HBD\") {\n assetInfo = await fetchQuery(getHbdAssetGeneralInfoQueryOptions(username));\n } else if (asset === \"POINTS\") {\n assetInfo = await fetchQuery(getPointsAssetGeneralInfoQueryOptions(username));\n } else {\n // Check if it's a Hive Engine token\n const balances = await queryClient.ensureQueryData(\n getHiveEngineTokensBalancesQueryOptions(username)\n );\n\n if (balances.some((balance) => balance.symbol === asset)) {\n assetInfo = await fetchQuery(\n getHiveEngineTokenGeneralInfoQueryOptions(username, asset)\n );\n } else if (portfolioAssetInfo) {\n // Unknown asset but portfolio has data — use it as-is\n return portfolioAssetInfo;\n } else {\n throw new Error(\n `[SDK][Wallet] – unrecognized asset \"${asset}\"`\n );\n }\n }\n\n // If portfolio had rich data (parts, balance) but zero price,\n // merge the fallback price into the portfolio data\n if (portfolioAssetInfo && assetInfo && assetInfo.price > 0) {\n const converted = await convertPriceToUserCurrency(assetInfo);\n return {\n ...portfolioAssetInfo,\n price: converted!.price,\n };\n }\n\n return await convertPriceToUserCurrency(assetInfo);\n },\n });\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {b}from'./chunk-36AOY64H.js';import {a}from'./chunk-SGLS2W3U.js';import {a as a$1}from'./chunk-HEILHNSR.js';import {j}from'./chunk-UB5YHSMC.js';import {queryOptions}from'@tanstack/react-query';function O(t,n,y="",e){let r=n?.trim(),a$2=`/@${t}/${r??""}`;return queryOptions({queryKey:a$1.posts.entry(a$2),queryFn:async()=>{if(!r||r==="undefined")return null;let i=await j("bridge.get_post",{author:t,permlink:r,observer:y});if(!i){let o=await a(t,r,y);if(!o)return null;let c=e!==void 0?{...o,num:e}:o;return b(c)}let u=e!==void 0?{...i,num:e}:i;return b(u)},enabled:!!t&&!!n&&n.trim()!==""&&n.trim()!=="undefined"})}export{O as a};//# sourceMappingURL=chunk-73J64EEQ.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-73J64EEQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/posts/queries/get-post-query-options.ts"],"names":["getPostQueryOptions","author","permlink","observer","num","cleanPermlink","entryPath","queryOptions","QueryKeys","response","callRPC","verified","verifyPostOnAlternateNode","verifiedEntry","filterDmcaEntry","entry"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/queries/get-post-query-options.ts"],"names":["getPostQueryOptions","author","permlink","observer","num","cleanPermlink","entryPath","queryOptions","QueryKeys","response","callRPC","verified","verifyPostOnAlternateNode","verifiedEntry","filterDmcaEntry","entry"],"mappings":"wMAOO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAAW,EAAA,CACXC,CAAAA,CACA,CACA,IAAMC,CAAAA,CAAgBH,CAAAA,EAAU,IAAA,EAAK,CAC/BI,GAAAA,CAAY,CAAA,EAAA,EAAKL,CAAM,CAAA,CAAA,EAAII,CAAAA,EAAiB,EAAE,CAAA,CAAA,CAEpD,OAAOE,YAAAA,CAAa,CAClB,QAAA,CAAUC,GAAAA,CAAU,KAAA,CAAM,MAAMF,GAAS,CAAA,CACzC,OAAA,CAAS,SAAY,CACnB,GAAI,CAACD,CAAAA,EAAiBA,CAAAA,GAAkB,WAAA,CACtC,OAAO,IAAA,CAKT,IAAMI,CAAAA,CAAW,MAAMC,CAAAA,CAAQ,iBAAA,CAAmB,CAChD,MAAA,CAAAT,CAAAA,CACA,QAAA,CAAUI,CAAAA,CACV,QAAA,CAAAF,CACF,CAAC,CAAA,CAED,GAAI,CAACM,CAAAA,CAAU,CAGb,IAAME,CAAAA,CAAW,MAAMC,CAAAA,CAA0BX,CAAAA,CAAQI,CAAAA,CAAeF,CAAQ,CAAA,CAChF,GAAI,CAACQ,CAAAA,CACH,OAAO,IAAA,CAET,IAAME,CAAAA,CAAgBT,CAAAA,GAAQ,MAAA,CAAY,CAAE,GAAGO,CAAAA,CAAU,GAAA,CAAAP,CAAI,CAAA,CAAaO,CAAAA,CAC1E,OAAOG,CAAAA,CAAgBD,CAAa,CACtC,CAEA,IAAME,CAAAA,CAAQX,CAAAA,GAAQ,MAAA,CAAY,CAAE,GAAGK,CAAAA,CAAU,GAAA,CAAAL,CAAI,CAAA,CAAaK,CAAAA,CAClE,OAAOK,CAAAA,CAAgBC,CAAK,CAC9B,CAAA,CACA,OAAA,CACE,CAAC,CAACd,CAAAA,EACF,CAAC,CAACC,CAAAA,EACFA,CAAAA,CAAS,IAAA,EAAK,GAAM,EAAA,EACpBA,CAAAA,CAAS,IAAA,EAAK,GAAM,WACxB,CAAC,CACH","file":"chunk-73J64EEQ.js","sourcesContent":["import { QueryKeys } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { Entry } from \"../types\";\nimport { filterDmcaEntry } from \"../utils/filter-dmca-entries\";\nimport { verifyPostOnAlternateNode } from \"@/modules/bridge/verify-on-alternate-node\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\n\nexport function getPostQueryOptions(\n author: string,\n permlink?: string,\n observer = \"\",\n num?: number\n) {\n const cleanPermlink = permlink?.trim();\n const entryPath = `/@${author}/${cleanPermlink ?? \"\"}`;\n\n return queryOptions({\n queryKey: QueryKeys.posts.entry(entryPath),\n queryFn: async () => {\n if (!cleanPermlink || cleanPermlink === \"undefined\") {\n return null;\n }\n\n // hive-tx tries nodes in order; the first healthy node (index 0) handles this call.\n // If it returns null, verifyPostOnAlternateNode skips index 0 and tries others.\n const response = await callRPC(\"bridge.get_post\", {\n author,\n permlink: cleanPermlink,\n observer,\n });\n\n if (!response) {\n // Primary node returned null — verify on alternate nodes\n // to guard against sync lag returning null for valid posts\n const verified = await verifyPostOnAlternateNode(author, cleanPermlink, observer);\n if (!verified) {\n return null;\n }\n const verifiedEntry = num !== undefined ? { ...verified, num } as Entry : verified as Entry;\n return filterDmcaEntry(verifiedEntry);\n }\n\n const entry = num !== undefined ? { ...response, num } as Entry : response as Entry;\n return filterDmcaEntry(entry);\n },\n enabled:\n !!author &&\n !!permlink &&\n permlink.trim() !== \"\" &&\n permlink.trim() !== \"undefined\",\n });\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a as a$1}from'./chunk-YNRDVQAQ.js';import {a}from'./chunk-36AOY64H.js';function m(e){return !e||!a$1(e.author,e.permlink)?e:{...e,title:"",title_marked:null,body:a,body_marked:null,img_url:""}}function i(e){let t=false,u=e.results.map(r=>{let a=m(r);return a!==r&&(t=true),a});return t?{...e,results:u}:e}export{m as a,i as b};//# sourceMappingURL=chunk-7B2TRW3Y.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-7B2TRW3Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/modules/search/dmca.ts"],"names":["maskDmcaSearchResult","row","isDmcaCurationPath","DMCA_NOTICE_BODY","maskDmcaSearchResponse","response","changed","results","masked"],"mappings":"+EAkBO,SAASA,CAAAA,CAAqBC,CAAAA,CAAiC,CACpE,OAAI,CAACA,CAAAA,EAAO,CAACC,GAAAA,CAAmBD,CAAAA,CAAI,MAAA,CAAQA,CAAAA,CAAI,QAAQ,CAAA,CAC/CA,CAAAA,CAEF,CACL,GAAGA,CAAAA,CACH,KAAA,CAAO,EAAA,CACP,YAAA,CAAc,IAAA,CACd,IAAA,CAAME,CAAAA,CACN,WAAA,CAAa,IAAA,CACb,OAAA,CAAS,EACX,CACF,CAGO,SAASC,CAAAA,CAAiDC,CAAAA,CAAgB,CAC/E,IAAIC,CAAAA,CAAU,KAAA,CACRC,CAAAA,CAAUF,CAAAA,CAAS,OAAA,CAAQ,GAAA,CAAKJ,CAAAA,EAAQ,CAC5C,IAAMO,CAAAA,CAASR,CAAAA,CAAqBC,CAAG,CAAA,CACvC,OAAIO,CAAAA,GAAWP,CAAAA,GAAKK,CAAAA,CAAU,IAAA,CAAA,CACvBE,CACT,CAAC,CAAA,CACD,OAAOF,CAAAA,CAAU,CAAE,GAAGD,CAAAA,CAAU,OAAA,CAAAE,CAAQ,EAAIF,CAC9C","file":"chunk-7B2TRW3Y.js","sourcesContent":["import { isDmcaCurationPath } from \"@/modules/curation/dmca\";\nimport { DMCA_NOTICE_BODY } from \"@/modules/posts/utils/filter-dmca-entries\";\nimport type { SearchResponse, SearchResult } from \"./types/search-response\";\n\n/**\n * Takedown masking for search rows.\n *\n * The search index is not DMCA-aware (the backend and the vision-api proxy\n * pass rows through as indexed), and its rows never pass through\n * `filterDmcaEntry`. Same test as that file and the curation mask: an exact\n * `@author/permlink` match against `CONFIG.dmcaPatterns` or its regexes.\n *\n * A listed row is MASKED, not dropped: `hits` and the scroll cursor stay\n * consistent with what the page shows, and the row still links to the entry\n * page, which renders its own takedown notice. What a row can leak is its\n * title, its body (the list renders a summary and extracts the image from\n * it), the highlighted copies of both and `img_url`, so those are blanked.\n */\nexport function maskDmcaSearchResult(row: SearchResult): SearchResult {\n if (!row || !isDmcaCurationPath(row.author, row.permlink)) {\n return row;\n }\n return {\n ...row,\n title: \"\",\n title_marked: null,\n body: DMCA_NOTICE_BODY,\n body_marked: null,\n img_url: \"\",\n };\n}\n\n/** Returns the SAME response when nothing matches. */\nexport function maskDmcaSearchResponse<T extends SearchResponse>(response: T): T {\n let changed = false;\n const results = response.results.map((row) => {\n const masked = maskDmcaSearchResult(row);\n if (masked !== row) changed = true;\n return masked;\n });\n return changed ? { ...response, results } : response;\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {c as c$1}from'./chunk-2ANYOCYN.js';import {b}from'./chunk-36AOY64H.js';import {c}from'./chunk-Q567KEFE.js';import {a}from'./chunk-HEILHNSR.js';import {j}from'./chunk-UB5YHSMC.js';import {infiniteQueryOptions,queryOptions}from'@tanstack/react-query';var P=new Map;function k(e){let n=P.get(e);return n||(n=t=>({...t,pages:t.pages.map(r=>E(r,e))}),P.set(e,n)),n}function E(e,n){let t=e.filter(i=>i.stats?.is_pinned),r=e.filter(i=>!i.stats?.is_pinned);if(n==="hot")return [...t,...r];let a=[...r].sort((i,s)=>new Date(s.created).getTime()-new Date(i.created).getTime());return [...t,...a]}function I(e,n,t=20,r="",a$1=true,i={}){return infiniteQueryOptions({queryKey:a.posts.postsRanked(e,n,t,r),queryFn:async({pageParam:s,signal:o})=>{if(n&&c.dmcaTagRegexes.some(p=>p.test(n)))return [];let u=await j("bridge.get_ranked_posts",{sort:e,start_author:s.author,start_permlink:s.permlink,limit:t,tag:n,observer:r},void 0,void 0,o);if(u==null)return [];if(!Array.isArray(u))throw new Error(`[SDK] get_ranked_posts returned ${typeof u} for sort=${e}`);return b(u)},select:k(e),enabled:a$1,initialPageParam:{author:void 0,permlink:void 0},getNextPageParam:s=>{let o=s?.[s.length-1];if(o)return {author:o.author,permlink:o.permlink}}})}function q(e,n="",t="",r=20,a$1="",i="",s=true){return queryOptions({queryKey:a.posts.postsRankedPage(e,n,t,r,a$1,i),enabled:s,queryFn:async({signal:o}={})=>{if(a$1&&c.dmcaTagRegexes.some(p=>p.test(a$1)))return [];let u=await c$1(e,n,t,r,a$1,i,o);return b(u??[])}})}export{I as a,q as b};//# sourceMappingURL=chunk-BY3CXHIK.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-BY3CXHIK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/posts/queries/get-posts-ranked-query-options.ts"],"names":["displaySelects","displaySelect","sort","select","data","page","orderForDisplay","pinned","entry","rest","byCreated","a","b","getPostsRankedInfiniteQueryOptions","tag","limit","observer","enabled","_options","infiniteQueryOptions","QueryKeys","pageParam","signal","CONFIG","regex","response","callRPC","filterDmcaEntry","lastPage","last","getPostsRankedQueryOptions","start_author","start_permlink","queryOptions","getPostsRanked"],"mappings":"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","file":"chunk-KZ7ESL64.js","sourcesContent":["import { CONFIG, QueryKeys } from \"@/modules/core\";\nimport { InfiniteData, infiniteQueryOptions, queryOptions } from \"@tanstack/react-query\";\nimport { Entry } from \"../types\";\nimport { filterDmcaEntry } from \"../utils/filter-dmca-entries\";\nimport { getPostsRanked } from \"@/modules/bridge\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\n\ntype PageParam = {\n author: string | undefined;\n permlink: string | undefined;\n};\n\ninterface GetPostsRankedOptions {\n resolvePosts?: boolean;\n}\n\n/**\n * `select` runs on every render, and React Query only reuses its previous\n * result when both the data and the select function are unchanged. These\n * options are rebuilt on each render, so an inline arrow would be a new\n * function every time and every page would be re-sorted on every render.\n * One stable function per sort keeps that memoization working.\n */\nconst displaySelects = new Map<\n string,\n (data: InfiniteData<Entry[], PageParam>) => InfiniteData<Entry[], PageParam>\n>();\n\nfunction displaySelect(sort: string) {\n let select = displaySelects.get(sort);\n if (!select) {\n select = (data) => ({\n ...data,\n pages: data.pages.map((page) => orderForDisplay(page, sort)),\n });\n displaySelects.set(sort, select);\n }\n return select;\n}\n\n/**\n * Display order for one page.\n *\n * Pinned entries are captured before the created-date sort: the bridge surfaces\n * them at the head of the response in the community moderators' chosen order,\n * which the sort would scatter by age. Every pin is kept, since an earlier\n * post-sort find() kept one and silently dropped the rest, so multi-pin\n * communities never displayed their other pinned posts. Pins only occur on the\n * first page, cursor pages return none, so this is a no-op elsewhere.\n *\n * Applied in `select` rather than in the query function so it cannot reach the\n * pagination cursor.\n */\nfunction orderForDisplay(page: Entry[], sort: string): Entry[] {\n const pinned = page.filter((entry) => entry.stats?.is_pinned);\n const rest = page.filter((entry) => !entry.stats?.is_pinned);\n\n if (sort === \"hot\") {\n return [...pinned, ...rest];\n }\n\n const byCreated = [...rest].sort(\n (a, b) => new Date(b.created).getTime() - new Date(a.created).getTime()\n );\n return [...pinned, ...byCreated];\n}\n\nexport function getPostsRankedInfiniteQueryOptions(\n sort: string,\n tag: string,\n limit = 20,\n observer = \"\",\n enabled = true,\n _options: GetPostsRankedOptions = {}\n) {\n return infiniteQueryOptions<\n Entry[],\n Error,\n InfiniteData<Entry[], PageParam>,\n (string | number)[],\n PageParam\n >({\n queryKey: QueryKeys.posts.postsRanked(sort, tag, limit, observer),\n queryFn: async ({ pageParam, signal }: { pageParam: PageParam; signal: AbortSignal }) => {\n // A taken-down tag serves NOTHING, not everything. Blanking it here used\n // to leave `tag: \"\"`, which the bridge reads as \"any tag\", so the hub of\n // a tag under takedown answered with the whole site's ranked feed. That\n // was invisible while route handlers had no lists loaded; it is not any\n // more (#1862).\n // `tag &&` guards the global feeds: the patterns are compiled unanchored\n // and every untagged caller passes \"\", so a pattern that also matched the\n // empty string would empty the whole site rather than one hub.\n if (tag && CONFIG.dmcaTagRegexes.some((regex) => regex.test(tag))) {\n return [];\n }\n\n const response = await callRPC(\"bridge.get_ranked_posts\", {\n sort,\n start_author: pageParam.author,\n start_permlink: pageParam.permlink,\n limit,\n tag,\n observer,\n }, undefined, undefined, signal);\n\n if (response === null || response === undefined) {\n return [];\n }\n\n if (!Array.isArray(response)) {\n throw new Error(\n `[SDK] get_ranked_posts returned ${typeof response} for sort=${sort}`\n );\n }\n\n // Kept in the bridge's own order. getNextPageParam takes the cursor from\n // the last entry of the page this returns, and the bridge continues from\n // that entry in ITS ranking, so reordering here made the next request\n // start from the middle of the previous ranked page: for trending, payout\n // and muted the last entry by date is not the last entry by rank, and\n // scrolling repeated some posts and skipped others. Display order is\n // applied in `select`, which React Query runs after pagination.\n return filterDmcaEntry(response as Entry[]);\n },\n select: displaySelect(sort),\n enabled,\n initialPageParam: {\n author: undefined,\n permlink: undefined,\n } as PageParam,\n getNextPageParam: (lastPage: Entry[]) => {\n // React Query reads \"there is no next page\" from undefined alone, so\n // returning an object here always left it true. An infinite list\n // then keeps calling fetchNextPage at the end of the feed, appending an\n // empty page each time: the query state churns and the cache grows for as\n // long as the reader sits at the bottom.\n const last = lastPage?.[lastPage.length - 1];\n if (!last) {\n return undefined;\n }\n\n return { author: last.author, permlink: last.permlink };\n },\n });\n}\n\nexport function getPostsRankedQueryOptions(\n sort: string,\n start_author: string = \"\",\n start_permlink: string = \"\",\n limit: number = 20,\n tag: string = \"\",\n observer: string = \"\",\n enabled = true\n) {\n return queryOptions({\n queryKey: QueryKeys.posts.postsRankedPage(sort, start_author, start_permlink, limit, tag, observer),\n enabled,\n queryFn: async ({ signal } = {} as any) => {\n // A taken-down tag serves NOTHING, not everything. Blanking it here used\n // to leave `tag: \"\"`, which the bridge reads as \"any tag\", so the hub of\n // a tag under takedown answered with the whole site's ranked feed. That\n // was invisible while route handlers had no lists loaded; it is not any\n // more (#1862).\n // `tag &&` guards the global feeds: the patterns are compiled unanchored\n // and every untagged caller passes \"\", so a pattern that also matched the\n // empty string would empty the whole site rather than one hub.\n if (tag && CONFIG.dmcaTagRegexes.some((regex) => regex.test(tag))) {\n return [];\n }\n\n const response = await getPostsRanked(\n sort,\n start_author,\n start_permlink,\n limit,\n tag,\n observer,\n signal\n );\n\n return filterDmcaEntry(response ?? []) as Entry[];\n },\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/queries/get-posts-ranked-query-options.ts"],"names":["displaySelects","displaySelect","sort","select","data","page","orderForDisplay","pinned","entry","rest","byCreated","a","b","getPostsRankedInfiniteQueryOptions","tag","limit","observer","enabled","_options","infiniteQueryOptions","QueryKeys","pageParam","signal","CONFIG","regex","response","callRPC","filterDmcaEntry","lastPage","last","getPostsRankedQueryOptions","start_author","start_permlink","queryOptions","getPostsRanked"],"mappings":"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","file":"chunk-BY3CXHIK.js","sourcesContent":["import { CONFIG, QueryKeys } from \"@/modules/core\";\nimport { InfiniteData, infiniteQueryOptions, queryOptions } from \"@tanstack/react-query\";\nimport { Entry } from \"../types\";\nimport { filterDmcaEntry } from \"../utils/filter-dmca-entries\";\nimport { getPostsRanked } from \"@/modules/bridge\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\n\ntype PageParam = {\n author: string | undefined;\n permlink: string | undefined;\n};\n\ninterface GetPostsRankedOptions {\n resolvePosts?: boolean;\n}\n\n/**\n * `select` runs on every render, and React Query only reuses its previous\n * result when both the data and the select function are unchanged. These\n * options are rebuilt on each render, so an inline arrow would be a new\n * function every time and every page would be re-sorted on every render.\n * One stable function per sort keeps that memoization working.\n */\nconst displaySelects = new Map<\n string,\n (data: InfiniteData<Entry[], PageParam>) => InfiniteData<Entry[], PageParam>\n>();\n\nfunction displaySelect(sort: string) {\n let select = displaySelects.get(sort);\n if (!select) {\n select = (data) => ({\n ...data,\n pages: data.pages.map((page) => orderForDisplay(page, sort)),\n });\n displaySelects.set(sort, select);\n }\n return select;\n}\n\n/**\n * Display order for one page.\n *\n * Pinned entries are captured before the created-date sort: the bridge surfaces\n * them at the head of the response in the community moderators' chosen order,\n * which the sort would scatter by age. Every pin is kept, since an earlier\n * post-sort find() kept one and silently dropped the rest, so multi-pin\n * communities never displayed their other pinned posts. Pins only occur on the\n * first page, cursor pages return none, so this is a no-op elsewhere.\n *\n * Applied in `select` rather than in the query function so it cannot reach the\n * pagination cursor.\n */\nfunction orderForDisplay(page: Entry[], sort: string): Entry[] {\n const pinned = page.filter((entry) => entry.stats?.is_pinned);\n const rest = page.filter((entry) => !entry.stats?.is_pinned);\n\n if (sort === \"hot\") {\n return [...pinned, ...rest];\n }\n\n const byCreated = [...rest].sort(\n (a, b) => new Date(b.created).getTime() - new Date(a.created).getTime()\n );\n return [...pinned, ...byCreated];\n}\n\nexport function getPostsRankedInfiniteQueryOptions(\n sort: string,\n tag: string,\n limit = 20,\n observer = \"\",\n enabled = true,\n _options: GetPostsRankedOptions = {}\n) {\n return infiniteQueryOptions<\n Entry[],\n Error,\n InfiniteData<Entry[], PageParam>,\n (string | number)[],\n PageParam\n >({\n queryKey: QueryKeys.posts.postsRanked(sort, tag, limit, observer),\n queryFn: async ({ pageParam, signal }: { pageParam: PageParam; signal: AbortSignal }) => {\n // A taken-down tag serves NOTHING, not everything. Blanking it here used\n // to leave `tag: \"\"`, which the bridge reads as \"any tag\", so the hub of\n // a tag under takedown answered with the whole site's ranked feed. That\n // was invisible while route handlers had no lists loaded; it is not any\n // more (#1862).\n // `tag &&` guards the global feeds: the patterns are compiled unanchored\n // and every untagged caller passes \"\", so a pattern that also matched the\n // empty string would empty the whole site rather than one hub.\n if (tag && CONFIG.dmcaTagRegexes.some((regex) => regex.test(tag))) {\n return [];\n }\n\n const response = await callRPC(\"bridge.get_ranked_posts\", {\n sort,\n start_author: pageParam.author,\n start_permlink: pageParam.permlink,\n limit,\n tag,\n observer,\n }, undefined, undefined, signal);\n\n if (response === null || response === undefined) {\n return [];\n }\n\n if (!Array.isArray(response)) {\n throw new Error(\n `[SDK] get_ranked_posts returned ${typeof response} for sort=${sort}`\n );\n }\n\n // Kept in the bridge's own order. getNextPageParam takes the cursor from\n // the last entry of the page this returns, and the bridge continues from\n // that entry in ITS ranking, so reordering here made the next request\n // start from the middle of the previous ranked page: for trending, payout\n // and muted the last entry by date is not the last entry by rank, and\n // scrolling repeated some posts and skipped others. Display order is\n // applied in `select`, which React Query runs after pagination.\n return filterDmcaEntry(response as Entry[]);\n },\n select: displaySelect(sort),\n enabled,\n initialPageParam: {\n author: undefined,\n permlink: undefined,\n } as PageParam,\n getNextPageParam: (lastPage: Entry[]) => {\n // React Query reads \"there is no next page\" from undefined alone, so\n // returning an object here always left it true. An infinite list\n // then keeps calling fetchNextPage at the end of the feed, appending an\n // empty page each time: the query state churns and the cache grows for as\n // long as the reader sits at the bottom.\n const last = lastPage?.[lastPage.length - 1];\n if (!last) {\n return undefined;\n }\n\n return { author: last.author, permlink: last.permlink };\n },\n });\n}\n\nexport function getPostsRankedQueryOptions(\n sort: string,\n start_author: string = \"\",\n start_permlink: string = \"\",\n limit: number = 20,\n tag: string = \"\",\n observer: string = \"\",\n enabled = true\n) {\n return queryOptions({\n queryKey: QueryKeys.posts.postsRankedPage(sort, start_author, start_permlink, limit, tag, observer),\n enabled,\n queryFn: async ({ signal } = {} as any) => {\n // A taken-down tag serves NOTHING, not everything. Blanking it here used\n // to leave `tag: \"\"`, which the bridge reads as \"any tag\", so the hub of\n // a tag under takedown answered with the whole site's ranked feed. That\n // was invisible while route handlers had no lists loaded; it is not any\n // more (#1862).\n // `tag &&` guards the global feeds: the patterns are compiled unanchored\n // and every untagged caller passes \"\", so a pattern that also matched the\n // empty string would empty the whole site rather than one hub.\n if (tag && CONFIG.dmcaTagRegexes.some((regex) => regex.test(tag))) {\n return [];\n }\n\n const response = await getPostsRanked(\n sort,\n start_author,\n start_permlink,\n limit,\n tag,\n observer,\n signal\n );\n\n return filterDmcaEntry(response ?? []) as Entry[];\n },\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {j}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {j}from'./chunk-2ANYOCYN.js';import {a}from'./chunk-HEILHNSR.js';import {queryOptions}from'@tanstack/react-query';function y(r,o=true){return queryOptions({queryKey:a.posts.normalize(r?.author??"",r?.permlink??""),enabled:o&&!!r,queryFn:async()=>j(r)})}export{y as a};//# sourceMappingURL=chunk-EHTCN4X5.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-EHTCN4X5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/posts/queries/get-normalize-post-query-options.ts"],"names":["getNormalizePostQueryOptions","post","enabled","queryOptions","QueryKeys","normalizePost"],"mappings":"yHAKO,SAASA,EACdC,CAAAA,CACAC,CAAAA,CAAU,IAAA,CACV,CACA,OAAOC,YAAAA,CAAa,CAClB,QAAA,CAAUC,CAAAA,CAAU,MAAM,SAAA,CAAUH,CAAAA,EAAM,MAAA,EAAU,EAAA,CAAIA,CAAAA,EAAM,QAAA,EAAY,EAAE,CAAA,CAC5E,QAASC,CAAAA,EAAW,CAAC,CAACD,CAAAA,CACtB,QAAS,SAAYI,CAAAA,CAAcJ,CAAI,CACzC,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/queries/get-normalize-post-query-options.ts"],"names":["getNormalizePostQueryOptions","post","enabled","queryOptions","QueryKeys","normalizePost"],"mappings":"yHAKO,SAASA,EACdC,CAAAA,CACAC,CAAAA,CAAU,IAAA,CACV,CACA,OAAOC,YAAAA,CAAa,CAClB,QAAA,CAAUC,CAAAA,CAAU,MAAM,SAAA,CAAUH,CAAAA,EAAM,MAAA,EAAU,EAAA,CAAIA,CAAAA,EAAM,QAAA,EAAY,EAAE,CAAA,CAC5E,QAASC,CAAAA,EAAW,CAAC,CAACD,CAAAA,CACtB,QAAS,SAAYI,CAAAA,CAAcJ,CAAI,CACzC,CAAC,CACH","file":"chunk-EHTCN4X5.js","sourcesContent":["import { queryOptions } from \"@tanstack/react-query\";\nimport { QueryKeys } from \"@/modules/core\";\nimport { Entry } from \"../types\";\nimport { normalizePost } from \"@/modules/bridge\";\n\nexport function getNormalizePostQueryOptions(\n post: { author?: string; permlink?: string } | undefined,\n enabled = true\n) {\n return queryOptions({\n queryKey: QueryKeys.posts.normalize(post?.author ?? \"\", post?.permlink ?? \"\"),\n enabled: enabled && !!post,\n queryFn: async () => normalizePost(post) as Promise<Entry | null>,\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {c as c$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {c as c$1}from'./chunk-PAE3HIPT.js';import {c as c$2}from'./chunk-Q567KEFE.js';function d(t,n){return {...t,id:t.id??t.post_id,created:t.created??t.timestamp,host:n}}function c(t){return {...t,id:t.id??t.post_id}}function y(t,n){if(!t)return null;let a=t.container??t,r=d(a,n),e=t.parent?c(t.parent):void 0;return {...t,id:t.id??t.post_id,created:t.created??t.timestamp,max_accepted_payout:t.max_accepted_payout||"1000000.000 HBD",pending_payout_value:t.pending_payout_value||"0.000 HBD",author_payout_value:t.author_payout_value||"0.000 HBD",curator_payout_value:t.curator_payout_value||"0.000 HBD",host:n,container:r,parent:e}}function l(t){return Array.isArray(t)?t:[]}async function f(t){let n=c$1(t,"created",true),a=await c$2.queryClient.fetchQuery(n),r=l(a);if(r.length<=1)return [];let e=r.filter(({parent_author:o,parent_permlink:p})=>o===t.author&&p===t.permlink);return e.length===0?[]:e.filter(o=>!o.stats?.gray)}function v(t,n,a){return t.length===0?[]:t.map(r=>{let e=t.find(i=>i.author===r.parent_author&&i.permlink===r.parent_permlink&&i.author!==a);return {...r,id:r.post_id,host:a,container:n,parent:e}}).filter(r=>r.container.post_id!==r.post_id).sort((r,e)=>new Date(e.created).getTime()-new Date(r.created).getTime())}export{y as a,l as b,f as c,v as d};//# sourceMappingURL=chunk-EO6TGAAL.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-EO6TGAAL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/posts/utils/waves-helpers.ts"],"names":["normalizeContainer","entry","host","normalizeParent","normalizeWaveEntryFromApi","containerSource","container","parent","toEntryArray","x","getVisibleFirstLevelThreadItems","queryOptions","getDiscussionsQueryOptions","discussionItemsRaw","CONFIG","discussionItems","firstLevelItems","parent_author","parent_permlink","item","mapThreadItemsToWaveEntries","items","a","b"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/utils/waves-helpers.ts"],"names":["normalizeContainer","entry","host","normalizeParent","normalizeWaveEntryFromApi","containerSource","container","parent","toEntryArray","x","getVisibleFirstLevelThreadItems","queryOptions","getDiscussionsQueryOptions","discussionItemsRaw","CONFIG","discussionItems","firstLevelItems","parent_author","parent_permlink","item","mapThreadItemsToWaveEntries","items","a","b"],"mappings":"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","file":"chunk-EO6TGAAL.js","sourcesContent":["import { Entry, WaveEntry } from \"../types\";\nimport { getDiscussionsQueryOptions, SortOrder } from \"../queries/get-discussions-query-options\";\nimport { CONFIG } from \"@/modules/core\";\n\ntype EntryWithPostId = Entry & { post_id: number };\n\nfunction normalizeContainer(entry: EntryWithPostId, host: string): WaveEntry {\n return {\n ...entry,\n id: entry.id ?? entry.post_id,\n // The private-api waves feeds send the publish time as `timestamp`, not `created`.\n created: entry.created ?? (entry as unknown as { timestamp?: string }).timestamp,\n host\n } as WaveEntry;\n}\n\nfunction normalizeParent(entry: EntryWithPostId): Entry {\n return {\n ...entry,\n id: entry.id ?? entry.post_id\n } as Entry;\n}\n\nexport function normalizeWaveEntryFromApi(\n entry:\n | (Entry & { post_id: number; container?: EntryWithPostId | null; parent?: EntryWithPostId | null })\n | null\n | undefined,\n host: string\n): WaveEntry | null {\n if (!entry) {\n return null;\n }\n\n const containerSource = entry.container ?? entry;\n const container = normalizeContainer(containerSource, host);\n\n const parent = entry.parent ? normalizeParent(entry.parent) : undefined;\n\n return {\n ...entry,\n id: entry.id ?? entry.post_id,\n // The private-api waves feeds (following / tag / account) send the publish\n // time as `timestamp`, not `created`; map it so the relative time renders on\n // every card (the For You feed already carries a real `created` from Hive RPC).\n created: entry.created ?? (entry as unknown as { timestamp?: string }).timestamp,\n // The private-api waves feeds omit max_accepted_payout; default it (and the\n // payout strings) to the Hive shape so payout-rendering consumers run their\n // pending+author+curator summation instead of treating the value as missing.\n max_accepted_payout: entry.max_accepted_payout || \"1000000.000 HBD\",\n pending_payout_value: entry.pending_payout_value || \"0.000 HBD\",\n author_payout_value: entry.author_payout_value || \"0.000 HBD\",\n curator_payout_value: entry.curator_payout_value || \"0.000 HBD\",\n host,\n container,\n parent\n } as WaveEntry;\n}\n\nexport function toEntryArray(x: unknown): Entry[] {\n return Array.isArray(x) ? (x as Entry[]) : [];\n}\n\nexport async function getVisibleFirstLevelThreadItems(\n container: WaveEntry\n): Promise<Entry[]> {\n const queryOptions = getDiscussionsQueryOptions(container, SortOrder.created, true);\n const discussionItemsRaw = await CONFIG.queryClient.fetchQuery(queryOptions);\n const discussionItems = toEntryArray(discussionItemsRaw);\n\n if (discussionItems.length <= 1) {\n return [];\n }\n\n const firstLevelItems = discussionItems.filter(\n ({ parent_author, parent_permlink }) =>\n parent_author === container.author && parent_permlink === container.permlink\n );\n\n if (firstLevelItems.length === 0) {\n return [];\n }\n\n const visibleItems = firstLevelItems.filter((item) => !item.stats?.gray);\n\n return visibleItems;\n}\n\nexport function mapThreadItemsToWaveEntries(\n items: Entry[],\n container: WaveEntry,\n host: string\n): WaveEntry[] {\n if (items.length === 0) {\n return [];\n }\n\n return items\n .map((item) => {\n const parent = items.find(\n (i) =>\n i.author === item.parent_author &&\n i.permlink === item.parent_permlink &&\n i.author !== host\n );\n\n return {\n ...item,\n id: item.post_id,\n host,\n container,\n parent\n } as WaveEntry;\n })\n .filter((entry) => entry.container.post_id !== entry.post_id)\n .sort(\n (a, b) => new Date(b.created).getTime() - new Date(a.created).getTime()\n );\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {c as c$1}from'./chunk-WV4Y4D4E.js';import {a}from'./chunk-LEYBAREX.js';import {c,a as a$2}from'./chunk-Q567KEFE.js';import {a as a$3}from'./chunk-HEILHNSR.js';import {a as a$1}from'./chunk-JDGZ4DHM.js';import {infiniteQueryOptions}from'@tanstack/react-query';function P(n,o,s,r,t,c$2){return infiniteQueryOptions({queryKey:a$3.search.api(n,o,s,r,t,c$2),queryFn:async({pageParam:i,signal:y})=>{let e={q:n,sort:o,hide_low:s};r&&(e.since=r),i&&(e.scroll_id=i),t!==void 0&&(e.votes=t),c$2&&(e.include_nsfw=1);let m=await fetch(c.privateApiHost+"/search-api/search",{method:"POST",headers:{"Content-Type":"application/json","X-Ecency-Client":c.clientId},body:JSON.stringify(e),signal:a$1(a$2,y)});return c$1(m)},initialPageParam:void 0,getNextPageParam:i=>i?.scroll_id,enabled:!!n,retry:a})}export{P as a};//# sourceMappingURL=chunk-EOQ6ZEQ6.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-EOQ6ZEQ6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/modules/search/queries/get-search-api-infinite-query-options.ts"],"names":["getSearchApiInfiniteQueryOptions","q","sort","hideLow","since","votes","includeNsfw","infiniteQueryOptions","QueryKeys","pageParam","signal","payload","response","CONFIG","withTimeoutSignal","INTERNAL_API_TIMEOUT_MS","parseSearchResponse","lastPage","searchRetryPolicy"],"mappings":"2QAMO,SAASA,CAAAA,CACdC,EACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,GAAAA,CACA,CACA,OAAOC,oBAAAA,CAAqB,CAC1B,QAAA,CAAUC,GAAAA,CAAU,MAAA,CAAO,GAAA,CAAIP,EAAGC,CAAAA,CAAMC,CAAAA,CAASC,CAAAA,CAAOC,CAAAA,CAAOC,GAAW,CAAA,CAC1E,QAAS,MAAO,CAAE,SAAA,CAAAG,CAAAA,CAAW,MAAA,CAAAC,CAAO,IAA8D,CAWhG,IAAMC,CAAAA,CAA4B,CAAE,CAAA,CAAAV,CAAAA,CAAG,KAAAC,CAAAA,CAAM,QAAA,CAAUC,CAAQ,CAAA,CAE3DC,CAAAA,GACFO,CAAAA,CAAQ,KAAA,CAAQP,CAAAA,CAAAA,CAEdK,CAAAA,GACFE,CAAAA,CAAQ,SAAA,CAAYF,CAAAA,CAAAA,CAElBJ,CAAAA,GAAU,MAAA,GACZM,EAAQ,KAAA,CAAQN,CAAAA,CAAAA,CAEdC,GAAAA,GACFK,CAAAA,CAAQ,YAAA,CAAe,CAAA,CAAA,CAGzB,IAAMC,CAAAA,CAAW,MAAM,KAAA,CAAMC,CAAAA,CAAO,cAAA,CAAiB,oBAAA,CAAsB,CACzE,MAAA,CAAQ,MAAA,CACR,OAAA,CAAS,CACP,cAAA,CAAgB,kBAAA,CAChB,kBAAmBA,CAAAA,CAAO,QAC5B,CAAA,CACA,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUF,CAAO,CAAA,CAC5B,MAAA,CAAQG,GAAAA,CAAkBC,GAAAA,CAAyBL,CAAM,CAC3D,CAAC,CAAA,CAID,OAAOM,GAAAA,CAAoBJ,CAAQ,CACrC,CAAA,CACA,iBAAkB,MAAA,CAClB,gBAAA,CAAmBK,CAAAA,EAA6BA,CAAAA,EAAU,SAAA,CAC1D,OAAA,CAAS,CAAC,CAAChB,CAAAA,CACX,KAAA,CAAOiB,CACT,CAAC,CACH","file":"chunk-EOQ6ZEQ6.js","sourcesContent":["import { infiniteQueryOptions } from \"@tanstack/react-query\";\nimport { CONFIG, INTERNAL_API_TIMEOUT_MS, withTimeoutSignal, QueryKeys } from \"@/modules/core\";\nimport { SearchResponse } from \"../types/search-response\";\nimport { parseSearchResponse } from \"../parse-json-response\";\nimport { searchRetryPolicy } from \"../retry-policy\";\n\nexport function getSearchApiInfiniteQueryOptions(\n q: string,\n sort: string,\n hideLow: boolean,\n since?: string,\n votes?: number,\n includeNsfw?: boolean\n) {\n return infiniteQueryOptions({\n queryKey: QueryKeys.search.api(q, sort, hideLow, since, votes, includeNsfw),\n queryFn: async ({ pageParam, signal }: { pageParam: string | undefined; signal: AbortSignal }) => {\n interface SearchApiPayload {\n q: string;\n sort: string;\n hide_low: boolean;\n since?: string;\n scroll_id?: string;\n votes?: number;\n include_nsfw?: number;\n }\n\n const payload: SearchApiPayload = { q, sort, hide_low: hideLow };\n\n if (since) {\n payload.since = since;\n }\n if (pageParam) {\n payload.scroll_id = pageParam;\n }\n if (votes !== undefined) {\n payload.votes = votes;\n }\n if (includeNsfw) {\n payload.include_nsfw = 1;\n }\n\n const response = await fetch(CONFIG.privateApiHost + \"/search-api/search\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-Ecency-Client\": CONFIG.clientId,\n },\n body: JSON.stringify(payload),\n signal: withTimeoutSignal(INTERNAL_API_TIMEOUT_MS, signal),\n });\n\n // Keeps the backend's own explanation of a rejected query on the error\n // (status + body), instead of collapsing it to a status code.\n return parseSearchResponse(response);\n },\n initialPageParam: undefined as string | undefined,\n getNextPageParam: (lastPage: SearchResponse) => lastPage?.scroll_id,\n enabled: !!q,\n retry: searchRetryPolicy,\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {h}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {h}from'./chunk-2ANYOCYN.js';import {a}from'./chunk-HEILHNSR.js';import {queryOptions}from'@tanstack/react-query';function s(i,n="",e=true){return queryOptions({queryKey:a.communities.single(i,n),enabled:e&&!!i,queryFn:async()=>h(i??"",n)})}export{s as a};//# sourceMappingURL=chunk-G7UK7OAA.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-G7UK7OAA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/communities/queries/get-community-query-options.ts"],"names":["getCommunityQueryOptions","name","observer","enabled","queryOptions","QueryKeys","getCommunity"],"mappings":"yHAKO,SAASA,EACdC,CAAAA,CACAC,CAAAA,CAA+B,EAAA,CAC/BC,CAAAA,CAAU,KACV,CACA,OAAOC,YAAAA,CAAa,CAClB,SAAUC,CAAAA,CAAU,WAAA,CAAY,MAAA,CAAOJ,CAAAA,CAAMC,CAAQ,CAAA,CACrD,OAAA,CAASC,CAAAA,EAAW,CAAC,CAACF,CAAAA,CACtB,OAAA,CAAS,SAAYK,EAAaL,CAAAA,EAAQ,EAAA,CAAIC,CAAQ,CACxD,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/communities/queries/get-community-query-options.ts"],"names":["getCommunityQueryOptions","name","observer","enabled","queryOptions","QueryKeys","getCommunity"],"mappings":"yHAKO,SAASA,EACdC,CAAAA,CACAC,CAAAA,CAA+B,EAAA,CAC/BC,CAAAA,CAAU,KACV,CACA,OAAOC,YAAAA,CAAa,CAClB,SAAUC,CAAAA,CAAU,WAAA,CAAY,MAAA,CAAOJ,CAAAA,CAAMC,CAAQ,CAAA,CACrD,OAAA,CAASC,CAAAA,EAAW,CAAC,CAACF,CAAAA,CACtB,OAAA,CAAS,SAAYK,EAAaL,CAAAA,EAAQ,EAAA,CAAIC,CAAQ,CACxD,CAAC,CACH","file":"chunk-G7UK7OAA.js","sourcesContent":["import { queryOptions } from \"@tanstack/react-query\";\nimport { Community } from \"../types/community\";\nimport { getCommunity } from \"@/modules/bridge\";\nimport { QueryKeys } from \"@/modules/core\";\n\nexport function getCommunityQueryOptions(\n name: string | undefined,\n observer: string | undefined = \"\",\n enabled = true\n) {\n return queryOptions({\n queryKey: QueryKeys.communities.single(name, observer),\n enabled: enabled && !!name,\n queryFn: async () => getCommunity(name ?? \"\", observer) as Promise<Community | null>,\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {n}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {n}from'./chunk-2ANYOCYN.js';import {a}from'./chunk-HEILHNSR.js';import {queryOptions}from'@tanstack/react-query';function p(r,e,t=true){return queryOptions({queryKey:a.accounts.profiles(r,e??""),enabled:t&&r.length>0,queryFn:async()=>n(r,e)})}export{p as a};//# sourceMappingURL=chunk-H34MRPJG.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-H34MRPJG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/accounts/queries/get-profiles-query-options.ts"],"names":["getProfilesQueryOptions","accounts","observer","enabled","queryOptions","QueryKeys","getProfiles"],"mappings":"yHAKO,SAASA,EACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAAU,IAAA,CACV,CACA,OAAOC,YAAAA,CAAa,CAClB,SAAUC,CAAAA,CAAU,QAAA,CAAS,QAAA,CAASJ,CAAAA,CAAUC,CAAAA,EAAY,EAAE,CAAA,CAC9D,OAAA,CAASC,GAAWF,CAAAA,CAAS,MAAA,CAAS,CAAA,CACtC,OAAA,CAAS,SAAYK,CAAAA,CAAYL,CAAAA,CAAUC,CAAQ,CACrD,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/accounts/queries/get-profiles-query-options.ts"],"names":["getProfilesQueryOptions","accounts","observer","enabled","queryOptions","QueryKeys","getProfiles"],"mappings":"yHAKO,SAASA,EACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAAU,IAAA,CACV,CACA,OAAOC,YAAAA,CAAa,CAClB,SAAUC,CAAAA,CAAU,QAAA,CAAS,QAAA,CAASJ,CAAAA,CAAUC,CAAAA,EAAY,EAAE,CAAA,CAC9D,OAAA,CAASC,GAAWF,CAAAA,CAAS,MAAA,CAAS,CAAA,CACtC,OAAA,CAAS,SAAYK,CAAAA,CAAYL,CAAAA,CAAUC,CAAQ,CACrD,CAAC,CACH","file":"chunk-H34MRPJG.js","sourcesContent":["import { queryOptions } from \"@tanstack/react-query\";\nimport { QueryKeys } from \"@/modules/core\";\nimport { Profile } from \"../types\";\nimport { getProfiles } from \"@/modules/bridge\";\n\nexport function getProfilesQueryOptions(\n accounts: string[],\n observer?: string,\n enabled = true\n) {\n return queryOptions({\n queryKey: QueryKeys.accounts.profiles(accounts, observer ?? \"\"),\n enabled: enabled && accounts.length > 0,\n queryFn: async () => getProfiles(accounts, observer) as Promise<Profile[]>,\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-EO6TGAAL.js';import {d}from'./chunk-Q567KEFE.js';import {a as a$1}from'./chunk-HEILHNSR.js';import {infiniteQueryOptions}from'@tanstack/react-query';function v(n,y){let t=y?.trim().toLowerCase();return infiniteQueryOptions({queryKey:a$1.posts.wavesByAccount(n,t??""),enabled:!!t,initialPageParam:void 0,queryFn:async({signal:f})=>{if(!t)return [];try{let r=d.getValidatedBaseUrl(),a$1=new URL("/private-api/waves/account",r);a$1.searchParams.set("container",n),a$1.searchParams.set("username",t);let o=await fetch(a$1.toString(),{method:"GET",signal:f});if(!o.ok)throw new Error(`Failed to fetch waves for account: ${o.status}`);let i=await o.json();if(!Array.isArray(i)||i.length===0)return [];let s=i.map(e=>a(e,n)).filter(e=>!!e);return s.length===0?[]:s.sort((e,l)=>new Date(l.created).getTime()-new Date(e.created).getTime())}catch(r){throw console.error("[SDK] Failed to fetch waves for account",r),r}},getNextPageParam:()=>{}})}export{v as a};//# sourceMappingURL=chunk-HS2D6O7J.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-HS2D6O7J.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/posts/queries/get-waves-by-account-query-options.ts"],"names":["getWavesByAccountQueryOptions","host","username","normalizedUsername","infiniteQueryOptions","QueryKeys","signal","baseUrl","ConfigManager","url","response","data","flattened","entry","normalizeWaveEntryFromApi","a","b","error"],"mappings":"4KAWO,SAASA,CAAAA,CAA8BC,EAAcC,CAAAA,CAAmB,CAC7E,IAAMC,CAAAA,CAAqBD,GAAU,IAAA,EAAK,CAAE,aAAY,CAExD,OAAOE,qBAAqB,CAC1B,QAAA,CAAUC,GAAAA,CAAU,KAAA,CAAM,eAAeJ,CAAAA,CAAME,CAAAA,EAAsB,EAAE,CAAA,CACvE,OAAA,CAAS,EAAQA,CAAAA,CACjB,gBAAA,CAAkB,MAAA,CAElB,OAAA,CAAS,MAAO,CAAE,MAAA,CAAAG,CAAO,CAAA,GAAM,CAC7B,GAAI,CAACH,CAAAA,CACH,OAAO,GAGT,GAAI,CACF,IAAMI,CAAAA,CAAUC,EAAc,mBAAA,EAAoB,CAC5CC,GAAAA,CAAM,IAAI,IAAI,4BAAA,CAA8BF,CAAO,EACzDE,GAAAA,CAAI,YAAA,CAAa,IAAI,WAAA,CAAaR,CAAI,CAAA,CACtCQ,GAAAA,CAAI,aAAa,GAAA,CAAI,UAAA,CAAYN,CAAkB,CAAA,CAEnD,IAAMO,EAAW,MAAM,KAAA,CAAMD,GAAAA,CAAI,QAAA,GAAY,CAC3C,MAAA,CAAQ,MACR,MAAA,CAAAH,CACF,CAAC,CAAA,CAED,GAAI,CAACI,CAAAA,CAAS,GACZ,MAAM,IAAI,KAAA,CAAM,CAAA,mCAAA,EAAsCA,EAAS,MAAM,CAAA,CAAE,CAAA,CAGzE,IAAMC,EAAO,MAAMD,CAAAA,CAAS,MAAK,CAEjC,GAAI,CAAC,KAAA,CAAM,OAAA,CAAQC,CAAI,CAAA,EAAKA,EAAK,MAAA,GAAW,CAAA,CAC1C,OAAO,EAAC,CAGV,IAAMC,CAAAA,CAAYD,CAAAA,CACf,GAAA,CAAKE,CAAAA,EAAUC,EAA0BD,CAAAA,CAAOZ,CAAI,CAAC,CAAA,CACrD,MAAA,CAAQY,GAA8B,CAAA,CAAQA,CAAM,CAAA,CAEvD,OAAID,EAAU,MAAA,GAAW,CAAA,CAChB,EAAC,CAGHA,CAAAA,CAAU,KACf,CAACG,CAAAA,CAAGC,CAAAA,GAAM,IAAI,KAAKA,CAAAA,CAAE,OAAO,EAAE,OAAA,EAAQ,CAAI,IAAI,IAAA,CAAKD,CAAAA,CAAE,OAAO,CAAA,CAAE,SAChE,CACF,OAASE,CAAAA,CAAO,CACd,cAAQ,KAAA,CAAM,yCAAA,CAA2CA,CAAK,CAAA,CACxDA,CACR,CACF,CAAA,CAEA,iBAAkB,IAAG,CAAA,CACvB,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/queries/get-waves-by-account-query-options.ts"],"names":["getWavesByAccountQueryOptions","host","username","normalizedUsername","infiniteQueryOptions","QueryKeys","signal","baseUrl","ConfigManager","url","response","data","flattened","entry","normalizeWaveEntryFromApi","a","b","error"],"mappings":"4KAWO,SAASA,CAAAA,CAA8BC,EAAcC,CAAAA,CAAmB,CAC7E,IAAMC,CAAAA,CAAqBD,GAAU,IAAA,EAAK,CAAE,aAAY,CAExD,OAAOE,qBAAqB,CAC1B,QAAA,CAAUC,GAAAA,CAAU,KAAA,CAAM,eAAeJ,CAAAA,CAAME,CAAAA,EAAsB,EAAE,CAAA,CACvE,OAAA,CAAS,EAAQA,CAAAA,CACjB,gBAAA,CAAkB,MAAA,CAElB,OAAA,CAAS,MAAO,CAAE,MAAA,CAAAG,CAAO,CAAA,GAAM,CAC7B,GAAI,CAACH,CAAAA,CACH,OAAO,GAGT,GAAI,CACF,IAAMI,CAAAA,CAAUC,EAAc,mBAAA,EAAoB,CAC5CC,GAAAA,CAAM,IAAI,IAAI,4BAAA,CAA8BF,CAAO,EACzDE,GAAAA,CAAI,YAAA,CAAa,IAAI,WAAA,CAAaR,CAAI,CAAA,CACtCQ,GAAAA,CAAI,aAAa,GAAA,CAAI,UAAA,CAAYN,CAAkB,CAAA,CAEnD,IAAMO,EAAW,MAAM,KAAA,CAAMD,GAAAA,CAAI,QAAA,GAAY,CAC3C,MAAA,CAAQ,MACR,MAAA,CAAAH,CACF,CAAC,CAAA,CAED,GAAI,CAACI,CAAAA,CAAS,GACZ,MAAM,IAAI,KAAA,CAAM,CAAA,mCAAA,EAAsCA,EAAS,MAAM,CAAA,CAAE,CAAA,CAGzE,IAAMC,EAAO,MAAMD,CAAAA,CAAS,MAAK,CAEjC,GAAI,CAAC,KAAA,CAAM,OAAA,CAAQC,CAAI,CAAA,EAAKA,EAAK,MAAA,GAAW,CAAA,CAC1C,OAAO,EAAC,CAGV,IAAMC,CAAAA,CAAYD,CAAAA,CACf,GAAA,CAAKE,CAAAA,EAAUC,EAA0BD,CAAAA,CAAOZ,CAAI,CAAC,CAAA,CACrD,MAAA,CAAQY,GAA8B,CAAA,CAAQA,CAAM,CAAA,CAEvD,OAAID,EAAU,MAAA,GAAW,CAAA,CAChB,EAAC,CAGHA,CAAAA,CAAU,KACf,CAACG,CAAAA,CAAGC,CAAAA,GAAM,IAAI,KAAKA,CAAAA,CAAE,OAAO,EAAE,OAAA,EAAQ,CAAI,IAAI,IAAA,CAAKD,CAAAA,CAAE,OAAO,CAAA,CAAE,SAChE,CACF,OAASE,CAAAA,CAAO,CACd,cAAQ,KAAA,CAAM,yCAAA,CAA2CA,CAAK,CAAA,CACxDA,CACR,CACF,CAAA,CAEA,iBAAkB,IAAG,CAAA,CACvB,CAAC,CACH","file":"chunk-HS2D6O7J.js","sourcesContent":["import { infiniteQueryOptions } from \"@tanstack/react-query\";\nimport { ConfigManager, QueryKeys } from \"@/modules/core\";\nimport { Entry, WaveEntry } from \"../types\";\nimport { normalizeWaveEntryFromApi } from \"../utils/waves-helpers\";\n\ninterface WavesAccountEntry extends Entry {\n post_id: number;\n container?: (Entry & { post_id: number }) | null;\n parent?: (Entry & { post_id: number }) | null;\n}\n\nexport function getWavesByAccountQueryOptions(host: string, username?: string) {\n const normalizedUsername = username?.trim().toLowerCase();\n\n return infiniteQueryOptions({\n queryKey: QueryKeys.posts.wavesByAccount(host, normalizedUsername ?? \"\"),\n enabled: Boolean(normalizedUsername),\n initialPageParam: undefined,\n\n queryFn: async ({ signal }) => {\n if (!normalizedUsername) {\n return [];\n }\n\n try {\n const baseUrl = ConfigManager.getValidatedBaseUrl();\n const url = new URL(\"/private-api/waves/account\", baseUrl);\n url.searchParams.set(\"container\", host);\n url.searchParams.set(\"username\", normalizedUsername);\n\n const response = await fetch(url.toString(), {\n method: \"GET\",\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch waves for account: ${response.status}`);\n }\n\n const data = await response.json() as WavesAccountEntry[];\n\n if (!Array.isArray(data) || data.length === 0) {\n return [];\n }\n\n const flattened = data\n .map((entry) => normalizeWaveEntryFromApi(entry, host))\n .filter((entry): entry is WaveEntry => Boolean(entry));\n\n if (flattened.length === 0) {\n return [];\n }\n\n return flattened.sort(\n (a, b) => new Date(b.created).getTime() - new Date(a.created).getTime()\n );\n } catch (error) {\n console.error(\"[SDK] Failed to fetch waves for account\", error);\n throw error;\n }\n },\n\n getNextPageParam: () => undefined,\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-EO6TGAAL.js';import {d}from'./chunk-Q567KEFE.js';import {a}from'./chunk-HEILHNSR.js';import {infiniteQueryOptions}from'@tanstack/react-query';var p=20;function S(r){return {containers:r.containers??[],tag:r.tag?.trim()||void 0,author:r.author?.trim().toLowerCase()||void 0,observer:r.observer?.trim().toLowerCase()||void 0,limit:r.limit??p}}async function v({containers:r,tag:s,author:o,observer:i,limit:d$1},a,u){let n=d.getValidatedBaseUrl(),e=new URL("/private-api/waves/shorts",n);e.searchParams.set("limit",String(d$1)),a&&e.searchParams.set("cursor",a),r.forEach(t=>e.searchParams.append("container",t)),s&&e.searchParams.set("tag",s),o&&e.searchParams.set("author",o),i&&e.searchParams.set("observer",i);let m=await fetch(e.toString(),{method:"GET",signal:u});if(!m.ok)throw new Error(`Failed to fetch shorts feed: ${m.status}`);let h=await m.json();return !Array.isArray(h)||h.length===0?[]:h.map(t=>{let c=a$1(t,t.host??"");return c?{...c,active_votes:c.active_votes??[],video:t.video,_cursor:t._cursor}:null}).filter(t=>!!t)}function b(r={}){let s=S(r),{containers:o,tag:i,author:d,observer:a$1,limit:u}=s;return infiniteQueryOptions({queryKey:a.posts.shortsFeed({containers:o,tag:i,author:d,observer:a$1,limit:u}),initialPageParam:void 0,queryFn:({pageParam:n,signal:e})=>v(s,n,e),getNextPageParam:n=>{if(!(n.length<u))return n[n.length-1]?._cursor}})}export{b as a};//# sourceMappingURL=chunk-ISYWZWG7.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-ISYWZWG7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/posts/queries/get-shorts-feed-query-options.ts"],"names":["DEFAULT_FEED_LIMIT","normalizeParams","params","fetchShortsFeedPage","containers","tag","author","observer","limit","cursor","signal","baseUrl","ConfigManager","url","container","response","data","row","entry","normalizeWaveEntryFromApi","getShortsFeedQueryOptions","normalized","infiniteQueryOptions","QueryKeys","pageParam","lastPage"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/queries/get-shorts-feed-query-options.ts"],"names":["DEFAULT_FEED_LIMIT","normalizeParams","params","fetchShortsFeedPage","containers","tag","author","observer","limit","cursor","signal","baseUrl","ConfigManager","url","container","response","data","row","entry","normalizeWaveEntryFromApi","getShortsFeedQueryOptions","normalized","infiniteQueryOptions","QueryKeys","pageParam","lastPage"],"mappings":"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","file":"chunk-ISYWZWG7.js","sourcesContent":["import { infiniteQueryOptions } from \"@tanstack/react-query\";\nimport { ConfigManager, QueryKeys } from \"@/modules/core\";\nimport { Entry, WaveEntry } from \"../types\";\nimport { normalizeWaveEntryFromApi } from \"../utils/waves-helpers\";\n\nconst DEFAULT_FEED_LIMIT = 20;\n\n/** The 3Speak video a short embeds, as returned by esync /api/waves/shorts. */\nexport interface ShortVideo {\n platform: string;\n author: string;\n permlink: string;\n embed_url: string;\n thumbnail_url: string | null;\n duration_secs: number | null;\n}\n\ntype ShortsFeedRow = Entry & {\n post_id: number;\n host?: string;\n video?: ShortVideo;\n _cursor?: string;\n container?: (Entry & { post_id: number }) | null;\n parent?: (Entry & { post_id: number }) | null;\n};\n\nexport type ShortsFeedEntry = WaveEntry & {\n /** The embedded 3Speak video reference for the reels player. */\n video?: ShortVideo;\n _cursor?: string;\n};\n\nexport interface ShortsFeedParams {\n /** Scope to one or more container accounts; omit for the full combined feed. */\n containers?: string[];\n /** Only shorts carrying this tag (across all containers). */\n tag?: string;\n /** Only this author's shorts (across all containers). */\n author?: string;\n /**\n * The viewing user; exclude authors they currently mute. Ecency's own\n * moderation mutes are applied by esync regardless of this value.\n */\n observer?: string;\n /** Page size (default 20). */\n limit?: number;\n}\n\ninterface NormalizedShortsParams {\n containers: string[];\n tag?: string;\n author?: string;\n observer?: string;\n limit: number;\n}\n\nfunction normalizeParams(params: ShortsFeedParams): NormalizedShortsParams {\n return {\n containers: params.containers ?? [],\n tag: params.tag?.trim() || undefined,\n author: params.author?.trim().toLowerCase() || undefined,\n observer: params.observer?.trim().toLowerCase() || undefined,\n limit: params.limit ?? DEFAULT_FEED_LIMIT\n };\n}\n\nasync function fetchShortsFeedPage(\n { containers, tag, author, observer, limit }: NormalizedShortsParams,\n cursor: string | undefined,\n signal?: AbortSignal\n): Promise<ShortsFeedEntry[]> {\n const baseUrl = ConfigManager.getValidatedBaseUrl();\n const url = new URL(\"/private-api/waves/shorts\", baseUrl);\n url.searchParams.set(\"limit\", String(limit));\n if (cursor) {\n url.searchParams.set(\"cursor\", cursor);\n }\n containers.forEach((container) => url.searchParams.append(\"container\", container));\n if (tag) {\n url.searchParams.set(\"tag\", tag);\n }\n if (author) {\n url.searchParams.set(\"author\", author);\n }\n if (observer) {\n url.searchParams.set(\"observer\", observer);\n }\n\n const response = await fetch(url.toString(), {\n method: \"GET\",\n signal\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch shorts feed: ${response.status}`);\n }\n\n const data = (await response.json()) as ShortsFeedRow[];\n\n if (!Array.isArray(data) || data.length === 0) {\n return [];\n }\n\n return data\n .map((row) => {\n const entry = normalizeWaveEntryFromApi(row, row.host ?? \"\");\n if (!entry) {\n return null;\n }\n return {\n ...entry,\n // A lightweight feed row may omit active_votes; EntryVoteBtn (which uses\n // this entry as React Query initialData) calls .some() on it, so default\n // to an empty array to avoid a crash before the full post query loads.\n active_votes: entry.active_votes ?? [],\n video: row.video,\n _cursor: row._cursor\n } as ShortsFeedEntry;\n })\n .filter((entry): entry is ShortsFeedEntry => Boolean(entry));\n}\n\n/**\n * Combined cross-container shorts (reels) feed: waves that embed a 3Speak video.\n *\n * Backed by esync /api/waves/shorts (via /private-api/waves/shorts). Same shape,\n * keyset pagination and filters as {@link getWavesFeedQueryOptions}, plus a\n * `video` block per item for the vertical reels player. There is no `following`\n * filter in v1.\n */\nexport function getShortsFeedQueryOptions(params: ShortsFeedParams = {}) {\n const normalized = normalizeParams(params);\n const { containers, tag, author, observer, limit } = normalized;\n\n return infiniteQueryOptions({\n queryKey: QueryKeys.posts.shortsFeed({ containers, tag, author, observer, limit }),\n initialPageParam: undefined as string | undefined,\n\n queryFn: ({ pageParam, signal }) => fetchShortsFeedPage(normalized, pageParam, signal),\n\n // Keyset pagination: a short page (fewer than `limit` rows) ends the feed;\n // on a full page the server returns the next cursor on the last row.\n getNextPageParam: (lastPage: ShortsFeedEntry[]) => {\n if (lastPage.length < limit) {\n return undefined;\n }\n return lastPage[lastPage.length - 1]?._cursor;\n }\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-EO6TGAAL.js';import {d}from'./chunk-Q567KEFE.js';import {a as a$1}from'./chunk-HEILHNSR.js';import {infiniteQueryOptions}from'@tanstack/react-query';var g=40;function w(t,s,p=g){return infiniteQueryOptions({queryKey:a$1.posts.wavesByTag(t,s),initialPageParam:void 0,queryFn:async({signal:c})=>{try{let r=d.getValidatedBaseUrl(),a$1=new URL("/private-api/waves/tags",r);a$1.searchParams.set("container",t),a$1.searchParams.set("tag",s);let n=await fetch(a$1.toString(),{method:"GET",headers:{"Content-Type":"application/json"},signal:c});if(!n.ok)throw new Error(`Failed to fetch waves by tag: ${n.status}`);return (await n.json()).slice(0,p).map(e=>a(e,t)).filter(e=>!!e).sort((e,m)=>new Date(m.created).getTime()-new Date(e.created).getTime())}catch(r){return console.error("[SDK] Failed to fetch waves by tag",r),[]}},getNextPageParam:()=>{}})}export{w as a};//# sourceMappingURL=chunk-IWGTII7L.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-IWGTII7L.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/posts/queries/get-waves-by-tag-query-options.ts"],"names":["DEFAULT_TAG_FEED_LIMIT","getWavesByTagQueryOptions","host","tag","limit","infiniteQueryOptions","QueryKeys","signal","baseUrl","ConfigManager","url","response","entry","normalizeWaveEntryFromApi","a","b","error"],"mappings":"4KAWA,IAAMA,EAAyB,EAAA,CAExB,SAASC,CAAAA,CAA0BC,CAAAA,CAAcC,CAAAA,CAAaC,CAAAA,CAAQJ,CAAAA,CAAwB,CACnG,OAAOK,oBAAAA,CAAqB,CAC1B,QAAA,CAAUC,GAAAA,CAAU,KAAA,CAAM,UAAA,CAAWJ,CAAAA,CAAMC,CAAG,EAC9C,gBAAA,CAAkB,MAAA,CAElB,OAAA,CAAS,MAAO,CAAE,MAAA,CAAAI,CAAO,CAAA,GAAM,CAC7B,GAAI,CACF,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,mBAAA,EAAoB,CAC5CC,GAAAA,CAAM,IAAI,IAAI,yBAAA,CAA2BF,CAAO,CAAA,CACtDE,GAAAA,CAAI,YAAA,CAAa,GAAA,CAAI,WAAA,CAAaR,CAAI,EACtCQ,GAAAA,CAAI,YAAA,CAAa,GAAA,CAAI,KAAA,CAAOP,CAAG,CAAA,CAE/B,IAAMQ,CAAAA,CAAW,MAAM,KAAA,CAAMD,GAAAA,CAAI,QAAA,EAAS,CAAG,CAC3C,MAAA,CAAQ,KAAA,CACR,OAAA,CAAS,CACP,eAAgB,kBAClB,CAAA,CACA,MAAA,CAAAH,CACF,CAAC,CAAA,CAED,GAAI,CAACI,EAAS,EAAA,CACZ,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiCA,CAAAA,CAAS,MAAM,CAAA,CAAE,EAUpE,OAAA,CAPa,MAAMA,CAAAA,CAAS,IAAA,EAAK,EAG9B,KAAA,CAAM,CAAA,CAAGP,CAAK,EACd,GAAA,CAAKQ,CAAAA,EAAUC,CAAAA,CAA0BD,CAAAA,CAAOV,CAAI,CAAC,CAAA,CACrD,MAAA,CAAQU,CAAAA,EAA8B,EAAQA,CAAM,CAAA,CAEzC,IAAA,CACZ,CAACE,CAAAA,CAAGC,CAAAA,GAAM,IAAI,IAAA,CAAKA,EAAE,OAAO,CAAA,CAAE,OAAA,EAAQ,CAAI,IAAI,IAAA,CAAKD,CAAAA,CAAE,OAAO,EAAE,OAAA,EAChE,CACF,CAAA,MAASE,CAAAA,CAAO,CACd,OAAA,OAAA,CAAQ,KAAA,CAAM,qCAAsCA,CAAK,CAAA,CAClD,EACT,CACF,CAAA,CAEA,gBAAA,CAAkB,IAAG,CAAA,CACvB,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/queries/get-waves-by-tag-query-options.ts"],"names":["DEFAULT_TAG_FEED_LIMIT","getWavesByTagQueryOptions","host","tag","limit","infiniteQueryOptions","QueryKeys","signal","baseUrl","ConfigManager","url","response","entry","normalizeWaveEntryFromApi","a","b","error"],"mappings":"4KAWA,IAAMA,EAAyB,EAAA,CAExB,SAASC,CAAAA,CAA0BC,CAAAA,CAAcC,CAAAA,CAAaC,CAAAA,CAAQJ,CAAAA,CAAwB,CACnG,OAAOK,oBAAAA,CAAqB,CAC1B,QAAA,CAAUC,GAAAA,CAAU,KAAA,CAAM,UAAA,CAAWJ,CAAAA,CAAMC,CAAG,EAC9C,gBAAA,CAAkB,MAAA,CAElB,OAAA,CAAS,MAAO,CAAE,MAAA,CAAAI,CAAO,CAAA,GAAM,CAC7B,GAAI,CACF,IAAMC,CAAAA,CAAUC,CAAAA,CAAc,mBAAA,EAAoB,CAC5CC,GAAAA,CAAM,IAAI,IAAI,yBAAA,CAA2BF,CAAO,CAAA,CACtDE,GAAAA,CAAI,YAAA,CAAa,GAAA,CAAI,WAAA,CAAaR,CAAI,EACtCQ,GAAAA,CAAI,YAAA,CAAa,GAAA,CAAI,KAAA,CAAOP,CAAG,CAAA,CAE/B,IAAMQ,CAAAA,CAAW,MAAM,KAAA,CAAMD,GAAAA,CAAI,QAAA,EAAS,CAAG,CAC3C,MAAA,CAAQ,KAAA,CACR,OAAA,CAAS,CACP,eAAgB,kBAClB,CAAA,CACA,MAAA,CAAAH,CACF,CAAC,CAAA,CAED,GAAI,CAACI,EAAS,EAAA,CACZ,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiCA,CAAAA,CAAS,MAAM,CAAA,CAAE,EAUpE,OAAA,CAPa,MAAMA,CAAAA,CAAS,IAAA,EAAK,EAG9B,KAAA,CAAM,CAAA,CAAGP,CAAK,EACd,GAAA,CAAKQ,CAAAA,EAAUC,CAAAA,CAA0BD,CAAAA,CAAOV,CAAI,CAAC,CAAA,CACrD,MAAA,CAAQU,CAAAA,EAA8B,EAAQA,CAAM,CAAA,CAEzC,IAAA,CACZ,CAACE,CAAAA,CAAGC,CAAAA,GAAM,IAAI,IAAA,CAAKA,EAAE,OAAO,CAAA,CAAE,OAAA,EAAQ,CAAI,IAAI,IAAA,CAAKD,CAAAA,CAAE,OAAO,EAAE,OAAA,EAChE,CACF,CAAA,MAASE,CAAAA,CAAO,CACd,OAAA,OAAA,CAAQ,KAAA,CAAM,qCAAsCA,CAAK,CAAA,CAClD,EACT,CACF,CAAA,CAEA,gBAAA,CAAkB,IAAG,CAAA,CACvB,CAAC,CACH","file":"chunk-IWGTII7L.js","sourcesContent":["import { infiniteQueryOptions } from \"@tanstack/react-query\";\nimport { ConfigManager, QueryKeys } from \"@/modules/core\";\nimport { Entry, WaveEntry } from \"../types\";\nimport { normalizeWaveEntryFromApi } from \"../utils/waves-helpers\";\n\ntype WavesTagEntryResponse = Entry & {\n post_id: number;\n container?: (Entry & { post_id: number }) | null;\n parent?: (Entry & { post_id: number }) | null;\n};\n\nconst DEFAULT_TAG_FEED_LIMIT = 40;\n\nexport function getWavesByTagQueryOptions(host: string, tag: string, limit = DEFAULT_TAG_FEED_LIMIT) {\n return infiniteQueryOptions({\n queryKey: QueryKeys.posts.wavesByTag(host, tag),\n initialPageParam: undefined,\n\n queryFn: async ({ signal }) => {\n try {\n const baseUrl = ConfigManager.getValidatedBaseUrl();\n const url = new URL(\"/private-api/waves/tags\", baseUrl);\n url.searchParams.set(\"container\", host);\n url.searchParams.set(\"tag\", tag);\n\n const response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch waves by tag: ${response.status}`);\n }\n\n const data = await response.json() as WavesTagEntryResponse[];\n\n const result = data\n .slice(0, limit)\n .map((entry) => normalizeWaveEntryFromApi(entry, host))\n .filter((entry): entry is WaveEntry => Boolean(entry));\n\n return result.sort(\n (a, b) => new Date(b.created).getTime() - new Date(a.created).getTime()\n );\n } catch (error) {\n console.error(\"[SDK] Failed to fetch waves by tag\", error);\n return [];\n }\n },\n\n getNextPageParam: () => undefined,\n });\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {b}from'./chunk-36AOY64H.js';import {a}from'./chunk-HEILHNSR.js';import {j}from'./chunk-UB5YHSMC.js';import {queryOptions}from'@tanstack/react-query';function l(r,t){return queryOptions({queryKey:a.posts.contentReplies(r,t),enabled:!!r&&!!t,queryFn:async()=>{let s=await j("condenser_api.get_content_replies",{author:r,permlink:t});return b(s??[])}})}export{l as a};//# sourceMappingURL=chunk-JLH3XJNT.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-JLH3XJNT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/posts/queries/get-content-replies-query-options.ts"],"names":["getContentRepliesQueryOptions","author","permlink","queryOptions","QueryKeys","replies","callRPC","filterDmcaEntry"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/modules/posts/queries/get-content-replies-query-options.ts"],"names":["getContentRepliesQueryOptions","author","permlink","queryOptions","QueryKeys","replies","callRPC","filterDmcaEntry"],"mappings":"6JAMO,SAASA,EAA8BC,CAAAA,CAAgBC,CAAAA,CAAkB,CAC9E,OAAOC,YAAAA,CAAa,CAClB,SAAUC,CAAAA,CAAU,KAAA,CAAM,eAAeH,CAAAA,CAAQC,CAAQ,EACzD,OAAA,CAAS,CAAC,CAACD,CAAAA,EAAU,CAAC,CAACC,EAKvB,OAAA,CAAS,SAA8B,CACrC,IAAMG,CAAAA,CAAW,MAAMC,CAAAA,CAAQ,mCAAA,CAAqC,CAClE,MAAA,CAAAL,CAAAA,CACA,QAAA,CAAAC,CACF,CAAC,CAAA,CAED,OAAOK,CAAAA,CAAgBF,CAAAA,EAAW,EAAE,CACtC,CACF,CAAC,CACH","file":"chunk-JLH3XJNT.js","sourcesContent":["import { QueryKeys } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { Entry } from \"../types\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\nimport { filterDmcaEntry } from \"../utils/filter-dmca-entries\";\n\nexport function getContentRepliesQueryOptions(author: string, permlink: string) {\n return queryOptions({\n queryKey: QueryKeys.posts.contentReplies(author, permlink),\n enabled: !!author && !!permlink,\n // Filtered like its sibling getContentQueryOptions: this is the other raw\n // condenser post query, and a takedown covers a reply the same way it\n // covers the post it hangs under (#1862). Nothing in the apps reads it\n // today, but it is a published export.\n queryFn: async (): Promise<Entry[]> => {\n const replies = (await callRPC(\"condenser_api.get_content_replies\", {\n author,\n permlink,\n })) as Entry[] | null;\n\n return filterDmcaEntry(replies ?? []) as Entry[];\n },\n });\n}\n"]}
|