@ecency/sdk 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/modules/core/mock-storage.ts","../src/modules/core/config.ts","../src/modules/core/utils/decoder-encoder.ts","../src/modules/core/utils/parse-asset.ts","../src/modules/core/storage.ts","../src/modules/keychain/keychain.ts","../src/modules/core/mutations/use-broadcast-mutation.ts","../src/modules/core/mutations/broadcast-json.ts","../src/modules/core/queries-manager.ts","../src/modules/core/queries/get-dynamic-props-query-options.ts","../src/modules/accounts/queries/get-account-full-query-options.ts","../src/modules/accounts/queries/search-accounts-by-username-query-options.ts","../src/modules/accounts/queries/check-username-wallets-pending-query-options.ts","../src/modules/accounts/queries/get-relationship-between-accounts-query-options.ts","../src/modules/accounts/queries/get-account-subscriptions-query-options.ts","../src/modules/accounts/queries/get-active-account-bookmarks-query-options.ts","../src/modules/accounts/queries/get-active-account-favourites-query-options.ts","../src/modules/accounts/queries/get-account-recoveries-query-options.ts","../src/modules/accounts/queries/get-account-pending-recovery-query-options.ts","../src/modules/accounts/mutations/use-account-update.ts","../src/modules/accounts/mutations/use-account-relations-update.ts","../src/modules/accounts/mutations/bookmarks/use-account-bookmark-add.ts","../src/modules/accounts/mutations/bookmarks/use-account-bookmark-delete.ts","../src/modules/accounts/mutations/favourites/use-account-favourite-add.ts","../src/modules/accounts/mutations/favourites/use-account-favourite-delete.ts","../src/modules/accounts/mutations/use-account-update-key-auths.ts","../src/modules/accounts/mutations/use-account-update-password.ts","../src/modules/accounts/mutations/use-account-revoke-posting.ts","../src/modules/accounts/mutations/use-account-update-recovery.ts","../src/modules/accounts/mutations/use-account-revoke-key.ts","../src/modules/operations/mutations/sign-operation-by-key.ts","../src/modules/operations/mutations/sign-operation-by-keychain.ts","../src/modules/operations/mutations/sign-operation-by-hivesigner.ts","../src/modules/operations/queries/get-chain-properties-query-options.ts","../src/modules/posts/queries/get-trending-tags-query-options.ts","../src/modules/posts/queries/get-fragments-query-options.ts","../src/modules/posts/queries/get-promoted-posts-query-options.ts","../src/modules/posts/mutations/add-fragment.ts","../src/modules/posts/mutations/edit-fragment.ts","../src/modules/posts/mutations/remove-fragment.ts","../src/modules/analytics/mutations/index.ts","../src/modules/analytics/mutations/use-record-activity.ts","../src/modules/integrations/3speak/queries/index.ts","../src/modules/integrations/hivesigner/queries/index.ts","../src/modules/integrations/hivesigner/queries/get-decode-memo-query-options.ts","../src/modules/integrations/hivesigner/index.ts","../src/modules/integrations/3speak/queries/get-account-token-query-options.ts","../src/modules/integrations/3speak/queries/get-account-videos-query-options.ts","../src/modules/integrations/3speak/index.ts","../src/modules/integrations/hiveposh/queries/get-hiveposh-links-query-options.ts","../src/modules/integrations/plausible/queries/get-stats-query-options.ts","../src/modules/resource-credits/queries/get-rc-stats-query-options.ts","../src/modules/resource-credits/queries/get-account-rc-query-options.ts","../src/modules/games/queries/game-status-check-query-options.ts","../src/modules/games/mutations/game-claim.ts","../src/modules/communities/queries/get-communities-query-options.ts","../src/modules/communities/queries/get-community-context-query-options.ts","../src/modules/communities/types/community.ts","../src/modules/communities/utils/index.ts"],"names":["ConfigManager","Symbol","NaiMap","PrivateKey","hs","QueryClient","EcencyQueriesManager","queryOptions","useQuery","data","useMutation","R2","useQueryClient","R3","R4","queries_exports","ROLES"],"mappings":"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","file":"index.mjs","sourcesContent":["export class MockStorage implements Storage {\n [name: string]: any;\n\n length: number = 0;\n\n clear(): void {\n throw new Error(\"Method not implemented.\");\n }\n\n getItem(key: string): string | null {\n return this[key];\n }\n\n key(index: number): string | null {\n return Object.keys(this)[index];\n }\n\n removeItem(key: string): void {\n delete this[key];\n }\n\n setItem(key: string, value: string): void {\n this[key] = value;\n }\n}\n","import { Client } from \"@hiveio/dhive\";\nimport { MockStorage } from \"./mock-storage\";\nimport { QueryClient } from \"@tanstack/react-query\";\n\nexport const CONFIG = {\n privateApiHost: \"https://ecency.com\",\n storage:\n typeof window === \"undefined\" ? new MockStorage() : window.localStorage,\n storagePrefix: \"ecency\",\n hiveClient: new Client(\n [\n \"https://api.hive.blog\",\n \"https://api.deathwing.me\",\n \"https://rpc.mahdiyari.info\",\n \"https://api.openhive.network\",\n \"https://techcoderx.com\",\n \"https://hive-api.arcange.eu\",\n \"https://api.syncad.com\",\n \"https://anyx.io\",\n \"https://api.c0ff33a.uk\",\n \"https://hiveapi.actifit.io\",\n \"https://hive-api.3speak.tv\",\n ],\n {\n timeout: 2000,\n failoverThreshold: 2,\n consoleOnFailover: true,\n }\n ),\n heliusApiKey: process.env.VITE_HELIUS_API_KEY,\n queryClient: new QueryClient(),\n plausibleHost: \"https://pl.ecency.com\",\n spkNode: \"https://spk.good-karma.xyz\",\n};\n\nexport namespace ConfigManager {\n export function setQueryClient(client: QueryClient) {\n CONFIG.queryClient = client;\n }\n}\n","export function encodeObj(o: any): string {\n return btoa(JSON.stringify(o));\n}\n\nexport function decodeObj(o: any): any {\n let dataToParse = atob(o);\n if (dataToParse[0] !== \"{\") {\n return undefined;\n }\n return JSON.parse(dataToParse);\n}\n","import { SMTAsset } from \"@hiveio/dhive\";\n\nexport enum Symbol {\n HIVE = \"HIVE\",\n HBD = \"HBD\",\n VESTS = \"VESTS\",\n SPK = \"SPK\",\n}\n\nexport enum NaiMap {\n \"@@000000021\" = \"HIVE\",\n \"@@000000013\" = \"HBD\",\n \"@@000000037\" = \"VESTS\",\n}\n\nexport interface Asset {\n amount: number;\n symbol: Symbol;\n}\n\nexport function parseAsset(sval: string | SMTAsset): Asset {\n if (typeof sval === \"string\") {\n const sp = sval.split(\" \");\n return {\n amount: parseFloat(sp[0]),\n // @ts-ignore\n symbol: Symbol[sp[1]],\n };\n } else {\n return {\n amount: parseFloat(sval.amount.toString()) / Math.pow(10, sval.precision),\n // @ts-ignore\n symbol: NaiMap[sval.nai],\n };\n }\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport { StoringUser } from \"./entities\";\nimport { decodeObj } from \"./utils\";\n\nexport const getUser = (username: string): StoringUser | undefined => {\n try {\n const raw = CONFIG.storage.getItem(\n CONFIG.storagePrefix + \"_user_\" + username\n );\n return decodeObj(JSON.parse(raw!)) as StoringUser;\n } catch (e) {\n console.error(e);\n return undefined;\n }\n};\n\nexport const getAccessToken = (username: string): string | undefined =>\n getUser(username) && getUser(username)!.accessToken;\n\nexport const getPostingKey = (username: string): null | undefined | string =>\n getUser(username) && getUser(username)!.postingKey;\n\nexport const getLoginType = (username: string): null | undefined | string =>\n getUser(username) && getUser(username)!.loginType;\n\nexport const getRefreshToken = (username: string): string | undefined =>\n getUser(username) && getUser(username)!.refreshToken;\n","import { Operation } from \"@hiveio/dhive\";\n\ntype KeychainedWindow = {\n hive_keychain?: any;\n} & Window;\n\ndeclare var window: KeychainedWindow;\n\nexport type KeychainAuthorityTypes = \"Owner\" | \"Active\" | \"Posting\" | \"Memo\";\n\ninterface TxResponse {\n success: boolean;\n result: string;\n}\n\nexport function handshake() {\n return new Promise<void>((resolve) => {\n window.hive_keychain?.requestHandshake(() => {\n resolve();\n });\n });\n}\n\nexport const broadcast = (\n account: string,\n operations: Operation[],\n key: KeychainAuthorityTypes,\n rpc: string | null = null\n): Promise<TxResponse> =>\n new Promise<TxResponse>((resolve, reject) => {\n window.hive_keychain?.requestBroadcast(\n account,\n operations,\n key,\n (resp: TxResponse) => {\n if (!resp.success) {\n reject({ message: \"Operation cancelled\" });\n }\n\n resolve(resp);\n },\n rpc\n );\n });\n\nexport const customJson = (\n account: string,\n id: string,\n key: KeychainAuthorityTypes,\n json: string,\n display_msg: string,\n rpc: string | null = null\n): Promise<TxResponse> =>\n new Promise<TxResponse>((resolve, reject) => {\n window.hive_keychain?.requestCustomJson(\n account,\n id,\n key,\n json,\n display_msg,\n (resp: TxResponse) => {\n if (!resp.success) {\n reject({ message: \"Operation cancelled\" });\n }\n resolve(resp);\n },\n rpc\n );\n });\n","import {\n useMutation,\n type MutationKey,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { getAccessToken, getLoginType, getPostingKey } from \"../storage\";\nimport { Operation, PrivateKey } from \"@hiveio/dhive\";\nimport { CONFIG } from \"@/modules/core/config\";\nimport hs from \"hivesigner\";\nimport { Keychain } from \"@/modules/keychain\";\n\nexport function useBroadcastMutation<T>(\n mutationKey: MutationKey = [],\n username: string | undefined,\n operations: (payload: T) => Operation[],\n onSuccess: UseMutationOptions<unknown, Error, T>[\"onSuccess\"] = () => {}\n) {\n return useMutation({\n onSuccess,\n mutationKey: [...mutationKey, username],\n mutationFn: async (payload: T) => {\n if (!username) {\n throw new Error(\n \"[Core][Broadcast] Attempted to call broadcast API with anon user\"\n );\n }\n\n const postingKey = getPostingKey(username);\n if (postingKey) {\n const privateKey = PrivateKey.fromString(postingKey);\n\n return CONFIG.hiveClient.broadcast.sendOperations(\n operations(payload),\n privateKey\n );\n }\n\n const loginType = getLoginType(username);\n if (loginType && loginType == \"keychain\") {\n return Keychain.broadcast(\n username,\n operations(payload),\n \"Posting\"\n ).then((r: any) => r.result);\n }\n\n // With hivesigner access token\n let token = getAccessToken(username);\n if (token) {\n const response = await new hs.Client({\n accessToken: token,\n }).broadcast(operations(payload));\n return response.result;\n }\n\n throw new Error(\n \"[SDK][Broadcast] – cannot broadcast w/o posting key or token\"\n );\n },\n });\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport { PrivateKey } from \"@hiveio/dhive\";\nimport hs from \"hivesigner\";\nimport {getAccessToken, getLoginType, getPostingKey} from \"../storage\";\nimport {Keychain} from \"@/modules/keychain\";\n\nexport async function broadcastJson<T>(\n username: string | undefined,\n id: string,\n payload: T\n) {\n if (!username) {\n throw new Error(\n \"[Core][Broadcast] Attempted to call broadcast API with anon user\"\n );\n }\n const jjson = {\n id,\n required_auths: [],\n required_posting_auths: [username],\n json: JSON.stringify(payload),\n };\n\n const postingKey = getPostingKey(username);\n if (postingKey) {\n const privateKey = PrivateKey.fromString(postingKey);\n\n return CONFIG.hiveClient.broadcast.json(\n jjson,\n privateKey\n );\n }\n\n const loginType = getLoginType(username);\n if (loginType && loginType == 'keychain') {\n return Keychain.broadcast(username, [[\"custom_json\", jjson]], \"Posting\").then((r: any) => r.result)\n }\n\n // With hivesigner access token\n let token = getAccessToken(username);\n if (token) {\n const response = await new hs.Client({\n accessToken: token,\n }).customJson([], [username], id, JSON.stringify(payload));\n return response.result;\n }\n\n throw new Error(\n \"[SDK][Broadcast] – cannot broadcast w/o posting key or token\"\n );\n}\n","import {\n InfiniteData,\n QueryClient,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n} from \"@tanstack/react-query\";\nimport { CONFIG } from \"./config\";\n\nexport function makeQueryClient() {\n // Cache creates one single instance per request in a server side\n return new QueryClient({\n defaultOptions: {\n queries: {\n // With SSR, we usually want to set some default staleTime\n // above 0 to avoid refetching immediately on the client\n // staleTime: 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n },\n });\n}\nexport const getQueryClient = () => CONFIG.queryClient;\n\nexport namespace EcencyQueriesManager {\n export function getQueryData<T>(queryKey: QueryKey) {\n const queryClient = getQueryClient();\n return queryClient.getQueryData<T>(queryKey);\n }\n\n export function getInfiniteQueryData<T>(queryKey: QueryKey) {\n const queryClient = getQueryClient();\n return queryClient.getQueryData<InfiniteData<T>>(queryKey);\n }\n\n export async function prefetchQuery<T>(options: UseQueryOptions<T>) {\n const queryClient = getQueryClient();\n await queryClient.prefetchQuery(options);\n return getQueryData<T>(options.queryKey);\n }\n\n export async function prefetchInfiniteQuery<T, P>(\n options: UseInfiniteQueryOptions<\n T,\n Error,\n InfiniteData<T>,\n QueryKey,\n P\n >\n ) {\n const queryClient = getQueryClient();\n await queryClient.prefetchInfiniteQuery(options);\n return getInfiniteQueryData<T>(options.queryKey);\n }\n\n export function generateClientServerQuery<T>(options: UseQueryOptions<T>) {\n return {\n prefetch: () => prefetchQuery(options),\n getData: () => getQueryData<T>(options.queryKey),\n useClientQuery: () => useQuery(options),\n fetchAndGet: () => getQueryClient().fetchQuery(options),\n };\n }\n\n export function generateClientServerInfiniteQuery<T, P>(\n options: UseInfiniteQueryOptions<\n T,\n Error,\n InfiniteData<T>,\n QueryKey,\n P\n >\n ) {\n return {\n prefetch: () => prefetchInfiniteQuery(options),\n getData: () => getInfiniteQueryData<T>(options.queryKey),\n useClientQuery: () => useInfiniteQuery(options),\n fetchAndGet: () => getQueryClient().fetchInfiniteQuery(options),\n };\n }\n}\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { DynamicProps } from \"../types\";\nimport { CONFIG } from \"../config\";\nimport { parseAsset } from \"../utils\";\n\nexport function getDynamicPropsQueryOptions() {\n return queryOptions({\n queryKey: [\"core\", \"dynamic-props\"],\n refetchInterval: 60000,\n staleTime: 60000,\n refetchOnMount: true,\n queryFn: async (): Promise<DynamicProps> => {\n const globalDynamic = await CONFIG.hiveClient.database\n .getDynamicGlobalProperties()\n .then((r: any) => ({\n total_vesting_fund_hive:\n r.total_vesting_fund_hive || r.total_vesting_fund_steem,\n total_vesting_shares: r.total_vesting_shares,\n hbd_print_rate: r.hbd_print_rate || r.sbd_print_rate,\n hbd_interest_rate: r.hbd_interest_rate,\n head_block_number: r.head_block_number,\n vesting_reward_percent: r.vesting_reward_percent,\n virtual_supply: r.virtual_supply,\n }));\n\n const feedHistory =\n await CONFIG.hiveClient.database.call(\"get_feed_history\");\n const chainProps = await CONFIG.hiveClient.database.call(\n \"get_chain_properties\"\n );\n const rewardFund = await CONFIG.hiveClient.database.call(\n \"get_reward_fund\",\n [\"post\"]\n );\n\n const hivePerMVests =\n (parseAsset(globalDynamic.total_vesting_fund_hive).amount /\n parseAsset(globalDynamic.total_vesting_shares).amount) *\n 1e6;\n const base = parseAsset(feedHistory.current_median_history.base).amount;\n const quote = parseAsset(feedHistory.current_median_history.quote).amount;\n const fundRecentClaims = parseFloat(rewardFund.recent_claims);\n const fundRewardBalance = parseAsset(rewardFund.reward_balance).amount;\n const hbdPrintRate = globalDynamic.hbd_print_rate;\n const hbdInterestRate = globalDynamic.hbd_interest_rate;\n const headBlock = globalDynamic.head_block_number;\n const totalVestingFund = parseAsset(\n globalDynamic.total_vesting_fund_hive\n ).amount;\n const totalVestingShares = parseAsset(\n globalDynamic.total_vesting_shares\n ).amount;\n const virtualSupply = parseAsset(globalDynamic.virtual_supply).amount;\n const vestingRewardPercent = globalDynamic.vesting_reward_percent;\n const accountCreationFee = chainProps.account_creation_fee;\n\n return {\n hivePerMVests,\n base,\n quote,\n fundRecentClaims,\n fundRewardBalance,\n hbdPrintRate,\n hbdInterestRate,\n headBlock,\n totalVestingFund,\n totalVestingShares,\n virtualSupply,\n vestingRewardPercent,\n accountCreationFee,\n };\n },\n });\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport {\n AccountFollowStats,\n AccountProfile,\n AccountReputation,\n FullAccount,\n} from \"../types\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getAccountFullQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: [\"get-account-full\", username],\n queryFn: async () => {\n if (!username) {\n throw new Error(\"[SDK] Username is empty\");\n }\n\n const response = (await CONFIG.hiveClient.database.getAccounts([\n username,\n ])) as any[];\n if (!response[0]) {\n throw new Error(\"[SDK] No account with given username\");\n }\n\n const profile = JSON.parse(response[0].posting_json_metadata!)\n .profile as AccountProfile;\n\n let follow_stats: AccountFollowStats | undefined;\n try {\n follow_stats = await CONFIG.hiveClient.database.call(\n \"get_follow_count\",\n [username]\n );\n } catch (e) {}\n\n const reputation: AccountReputation[] = await CONFIG.hiveClient.call(\n \"condenser_api\",\n \"get_account_reputations\",\n [username, 1]\n );\n\n return {\n name: response[0].name,\n owner: response[0].owner,\n active: response[0].active,\n posting: response[0].posting,\n memo_key: response[0].memo_key,\n post_count: response[0].post_count,\n created: response[0].created,\n posting_json_metadata: response[0].posting_json_metadata,\n last_vote_time: response[0].last_vote_time,\n last_post: response[0].last_post,\n json_metadata: response[0].json_metadata,\n reward_hive_balance: response[0].reward_hive_balance,\n reward_hbd_balance: response[0].reward_hbd_balance,\n reward_vesting_hive: response[0].reward_vesting_hive,\n reward_vesting_balance: response[0].reward_vesting_balance,\n balance: response[0].balance,\n hbd_balance: response[0].hbd_balance,\n savings_balance: response[0].savings_balance,\n savings_hbd_balance: response[0].savings_hbd_balance,\n savings_hbd_last_interest_payment:\n response[0].savings_hbd_last_interest_payment,\n savings_hbd_seconds_last_update:\n response[0].savings_hbd_seconds_last_update,\n savings_hbd_seconds: response[0].savings_hbd_seconds,\n next_vesting_withdrawal: response[0].next_vesting_withdrawal,\n pending_claimed_accounts: response[0].pending_claimed_accounts,\n vesting_shares: response[0].vesting_shares,\n delegated_vesting_shares: response[0].delegated_vesting_shares,\n received_vesting_shares: response[0].received_vesting_shares,\n vesting_withdraw_rate: response[0].vesting_withdraw_rate,\n to_withdraw: response[0].to_withdraw,\n withdrawn: response[0].withdrawn,\n witness_votes: response[0].witness_votes,\n proxy: response[0].proxy,\n recovery_account: response[0].recovery_account,\n proxied_vsf_votes: response[0].proxied_vsf_votes,\n voting_manabar: response[0].voting_manabar,\n voting_power: response[0].voting_power,\n downvote_manabar: response[0].downvote_manabar,\n follow_stats,\n reputation: reputation[0].reputation,\n profile: {\n ...profile,\n reputation: reputation[0].reputation,\n },\n } satisfies FullAccount;\n },\n enabled: !!username,\n staleTime: 60000,\n });\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getSearchAccountsByUsernameQueryOptions(\n query: string,\n limit = 5,\n excludeList: string[] = []\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"search\", query, excludeList],\n enabled: !!query,\n queryFn: async () => {\n const response = (await CONFIG.hiveClient.database.call(\n \"lookup_accounts\",\n [query, limit]\n )) as string[];\n return response.filter((item) =>\n excludeList.length > 0 ? !excludeList.includes(item) : true\n );\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function checkUsernameWalletsPendingQueryOptions(username: string) {\n return queryOptions({\n queryKey: [\"accounts\", \"check-wallet-pending\", username],\n queryFn: async () => {\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/wallets-chkuser\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n username,\n }),\n }\n );\n return (await response.json()) as { exist: boolean };\n },\n enabled: !!username,\n refetchOnMount: true,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { AccountRelationship } from \"../types\";\n\nexport function getRelationshipBetweenAccountsQueryOptions(\n reference: string | undefined,\n target: string | undefined\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"relations\", reference, target],\n enabled: !!reference && !!target,\n refetchOnMount: false,\n refetchInterval: 3_600_000,\n queryFn: async () => {\n return (await CONFIG.hiveClient.call(\n \"bridge\",\n \"get_relationship_between_accounts\",\n [reference, target]\n )) as AccountRelationship;\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\ntype Subscriptions = string[];\n\nexport function getAccountSubscriptionsQueryOptions(\n username: string | undefined\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"subscriptions\", username],\n enabled: !!username,\n queryFn: async () => {\n const response = await CONFIG.hiveClient.call(\n \"bridge\",\n \"list_all_subscriptions\",\n {\n account: username,\n }\n );\n return (response ?? []) as Subscriptions;\n },\n });\n}\n","import { CONFIG, getAccessToken } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { AccountBookmark } from \"../types\";\n\nexport function getActiveAccountBookmarksQueryOptions(\n activeUsername: string | undefined\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"bookmarks\", activeUsername],\n enabled: !!activeUsername,\n queryFn: async () => {\n if (!activeUsername) {\n throw new Error(\"[SDK][Accounts][Bookmarks] – no active user\");\n }\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/bookmarks\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ code: getAccessToken(activeUsername) }),\n }\n );\n return (await response.json()) as AccountBookmark[];\n },\n });\n}\n","import { CONFIG, getAccessToken } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { AccountFavorite } from \"../types\";\n\nexport function getActiveAccountFavouritesQueryOptions(\n activeUsername: string | undefined\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"favourites\", activeUsername],\n enabled: !!activeUsername,\n queryFn: async () => {\n if (!activeUsername) {\n throw new Error(\"[SDK][Accounts][Favourites] – no active user\");\n }\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/favorites\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ code: getAccessToken(activeUsername) }),\n }\n );\n return (await response.json()) as AccountFavorite[];\n },\n });\n}\n","import { CONFIG, getAccessToken } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { GetRecoveriesEmailResponse } from \"../types\";\n\nexport function getAccountRecoveriesQueryOptions(username: string | undefined) {\n return queryOptions({\n enabled: !!username,\n queryKey: [\"accounts\", \"recoveries\", username],\n queryFn: async () => {\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/recoveries\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ code: getAccessToken(username!) }),\n }\n );\n\n return response.json() as Promise<GetRecoveriesEmailResponse[]>;\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getAccountPendingRecoveryQueryOptions(\n username: string | undefined\n) {\n return queryOptions({\n enabled: !!username,\n queryKey: [\"accounts\", \"recoveries\", username, \"pending-request\"],\n queryFn: () =>\n CONFIG.hiveClient.call(\n \"database_api\",\n \"find_change_recovery_account_requests\",\n { accounts: [username] }\n ),\n });\n}\n","import { useBroadcastMutation } from \"@/modules/core\";\nimport { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { getAccountFullQueryOptions } from \"../queries\";\nimport { AccountProfile, FullAccount } from \"../types\";\nimport * as R from \"remeda\";\n\ninterface Payload {\n profile: Partial<AccountProfile>;\n tokens: AccountProfile[\"tokens\"];\n}\n\nfunction sanitizeTokens(\n tokens?: AccountProfile[\"tokens\"]\n): AccountProfile[\"tokens\"] | undefined {\n return tokens?.map(({ meta, ...rest }) => {\n if (!meta || typeof meta !== \"object\") {\n return { ...rest, meta };\n }\n\n const { privateKey, username, ...safeMeta } = meta;\n return { ...rest, meta: safeMeta };\n });\n}\n\nfunction getBuiltProfile({\n profile,\n tokens,\n data,\n}: Partial<Payload> & { data: FullAccount }) {\n const metadata = R.pipe(\n JSON.parse(data?.posting_json_metadata || \"{}\").profile as AccountProfile,\n R.mergeDeep(profile ?? {})\n );\n\n if (tokens && tokens.length > 0) {\n metadata.tokens = tokens;\n }\n\n metadata.tokens = sanitizeTokens(metadata.tokens);\n\n return metadata;\n}\n\nexport function useAccountUpdate(username: string) {\n const queryClient = useQueryClient();\n\n const { data } = useQuery(getAccountFullQueryOptions(username));\n\n return useBroadcastMutation(\n [\"accounts\", \"update\"],\n username,\n (payload: Partial<Payload>) => {\n if (!data) {\n throw new Error(\"[SDK][Accounts] – cannot update not existing account\");\n }\n\n return [\n [\n \"account_update2\",\n {\n account: username,\n json_metadata: \"\",\n extensions: [],\n posting_json_metadata: JSON.stringify({\n profile: getBuiltProfile({ ...payload, data }),\n }),\n },\n ],\n ];\n },\n (_, variables) =>\n queryClient.setQueryData<FullAccount>(\n getAccountFullQueryOptions(username).queryKey,\n (data) => {\n if (!data) {\n return data;\n }\n\n const obj = R.clone(data);\n obj.profile = getBuiltProfile({ ...variables, data });\n return obj;\n }\n )\n );\n}\n","import { broadcastJson, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { getRelationshipBetweenAccountsQueryOptions } from \"../queries\";\nimport { AccountRelationship } from \"../types\";\n\ntype Kind = \"toggle-ignore\" | \"toggle-follow\";\n\nexport function useAccountRelationsUpdate(\n reference: string | undefined,\n target: string | undefined,\n onSuccess: (data: Partial<AccountRelationship> | undefined) => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"relation\", \"update\", reference, target],\n mutationFn: async (kind: Kind) => {\n const relationsQuery = getRelationshipBetweenAccountsQueryOptions(\n reference,\n target\n );\n await getQueryClient().prefetchQuery(relationsQuery);\n const actualRelation = getQueryClient().getQueryData(\n relationsQuery.queryKey\n );\n\n await broadcastJson(reference, \"follow\", [\n \"follow\",\n {\n follower: reference,\n following: target,\n what: [\n ...(kind === \"toggle-ignore\" && !actualRelation?.ignores\n ? [\"ignore\"]\n : []),\n ...(kind === \"toggle-follow\" && !actualRelation?.follows\n ? [\"blog\"]\n : []),\n ],\n },\n ]);\n\n return {\n ...actualRelation,\n ignores:\n kind === \"toggle-ignore\"\n ? !actualRelation?.ignores\n : actualRelation?.ignores,\n follows:\n kind === \"toggle-follow\"\n ? !actualRelation?.follows\n : actualRelation?.follows,\n } satisfies Partial<AccountRelationship>;\n },\n onError,\n onSuccess(data) {\n onSuccess(data);\n\n getQueryClient().setQueryData(\n [\"accounts\", \"relations\", reference, target],\n data\n );\n },\n });\n}\n","import { CONFIG, getAccessToken, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\ninterface Payload {\n author: string;\n permlink: string;\n}\n\nexport function useBookmarkAdd(\n username: string | undefined,\n onSuccess: () => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"bookmarks\", \"add\", username],\n mutationFn: async ({ author, permlink }: Payload) => {\n if (!username) {\n throw new Error(\"[SDK][Account][Bookmarks] – no active user\");\n }\n\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/bookmarks-add\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n author,\n permlink,\n code: getAccessToken(username),\n }),\n }\n );\n return response.json();\n },\n onSuccess: () => {\n onSuccess();\n getQueryClient().invalidateQueries({\n queryKey: [\"accounts\", \"bookmarks\", username],\n });\n },\n onError,\n });\n}\n","import { CONFIG, getAccessToken, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useBookmarkDelete(\n username: string | undefined,\n onSuccess: () => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"bookmarks\", \"delete\", username],\n mutationFn: async (bookmarkId: string) => {\n if (!username) {\n throw new Error(\"[SDK][Account][Bookmarks] – no active user\");\n }\n\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/bookmarks-delete\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n id: bookmarkId,\n code: getAccessToken(username),\n }),\n }\n );\n return response.json();\n },\n onSuccess: () => {\n onSuccess();\n getQueryClient().invalidateQueries({\n queryKey: [\"accounts\", \"bookmarks\", username],\n });\n },\n onError,\n });\n}\n","import { CONFIG, getAccessToken, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useAccountFavouriteAdd(\n username: string | undefined,\n onSuccess: () => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"favourites\", \"add\", username],\n mutationFn: async (account: string) => {\n if (!username) {\n throw new Error(\"[SDK][Account][Bookmarks] – no active user\");\n }\n\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/favorites-add\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n account,\n code: getAccessToken(username),\n }),\n }\n );\n return response.json();\n },\n onSuccess: () => {\n onSuccess();\n getQueryClient().invalidateQueries({\n queryKey: [\"accounts\", \"favourites\", username],\n });\n },\n onError,\n });\n}\n","import { CONFIG, getAccessToken, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useAccountFavouriteDelete(\n username: string | undefined,\n onSuccess: () => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"favourites\", \"add\", username],\n mutationFn: async (account: string) => {\n if (!username) {\n throw new Error(\"[SDK][Account][Bookmarks] – no active user\");\n }\n\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/favorites-delete\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n account,\n code: getAccessToken(username),\n }),\n }\n );\n return response.json();\n },\n onSuccess: () => {\n onSuccess();\n getQueryClient().invalidateQueries({\n queryKey: [\"accounts\", \"favourites\", username],\n });\n },\n onError,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { AuthorityType, PrivateKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport * as R from \"remeda\";\nimport { getAccountFullQueryOptions } from \"../queries\";\n\nexport interface Keys {\n owner: PrivateKey;\n active: PrivateKey;\n posting: PrivateKey;\n memo_key: PrivateKey;\n}\n\ninterface Payload {\n keepCurrent?: boolean;\n currentKey: PrivateKey;\n keys: Keys[];\n}\n\nexport function dedupeAndSortKeyAuths(\n existing: AuthorityType[\"key_auths\"],\n additions: [string, number][]\n): AuthorityType[\"key_auths\"] {\n const merged = new Map<string, number>();\n\n existing.forEach(([key, weight]) => {\n merged.set(key.toString(), weight);\n });\n\n additions.forEach(([key, weight]) => {\n merged.set(key.toString(), weight);\n });\n\n return Array.from(merged.entries())\n .sort(([keyA], [keyB]) => keyA.localeCompare(keyB))\n .map(([key, weight]) => [key, weight] as [string, number]);\n}\n\ntype UpdateKeyAuthsOptions = Pick<\n UseMutationOptions<unknown, Error, Payload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountUpdateKeyAuths(\n username: string,\n options?: UpdateKeyAuthsOptions\n) {\n const { data: accountData } = useQuery(getAccountFullQueryOptions(username));\n\n return useMutation({\n mutationKey: [\"accounts\", \"keys-update\", username],\n mutationFn: async ({ keys, keepCurrent = false, currentKey }: Payload) => {\n if (!accountData) {\n throw new Error(\n \"[SDK][Update password] – cannot update keys for anon user\"\n );\n }\n\n const prepareAuth = (keyName: keyof Keys) => {\n const auth: AuthorityType = R.clone(accountData[keyName]);\n\n auth.key_auths = dedupeAndSortKeyAuths(\n keepCurrent ? auth.key_auths : [],\n keys.map(\n (values, i) =>\n [values[keyName].createPublic().toString(), i + 1] as [\n string,\n number,\n ]\n )\n );\n\n return auth;\n };\n\n return CONFIG.hiveClient.broadcast.updateAccount(\n {\n account: username,\n json_metadata: accountData.json_metadata,\n owner: prepareAuth(\"owner\"),\n active: prepareAuth(\"active\"),\n posting: prepareAuth(\"posting\"),\n memo_key: keepCurrent\n ? accountData.memo_key\n : keys[0].memo_key.createPublic().toString(),\n },\n currentKey\n );\n },\n ...options,\n });\n}\n","import { PrivateKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { getAccountFullQueryOptions } from \"../queries\";\nimport { useAccountUpdateKeyAuths } from \"./use-account-update-key-auths\";\n\ninterface Payload {\n newPassword: string;\n currentPassword: string;\n keepCurrent?: boolean;\n}\n\n/**\n * Only native Hive and custom passwords could be updated here\n * Seed based password cannot be updated here, it will be in an account always for now\n */\ntype UpdatePasswordOptions = Pick<\n UseMutationOptions<unknown, Error, Payload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountUpdatePassword(\n username: string,\n options?: UpdatePasswordOptions\n) {\n const { data: accountData } = useQuery(getAccountFullQueryOptions(username));\n\n const { mutateAsync: updateKeys } = useAccountUpdateKeyAuths(username);\n\n return useMutation({\n mutationKey: [\"accounts\", \"password-update\", username],\n mutationFn: async ({\n newPassword,\n currentPassword,\n keepCurrent,\n }: Payload) => {\n if (!accountData) {\n throw new Error(\n \"[SDK][Update password] – cannot update password for anon user\"\n );\n }\n const currentKey = PrivateKey.fromLogin(\n username,\n currentPassword,\n \"owner\"\n );\n\n return updateKeys({\n currentKey,\n keepCurrent,\n keys: [\n {\n owner: PrivateKey.fromLogin(username, newPassword, \"owner\"),\n active: PrivateKey.fromLogin(username, newPassword, \"active\"),\n posting: PrivateKey.fromLogin(username, newPassword, \"posting\"),\n memo_key: PrivateKey.fromLogin(username, newPassword, \"memo\"),\n },\n ],\n });\n },\n ...options,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { PrivateKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n useQueryClient,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { getAccountFullQueryOptions } from \"../queries\";\nimport * as R from \"remeda\";\nimport { FullAccount } from \"../types\";\nimport { Keychain } from \"@/modules/keychain\";\nimport hs from \"hivesigner\";\n\ntype SignType = \"key\" | \"keychain\" | \"hivesigner\";\n\ninterface CommonPayload {\n accountName: string;\n type: SignType;\n key?: PrivateKey;\n}\n\ntype RevokePostingOptions = Pick<\n UseMutationOptions<unknown, Error, CommonPayload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountRevokePosting(\n username: string | undefined,\n options: RevokePostingOptions\n) {\n const queryClient = useQueryClient();\n\n const { data } = useQuery(getAccountFullQueryOptions(username));\n\n return useMutation({\n mutationKey: [\"accounts\", \"revoke-posting\", data?.name],\n mutationFn: async ({ accountName, type, key }: CommonPayload) => {\n if (!data) {\n throw new Error(\n \"[SDK][Accounts] – cannot revoke posting for anonymous user\"\n );\n }\n\n const posting = R.pipe(\n {},\n R.mergeDeep(data.posting)\n ) as FullAccount[\"posting\"];\n\n posting.account_auths = posting.account_auths.filter(\n ([account]) => account !== accountName\n );\n\n const operationBody = {\n account: data.name,\n posting,\n memo_key: data.memo_key,\n json_metadata: data.json_metadata,\n };\n\n if (type === \"key\" && key) {\n return CONFIG.hiveClient.broadcast.updateAccount(operationBody, key);\n } else if (type === \"keychain\") {\n return Keychain.broadcast(\n data.name,\n [[\"account_update\", operationBody]],\n \"Active\"\n ) as Promise<any>;\n } else {\n const params = {\n callback: `https://ecency.com/@${data.name}/permissions`,\n };\n return hs.sendOperation(\n [\"account_update\", operationBody],\n params,\n () => {}\n );\n }\n },\n onError: options.onError,\n onSuccess: (resp, payload, ctx) => {\n (options.onSuccess as\n | ((data: unknown, variables: CommonPayload, context: unknown) => unknown)\n | undefined)?.(resp, payload, ctx);\n queryClient.setQueryData<FullAccount>(\n getAccountFullQueryOptions(username).queryKey,\n (data) =>\n ({\n ...data,\n posting: {\n ...data?.posting,\n account_auths:\n data?.posting?.account_auths?.filter(\n ([account]) => account !== payload.accountName\n ) ?? [],\n },\n }) as FullAccount\n );\n },\n });\n}\n","import { CONFIG, getAccessToken } from \"@/modules/core\";\nimport { Keychain } from \"@/modules/keychain\";\nimport { PrivateKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport hs from \"hivesigner\";\nimport { getAccountFullQueryOptions } from \"../queries\";\n\ntype SignType = \"key\" | \"keychain\" | \"hivesigner\" | \"ecency\";\n\ninterface CommonPayload {\n accountName: string;\n type: SignType;\n key?: PrivateKey;\n email?: string;\n}\n\ntype UpdateRecoveryOptions = Pick<\n UseMutationOptions<unknown, Error, CommonPayload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountUpdateRecovery(\n username: string | undefined,\n options: UpdateRecoveryOptions\n) {\n const { data } = useQuery(getAccountFullQueryOptions(username));\n\n return useMutation({\n mutationKey: [\"accounts\", \"recovery\", data?.name],\n mutationFn: async ({ accountName, type, key, email }: CommonPayload) => {\n if (!data) {\n throw new Error(\n \"[SDK][Accounts] – cannot change recovery for anonymous user\"\n );\n }\n\n const operationBody = {\n account_to_recover: data.name,\n new_recovery_account: accountName,\n extensions: [],\n };\n\n if (type === \"ecency\") {\n return fetch(CONFIG.privateApiHost + \"/private-api/recoveries-add\", {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(data.name),\n email,\n publicKeys: [\n ...data.owner.key_auths,\n ...data.active.key_auths,\n ...data.posting.key_auths,\n data.memo_key,\n ],\n }),\n });\n } else if (type === \"key\" && key) {\n return CONFIG.hiveClient.broadcast.sendOperations(\n [[\"change_recovery_account\", operationBody]],\n key\n );\n } else if (type === \"keychain\") {\n return Keychain.broadcast(\n data.name,\n [[\"change_recovery_account\", operationBody]],\n \"Active\"\n ) as Promise<any>;\n } else {\n const params = {\n callback: `https://ecency.com/@${data.name}/permissions`,\n };\n return hs.sendOperation(\n [\"change_recovery_account\", operationBody],\n params,\n () => {}\n );\n }\n },\n onError: options.onError,\n onSuccess: options.onSuccess,\n });\n}\n","import { AuthorityType, PrivateKey, PublicKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { getAccountFullQueryOptions } from \"../queries\";\nimport * as R from \"remeda\";\nimport { CONFIG } from \"@/modules/core\";\nimport { Keys } from \"./use-account-update-key-auths\";\n\ninterface Payload {\n currentKey: PrivateKey;\n revokingKey: PublicKey;\n}\n\n/**\n * This hook provides functionality to revoke a key from an account on the Hive blockchain.\n * It leverages React Query's `useMutation` for managing the mutation state and executing\n * the operation efficiently.\n *\n * @param username The username of the Hive account from which the key should be revoked.\n * Pass `undefined` if the username is unknown or not set yet.\n *\n * @returns The mutation object from `useMutation`, including methods to trigger the key\n * revocation and access its state (e.g., loading, success, error).\n */\ntype RevokeKeyOptions = Pick<\n UseMutationOptions<unknown, Error, Payload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountRevokeKey(\n username: string | undefined,\n options?: RevokeKeyOptions\n) {\n const { data: accountData } = useQuery(getAccountFullQueryOptions(username));\n\n return useMutation({\n mutationKey: [\"accounts\", \"revoke-key\", accountData?.name],\n mutationFn: async ({ currentKey, revokingKey }: Payload) => {\n if (!accountData) {\n throw new Error(\n \"[SDK][Update password] – cannot update keys for anon user\"\n );\n }\n\n const prepareAuth = (keyName: keyof Keys) => {\n const auth: AuthorityType = R.clone(accountData[keyName]);\n\n auth.key_auths = auth.key_auths.filter(\n ([key]) => key !== revokingKey.toString()\n );\n\n return auth;\n };\n\n return CONFIG.hiveClient.broadcast.updateAccount(\n {\n account: accountData.name,\n json_metadata: accountData.json_metadata,\n owner: prepareAuth(\"owner\"),\n active: prepareAuth(\"active\"),\n posting: prepareAuth(\"posting\"),\n memo_key: accountData.memo_key,\n },\n currentKey\n );\n },\n ...options,\n });\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport { cryptoUtils, Operation, PrivateKey } from \"@hiveio/dhive\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useSignOperationByKey(username: string | undefined) {\n return useMutation({\n mutationKey: [\"operations\", \"sign\", username],\n mutationFn: ({\n operation,\n keyOrSeed,\n }: {\n operation: Operation;\n keyOrSeed: string;\n }) => {\n if (!username) {\n throw new Error(\"[Operations][Sign] – cannot sign op with anon user\");\n }\n\n let privateKey: PrivateKey;\n if (keyOrSeed.split(\" \").length === 12) {\n privateKey = PrivateKey.fromLogin(username, keyOrSeed, \"active\");\n } else if (cryptoUtils.isWif(keyOrSeed)) {\n privateKey = PrivateKey.fromString(keyOrSeed);\n } else {\n privateKey = PrivateKey.from(keyOrSeed);\n }\n\n return CONFIG.hiveClient.broadcast.sendOperations(\n [operation],\n privateKey\n );\n },\n });\n}\n","import { Keychain } from \"@/modules/keychain\";\nimport { Operation } from \"@hiveio/dhive\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useSignOperationByKeychain(\n username: string | undefined,\n keyType: Keychain.KeychainAuthorityTypes = \"Active\"\n) {\n return useMutation({\n mutationKey: [\"operations\", \"sign-keychain\", username],\n mutationFn: ({ operation }: { operation: Operation }) => {\n if (!username) {\n throw new Error(\n \"[SDK][Keychain] – cannot sign operation with anon user\"\n );\n }\n return Keychain.broadcast(username, [operation], keyType) as Promise<any>;\n },\n });\n}\n","import { Operation } from \"@hiveio/dhive\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport hs from \"hivesigner\";\n\nexport function useSignOperationByHivesigner(callbackUri = \"/\") {\n return useMutation({\n mutationKey: [\"operations\", \"sign-hivesigner\", callbackUri],\n mutationFn: async ({ operation }: { operation: Operation }) => {\n return hs.sendOperation(operation, { callback: callbackUri }, () => {});\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getChainPropertiesQueryOptions() {\n return queryOptions({\n queryKey: [\"operations\", \"chain-properties\"],\n queryFn: async () => {\n return await CONFIG.hiveClient.database.getChainProperties();\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { infiniteQueryOptions } from \"@tanstack/react-query\";\nimport { TrendingTag } from \"../types\";\n\nexport function getTrendingTagsQueryOptions(limit = 20) {\n return infiniteQueryOptions({\n queryKey: [\"posts\", \"trending-tags\"],\n queryFn: async ({ pageParam: { afterTag } }) =>\n CONFIG.hiveClient.database\n .call(\"get_trending_tags\", [afterTag, limit])\n .then((tags: TrendingTag[]) =>\n tags\n .filter((x) => x.name !== \"\")\n .filter((x) => !x.name.startsWith(\"hive-\"))\n .map((x) => x.name)\n ),\n initialPageParam: { afterTag: \"\" },\n getNextPageParam: (lastPage) => ({\n afterTag: lastPage?.[lastPage?.length - 1],\n }),\n staleTime: Infinity,\n refetchOnMount: true,\n });\n}\n","import { CONFIG, getAccessToken } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { Fragment } from \"../types\";\n\nexport function getFragmentsQueryOptions(username: string) {\n return queryOptions({\n queryKey: [\"posts\", \"fragments\", username],\n queryFn: async () => {\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/fragments\",\n {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(username),\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n return response.json() as Promise<Fragment[]>;\n },\n enabled: !!username,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\n// TODO: replace any with Entry\nexport function getPromotedPostsQuery<T extends any>(\n type: \"feed\" | \"waves\" = \"feed\"\n) {\n return queryOptions({\n queryKey: [\"posts\", \"promoted\", type],\n queryFn: async () => {\n const url = new URL(\n CONFIG.privateApiHost + \"/private-api/promoted-entries\"\n );\n if (type === \"waves\") {\n url.searchParams.append(\"short_content\", \"1\");\n }\n\n const response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n const data = await response.json();\n return data as T[];\n },\n });\n}\n","import { CONFIG, getAccessToken, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"../types\";\nimport { getFragmentsQueryOptions } from \"../queries\";\n\nexport function useAddFragment(username: string) {\n return useMutation({\n mutationKey: [\"posts\", \"add-fragment\", username],\n mutationFn: async ({ title, body }: { title: string; body: string }) => {\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/fragments-add\",\n {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(username),\n title,\n body,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n return response.json() as Promise<Fragment>;\n },\n onSuccess(response) {\n getQueryClient().setQueryData<Fragment[]>(\n getFragmentsQueryOptions(username).queryKey,\n (data) => [response, ...(data ?? [])]\n );\n },\n });\n}\n","import { CONFIG, getAccessToken, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"../types\";\nimport { getFragmentsQueryOptions } from \"../queries\";\n\nexport function useEditFragment(username: string, fragmentId: string) {\n return useMutation({\n mutationKey: [\"posts\", \"edit-fragment\", username, fragmentId],\n mutationFn: async ({ title, body }: { title: string; body: string }) => {\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/fragments-update\",\n {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(username),\n id: fragmentId,\n title,\n body,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n return response.json() as Promise<Fragment>;\n },\n onSuccess(response) {\n getQueryClient().setQueryData<Fragment[]>(\n getFragmentsQueryOptions(username).queryKey,\n (data) => {\n if (!data) {\n return [];\n }\n\n const index = data.findIndex(({ id }) => id === fragmentId);\n if (index >= 0) {\n data[index] = response;\n }\n\n return [...data];\n }\n );\n },\n });\n}\n","import { CONFIG, getAccessToken, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"../types\";\nimport { getFragmentsQueryOptions } from \"../queries\";\n\nexport function useRemoveFragment(username: string, fragmentId: string) {\n return useMutation({\n mutationKey: [\"posts\", \"remove-fragment\", username],\n mutationFn: async () =>\n fetch(CONFIG.privateApiHost + \"/private-api/fragments-delete\", {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(username),\n id: fragmentId,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }),\n onSuccess() {\n getQueryClient().setQueryData<Fragment[]>(\n getFragmentsQueryOptions(username).queryKey,\n (data) => [...(data ?? [])].filter(({ id }) => id !== fragmentId)\n );\n },\n });\n}\n","export * from \"./use-record-activity\";\n","import { CONFIG } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\ntype ActivityType =\n // Editor related\n | \"post-created\"\n | \"post-updated\"\n | \"post-scheduled\"\n | \"draft-created\"\n | \"video-published\"\n\n // Legacy editor related\n | \"legacy-post-created\"\n | \"legacy-post-updated\"\n | \"legacy-post-scheduled\"\n | \"legacy-draft-created\"\n | \"legacy-video-published\"\n\n // Perks related\n | \"perks-points-by-qr\"\n | \"perks-account-boost\"\n | \"perks-promote\"\n | \"perks-boost-plus\"\n | \"points-claimed\"\n | \"spin-rolled\"\n\n // Signup related\n | \"signed-up-with-wallets\"\n | \"signed-up-with-email\";\n\nexport function useRecordActivity(\n username: string | undefined,\n activityType: ActivityType\n) {\n return useMutation({\n mutationKey: [\"analytics\", activityType],\n mutationFn: async () => {\n if (!activityType) {\n throw new Error(\"[SDK][Analytics] – no activity type provided\");\n }\n await fetch(CONFIG.plausibleHost + \"/api/event\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n name: activityType,\n url: window.location.href,\n domain: window.location.host,\n props: {\n username,\n },\n }),\n });\n },\n });\n}\n","export * from \"./get-account-token-query-options\";\nexport * from \"./get-account-videos-query-options\";\n","export * from \"./get-decode-memo-query-options\";\n","import { getAccessToken } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport hs from \"hivesigner\";\n\nexport function getDecodeMemoQueryOptions(username: string, memo: string) {\n return queryOptions({\n queryKey: [\"integrations\", \"hivesigner\", \"decode-memo\", username],\n queryFn: async () => {\n const accessToken = getAccessToken(username);\n\n if (accessToken) {\n const hsClient = new hs.Client({\n accessToken,\n });\n return hsClient.decode(memo);\n }\n },\n });\n}\n","import * as queries from \"./queries\";\n\nconst HiveSignerIntegration = {\n queries,\n};\n\nexport { HiveSignerIntegration };\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { HiveSignerIntegration } from \"../../hivesigner\";\nimport { getQueryClient } from \"@/modules/core\";\n\nexport function getAccountTokenQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: [\"integrations\", \"3speak\", \"authenticate\", username],\n enabled: !!username,\n queryFn: async () => {\n if (!username) {\n throw new Error(\"[SDK][Integrations][3Speak] – anon user\");\n }\n\n const response = await fetch(\n `https://studio.3speak.tv/mobile/login?username=${username}&hivesigner=true`,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n const memoQueryOptions =\n HiveSignerIntegration.queries.getDecodeMemoQueryOptions(\n username,\n (await response.json()).memo\n );\n await getQueryClient().prefetchQuery(memoQueryOptions);\n const { memoDecoded } = getQueryClient().getQueryData(\n memoQueryOptions.queryKey\n );\n\n return memoDecoded.replace(\"#\", \"\");\n },\n });\n}\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { ThreeSpeakVideo } from \"../types\";\nimport { getQueryClient } from \"@/modules/core\";\nimport { getAccountTokenQueryOptions } from \"./get-account-token-query-options\";\n\nexport function getAccountVideosQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: [\"integrations\", \"3speak\", \"videos\", username],\n enabled: !!username,\n queryFn: async () => {\n await getQueryClient().prefetchQuery(\n getAccountTokenQueryOptions(username)\n );\n const token = getQueryClient().getQueryData(\n getAccountTokenQueryOptions(username).queryKey\n );\n\n const response = await fetch(\n `https://studio.3speak.tv/mobile/api/my-videos`,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n }\n );\n return (await response.json()) as ThreeSpeakVideo[];\n },\n });\n}\n","export * from \"./types\";\nimport * as queries from \"./queries\";\n\nconst ThreeSpeakIntegration = {\n queries,\n};\n\nexport { ThreeSpeakIntegration };\n","import { queryOptions } from \"@tanstack/react-query\";\n\nexport function getHivePoshLinksQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: [\"integrations\", \"hiveposh\", \"links\", username],\n queryFn: async () => {\n const response = await fetch(\n `https://hiveposh.com/api/v0/linked-accounts/${username}`,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n const data = await response.json();\n\n return {\n twitter: {\n username: data.twitter_username,\n profile: data.twitter_profile,\n },\n reddit: {\n username: data.reddit_username,\n profile: data.reddit_profile,\n },\n } satisfies Record<\n \"twitter\" | \"reddit\",\n { username: string; profile: string }\n >;\n },\n });\n}\n","import { queryOptions } from \"@tanstack/react-query\";\n\nexport interface StatsResponse {\n results: [\n {\n metrics: number[];\n dimensions: string[];\n },\n ];\n query: {\n site_id: string;\n metrics: string[];\n date_range: string[];\n filters: string[];\n };\n}\ninterface UseStatsQueryOptions {\n url: string;\n dimensions?: string[];\n metrics?: string[];\n enabled?: boolean;\n}\n\nexport function getStatsQueryOptions({\n url,\n dimensions = [],\n metrics = [\"visitors\", \"pageviews\", \"visit_duration\"],\n enabled = true,\n}: UseStatsQueryOptions) {\n return queryOptions({\n queryKey: [\"integrations\", \"plausible\", url, dimensions, metrics],\n queryFn: async () => {\n const response = await fetch(`https://ecency.com/api/stats`, {\n method: \"POST\",\n body: JSON.stringify({\n metrics,\n url: encodeURIComponent(url),\n dimensions,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n return (await response.json()) as StatsResponse;\n },\n enabled: !!url && enabled,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getRcStatsQueryOptions() {\n return queryOptions({\n queryKey: [\"resource-credits\", \"stats\"],\n queryFn: async () => {\n const response = await CONFIG.hiveClient.call(\n \"rc_api\",\n \"get_rc_stats\",\n {}\n );\n return response.rc_stats;\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { RCAPI } from \"@hiveio/dhive\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getAccountRcQueryOptions(username: string) {\n return queryOptions({\n queryKey: [\"resource-credits\", \"account\", username],\n queryFn: async () => {\n const rcClient = new RCAPI(CONFIG.hiveClient);\n return rcClient.findRCAccounts([username]);\n },\n enabled: !!username,\n });\n}\n","import { CONFIG, getAccessToken } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { GetGameStatus } from \"../types\";\n\nexport function getGameStatusCheckQueryOptions(\n username: string | undefined,\n gameType: \"spin\"\n) {\n return queryOptions({\n queryKey: [\"games\", \"status-check\", gameType, username],\n enabled: !!username,\n queryFn: async () => {\n if (!username) {\n throw new Error(\"[SDK][Games] – anon user in status check\");\n }\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/get-game\",\n {\n method: \"POST\",\n body: JSON.stringify({\n game_type: gameType,\n code: getAccessToken(username),\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n return (await response.json()) as GetGameStatus;\n },\n });\n}\n","import { CONFIG, getAccessToken } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { GameClaim } from \"../types\";\nimport { useRecordActivity } from \"@/modules/analytics/mutations\";\n\nexport function useGameClaim(\n username: string | undefined,\n gameType: \"spin\",\n key: string\n) {\n const { mutateAsync: recordActivity } = useRecordActivity(\n username,\n \"spin-rolled\"\n );\n\n return useMutation({\n mutationKey: [\"games\", \"post\", gameType, username],\n mutationFn: async () => {\n if (!username) {\n throw new Error(\"[SDK][Games] – anon user in game post\");\n }\n\n const response = await fetch(\n CONFIG.privateApiHost + \"/private-api/post-game\",\n {\n method: \"POST\",\n body: JSON.stringify({\n game_type: gameType,\n code: getAccessToken(username),\n key,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n return (await response.json()) as GameClaim;\n },\n onSuccess() {\n recordActivity();\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { Communities } from \"../types\";\n\nexport function getCommunitiesQueryOptions(\n sort: string,\n query?: string,\n limit = 100,\n observer: string | undefined = undefined,\n enabled = true\n) {\n return queryOptions({\n queryKey: [\"communities\", \"list\", sort, query, limit],\n enabled,\n queryFn: async () => {\n const response = await CONFIG.hiveClient.call(\n \"bridge\",\n \"list_communities\",\n {\n last: \"\",\n limit,\n sort: sort === \"hot\" ? \"rank\" : sort,\n query: query ? query : null,\n observer,\n }\n );\n return (\n response\n ? sort === \"hot\"\n ? response.sort(() => Math.random() - 0.5)\n : response\n : []\n ) as Communities;\n },\n });\n}\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { CONFIG } from \"@/modules/core\";\nimport { CommunityRole } from \"../types\";\n\nexport function getCommunityContextQueryOptions(\n username: string | undefined,\n communityName: string | undefined\n) {\n return queryOptions({\n queryKey: [\"community\", \"context\", username, communityName],\n enabled: !!username && !!communityName,\n queryFn: async () => {\n const response = await CONFIG.hiveClient.call(\n \"bridge\",\n \"get_community_context\",\n {\n account: username,\n name: communityName,\n }\n );\n\n return {\n role: response?.role ?? \"guest\",\n subscribed: response?.subscribed ?? false,\n } satisfies {\n role: CommunityRole;\n subscribed: boolean;\n };\n },\n });\n}\n","export enum ROLES {\n OWNER = \"owner\",\n ADMIN = \"admin\",\n MOD = \"mod\",\n MEMBER = \"member\",\n GUEST = \"guest\",\n MUTED = \"muted\",\n}\n\nexport const roleMap: Record<string, string[]> = {\n [ROLES.OWNER]: [\n ROLES.ADMIN,\n ROLES.MOD,\n ROLES.MEMBER,\n ROLES.GUEST,\n ROLES.MUTED,\n ],\n [ROLES.ADMIN]: [ROLES.MOD, ROLES.MEMBER, ROLES.GUEST, ROLES.MUTED],\n [ROLES.MOD]: [ROLES.MEMBER, ROLES.GUEST, ROLES.MUTED],\n};\n\nexport type CommunityTeam = Array<Array<string>>;\nexport type CommunityRole = (typeof ROLES)[keyof typeof ROLES]; // \"owner\" | \"member\" | ...\nexport type CommunityType = \"Topic\" | \"Journal\" | \"Council\";\n\nexport interface Community {\n about: string;\n admins?: string[];\n avatar_url: string;\n created_at: string;\n description: string;\n flag_text: string;\n id: number;\n is_nsfw: boolean;\n lang: string;\n name: string;\n num_authors: number;\n num_pending: number;\n subscribers: number;\n sum_pending: number;\n settings?: any;\n team: CommunityTeam;\n title: string;\n type_id: number;\n}\n\nexport type Communities = Community[];\n","import { CommunityRole, CommunityType, ROLES } from \"../types\";\n\nexport function getCommunityType(name: string, type_id: number): CommunityType {\n if (name.startsWith(\"hive-3\") || type_id === 3) return \"Council\";\n if (name.startsWith(\"hive-2\") || type_id === 2) return \"Journal\";\n return \"Topic\";\n}\n\nexport function getCommunityPermissions({\n communityType,\n userRole,\n subscribed,\n}: {\n communityType: CommunityType;\n userRole: CommunityRole;\n subscribed: boolean;\n}) {\n const canPost = (() => {\n if (userRole === ROLES.MUTED) return false;\n\n if (communityType === \"Topic\") return true;\n\n // Journal & Council\n return [ROLES.OWNER, ROLES.ADMIN, ROLES.MOD, ROLES.MEMBER].includes(\n userRole\n );\n })();\n\n const canComment = (() => {\n if (userRole === ROLES.MUTED) return false;\n\n switch (communityType) {\n case \"Topic\":\n return true;\n case \"Journal\":\n return userRole !== ROLES.GUEST || subscribed;\n case \"Council\":\n return canPost;\n }\n })();\n\n const isModerator = [ROLES.OWNER, ROLES.ADMIN, ROLES.MOD].includes(userRole);\n\n return {\n canPost,\n canComment,\n isModerator,\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/modules/core/mock-storage.ts","../src/modules/core/config.ts","../src/modules/core/utils/decoder-encoder.ts","../src/modules/core/utils/parse-asset.ts","../src/modules/core/utils/get-bound-fetch.ts","../src/modules/core/storage.ts","../src/modules/keychain/keychain.ts","../src/modules/core/mutations/use-broadcast-mutation.ts","../src/modules/core/mutations/broadcast-json.ts","../src/modules/core/queries-manager.ts","../src/modules/core/queries/get-dynamic-props-query-options.ts","../src/modules/accounts/queries/get-account-full-query-options.ts","../src/modules/accounts/queries/search-accounts-by-username-query-options.ts","../src/modules/accounts/queries/check-username-wallets-pending-query-options.ts","../src/modules/accounts/queries/get-relationship-between-accounts-query-options.ts","../src/modules/accounts/queries/get-account-subscriptions-query-options.ts","../src/modules/accounts/queries/get-active-account-bookmarks-query-options.ts","../src/modules/accounts/queries/get-active-account-favourites-query-options.ts","../src/modules/accounts/queries/get-account-recoveries-query-options.ts","../src/modules/accounts/queries/get-account-pending-recovery-query-options.ts","../src/modules/accounts/mutations/use-account-update.ts","../src/modules/accounts/mutations/use-account-relations-update.ts","../src/modules/accounts/mutations/bookmarks/use-account-bookmark-add.ts","../src/modules/accounts/mutations/bookmarks/use-account-bookmark-delete.ts","../src/modules/accounts/mutations/favourites/use-account-favourite-add.ts","../src/modules/accounts/mutations/favourites/use-account-favourite-delete.ts","../src/modules/accounts/mutations/use-account-update-key-auths.ts","../src/modules/accounts/mutations/use-account-update-password.ts","../src/modules/accounts/mutations/use-account-revoke-posting.ts","../src/modules/accounts/mutations/use-account-update-recovery.ts","../src/modules/accounts/mutations/use-account-revoke-key.ts","../src/modules/operations/mutations/sign-operation-by-key.ts","../src/modules/operations/mutations/sign-operation-by-keychain.ts","../src/modules/operations/mutations/sign-operation-by-hivesigner.ts","../src/modules/operations/queries/get-chain-properties-query-options.ts","../src/modules/posts/queries/get-trending-tags-query-options.ts","../src/modules/posts/queries/get-fragments-query-options.ts","../src/modules/posts/queries/get-promoted-posts-query-options.ts","../src/modules/posts/mutations/add-fragment.ts","../src/modules/posts/mutations/edit-fragment.ts","../src/modules/posts/mutations/remove-fragment.ts","../src/modules/analytics/mutations/index.ts","../src/modules/analytics/mutations/use-record-activity.ts","../src/modules/integrations/3speak/queries/index.ts","../src/modules/integrations/hivesigner/queries/index.ts","../src/modules/integrations/hivesigner/queries/get-decode-memo-query-options.ts","../src/modules/integrations/hivesigner/index.ts","../src/modules/integrations/3speak/queries/get-account-token-query-options.ts","../src/modules/integrations/3speak/queries/get-account-videos-query-options.ts","../src/modules/integrations/3speak/index.ts","../src/modules/integrations/hiveposh/queries/get-hiveposh-links-query-options.ts","../src/modules/integrations/plausible/queries/get-stats-query-options.ts","../src/modules/resource-credits/queries/get-rc-stats-query-options.ts","../src/modules/resource-credits/queries/get-account-rc-query-options.ts","../src/modules/games/queries/game-status-check-query-options.ts","../src/modules/games/mutations/game-claim.ts","../src/modules/communities/queries/get-communities-query-options.ts","../src/modules/communities/queries/get-community-context-query-options.ts","../src/modules/communities/types/community.ts","../src/modules/communities/utils/index.ts"],"names":["ConfigManager","Symbol","NaiMap","getBoundFetch","PrivateKey","QueryClient","EcencyQueriesManager","queryOptions","useQuery","data","useMutation","R2","useQueryClient","R3","hs","R4","queries_exports","ROLES"],"mappings":"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","file":"index.mjs","sourcesContent":["export class MockStorage implements Storage {\n [name: string]: any;\n\n length: number = 0;\n\n clear(): void {\n throw new Error(\"Method not implemented.\");\n }\n\n getItem(key: string): string | null {\n return this[key];\n }\n\n key(index: number): string | null {\n return Object.keys(this)[index];\n }\n\n removeItem(key: string): void {\n delete this[key];\n }\n\n setItem(key: string, value: string): void {\n this[key] = value;\n }\n}\n","import { Client } from \"@hiveio/dhive\";\nimport { MockStorage } from \"./mock-storage\";\nimport { QueryClient } from \"@tanstack/react-query\";\n\nexport const CONFIG = {\n privateApiHost: \"https://ecency.com\",\n storage:\n typeof window === \"undefined\" ? new MockStorage() : window.localStorage,\n storagePrefix: \"ecency\",\n hiveClient: new Client(\n [\n \"https://api.hive.blog\",\n \"https://api.deathwing.me\",\n \"https://rpc.mahdiyari.info\",\n \"https://api.openhive.network\",\n \"https://techcoderx.com\",\n \"https://hive-api.arcange.eu\",\n \"https://api.syncad.com\",\n \"https://anyx.io\",\n \"https://api.c0ff33a.uk\",\n \"https://hiveapi.actifit.io\",\n \"https://hive-api.3speak.tv\",\n ],\n {\n timeout: 2000,\n failoverThreshold: 2,\n consoleOnFailover: true,\n }\n ),\n heliusApiKey: process.env.VITE_HELIUS_API_KEY,\n queryClient: new QueryClient(),\n plausibleHost: \"https://pl.ecency.com\",\n spkNode: \"https://spk.good-karma.xyz\",\n};\n\nexport namespace ConfigManager {\n export function setQueryClient(client: QueryClient) {\n CONFIG.queryClient = client;\n }\n}\n","export function encodeObj(o: any): string {\n return btoa(JSON.stringify(o));\n}\n\nexport function decodeObj(o: any): any {\n let dataToParse = atob(o);\n if (dataToParse[0] !== \"{\") {\n return undefined;\n }\n return JSON.parse(dataToParse);\n}\n","import { SMTAsset } from \"@hiveio/dhive\";\n\nexport enum Symbol {\n HIVE = \"HIVE\",\n HBD = \"HBD\",\n VESTS = \"VESTS\",\n SPK = \"SPK\",\n}\n\nexport enum NaiMap {\n \"@@000000021\" = \"HIVE\",\n \"@@000000013\" = \"HBD\",\n \"@@000000037\" = \"VESTS\",\n}\n\nexport interface Asset {\n amount: number;\n symbol: Symbol;\n}\n\nexport function parseAsset(sval: string | SMTAsset): Asset {\n if (typeof sval === \"string\") {\n const sp = sval.split(\" \");\n return {\n amount: parseFloat(sp[0]),\n // @ts-ignore\n symbol: Symbol[sp[1]],\n };\n } else {\n return {\n amount: parseFloat(sval.amount.toString()) / Math.pow(10, sval.precision),\n // @ts-ignore\n symbol: NaiMap[sval.nai],\n };\n }\n}\n","let cachedFetch: typeof globalThis.fetch | undefined;\n\nexport function getBoundFetch() {\n if (!cachedFetch) {\n if (typeof globalThis.fetch !== \"function\") {\n throw new Error(\"[Ecency][SDK] - global fetch is not available\");\n }\n\n cachedFetch = globalThis.fetch.bind(globalThis);\n }\n\n return cachedFetch;\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport { StoringUser } from \"./entities\";\nimport { decodeObj } from \"./utils\";\n\nexport const getUser = (username: string): StoringUser | undefined => {\n try {\n const raw = CONFIG.storage.getItem(\n CONFIG.storagePrefix + \"_user_\" + username\n );\n return decodeObj(JSON.parse(raw!)) as StoringUser;\n } catch (e) {\n console.error(e);\n return undefined;\n }\n};\n\nexport const getAccessToken = (username: string): string | undefined =>\n getUser(username) && getUser(username)!.accessToken;\n\nexport const getPostingKey = (username: string): null | undefined | string =>\n getUser(username) && getUser(username)!.postingKey;\n\nexport const getLoginType = (username: string): null | undefined | string =>\n getUser(username) && getUser(username)!.loginType;\n\nexport const getRefreshToken = (username: string): string | undefined =>\n getUser(username) && getUser(username)!.refreshToken;\n","import { Operation } from \"@hiveio/dhive\";\n\ntype KeychainedWindow = {\n hive_keychain?: any;\n} & Window;\n\ndeclare var window: KeychainedWindow;\n\nexport type KeychainAuthorityTypes = \"Owner\" | \"Active\" | \"Posting\" | \"Memo\";\n\ninterface TxResponse {\n success: boolean;\n result: string;\n}\n\nexport function handshake() {\n return new Promise<void>((resolve) => {\n window.hive_keychain?.requestHandshake(() => {\n resolve();\n });\n });\n}\n\nexport const broadcast = (\n account: string,\n operations: Operation[],\n key: KeychainAuthorityTypes,\n rpc: string | null = null\n): Promise<TxResponse> =>\n new Promise<TxResponse>((resolve, reject) => {\n window.hive_keychain?.requestBroadcast(\n account,\n operations,\n key,\n (resp: TxResponse) => {\n if (!resp.success) {\n reject({ message: \"Operation cancelled\" });\n }\n\n resolve(resp);\n },\n rpc\n );\n });\n\nexport const customJson = (\n account: string,\n id: string,\n key: KeychainAuthorityTypes,\n json: string,\n display_msg: string,\n rpc: string | null = null\n): Promise<TxResponse> =>\n new Promise<TxResponse>((resolve, reject) => {\n window.hive_keychain?.requestCustomJson(\n account,\n id,\n key,\n json,\n display_msg,\n (resp: TxResponse) => {\n if (!resp.success) {\n reject({ message: \"Operation cancelled\" });\n }\n resolve(resp);\n },\n rpc\n );\n });\n","import {\n useMutation,\n type MutationKey,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { getAccessToken, getLoginType, getPostingKey } from \"../storage\";\nimport { Operation, PrivateKey } from \"@hiveio/dhive\";\nimport { CONFIG } from \"@/modules/core/config\";\n//import hs from \"hivesigner\";\nimport { Keychain } from \"@/modules/keychain\";\n\nconst getBoundFetch = (): typeof fetch => {\n if (typeof window !== \"undefined\" && typeof window.fetch === \"function\") {\n return window.fetch.bind(window);\n }\n return globalThis.fetch;\n};\nexport function useBroadcastMutation<T>(\n mutationKey: MutationKey = [],\n username: string | undefined,\n operations: (payload: T) => Operation[],\n onSuccess: UseMutationOptions<unknown, Error, T>[\"onSuccess\"] = () => {}\n) {\n return useMutation({\n onSuccess,\n mutationKey: [...mutationKey, username],\n mutationFn: async (payload: T) => {\n if (!username) {\n throw new Error(\n \"[Core][Broadcast] Attempted to call broadcast API with anon user\"\n );\n }\n\n const postingKey = getPostingKey(username);\n if (postingKey) {\n const privateKey = PrivateKey.fromString(postingKey);\n\n return CONFIG.hiveClient.broadcast.sendOperations(\n operations(payload),\n privateKey\n );\n }\n\n const loginType = getLoginType(username);\n if (loginType && loginType == \"keychain\") {\n return Keychain.broadcast(\n username,\n operations(payload),\n \"Posting\"\n ).then((r: any) => r.result);\n }\n\n // With hivesigner access token\n let token = getAccessToken(username);\n if (token) {\n const f = getBoundFetch();\n const res = await f(\"https://hivesigner.com/api/broadcast\", {\n method: \"POST\",\n headers: {\n Authorization: token,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify({ operations: operations(payload) }),\n });\n\n if (!res.ok) {\n const txt = await res.text().catch(() => \"\");\n throw new Error(`[Hivesigner] ${res.status} ${res.statusText} ${txt}`);\n }\n\n const json = await res.json();\n if (json?.errors) {\n throw new Error(`[Hivesigner] ${JSON.stringify(json.errors)}`);\n }\n return json.result;\n }\n\n throw new Error(\n \"[SDK][Broadcast] – cannot broadcast w/o posting key or token\"\n );\n },\n });\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport { PrivateKey } from \"@hiveio/dhive\";\nimport hs from \"hivesigner\";\nimport {getAccessToken, getLoginType, getPostingKey} from \"../storage\";\nimport {Keychain} from \"@/modules/keychain\";\n\nexport async function broadcastJson<T>(\n username: string | undefined,\n id: string,\n payload: T\n) {\n if (!username) {\n throw new Error(\n \"[Core][Broadcast] Attempted to call broadcast API with anon user\"\n );\n }\n const jjson = {\n id,\n required_auths: [],\n required_posting_auths: [username],\n json: JSON.stringify(payload),\n };\n\n const postingKey = getPostingKey(username);\n if (postingKey) {\n const privateKey = PrivateKey.fromString(postingKey);\n\n return CONFIG.hiveClient.broadcast.json(\n jjson,\n privateKey\n );\n }\n\n const loginType = getLoginType(username);\n if (loginType && loginType == 'keychain') {\n return Keychain.broadcast(username, [[\"custom_json\", jjson]], \"Posting\").then((r: any) => r.result)\n }\n\n // With hivesigner access token\n let token = getAccessToken(username);\n if (token) {\n const response = await new hs.Client({\n accessToken: token,\n }).customJson([], [username], id, JSON.stringify(payload));\n return response.result;\n }\n\n throw new Error(\n \"[SDK][Broadcast] – cannot broadcast w/o posting key or token\"\n );\n}\n","import {\n InfiniteData,\n QueryClient,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n} from \"@tanstack/react-query\";\nimport { CONFIG } from \"./config\";\n\nexport function makeQueryClient() {\n // Cache creates one single instance per request in a server side\n return new QueryClient({\n defaultOptions: {\n queries: {\n // With SSR, we usually want to set some default staleTime\n // above 0 to avoid refetching immediately on the client\n // staleTime: 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n },\n });\n}\nexport const getQueryClient = () => CONFIG.queryClient;\n\nexport namespace EcencyQueriesManager {\n export function getQueryData<T>(queryKey: QueryKey) {\n const queryClient = getQueryClient();\n return queryClient.getQueryData<T>(queryKey);\n }\n\n export function getInfiniteQueryData<T>(queryKey: QueryKey) {\n const queryClient = getQueryClient();\n return queryClient.getQueryData<InfiniteData<T>>(queryKey);\n }\n\n export async function prefetchQuery<T>(options: UseQueryOptions<T>) {\n const queryClient = getQueryClient();\n await queryClient.prefetchQuery(options);\n return getQueryData<T>(options.queryKey);\n }\n\n export async function prefetchInfiniteQuery<T, P>(\n options: UseInfiniteQueryOptions<\n T,\n Error,\n InfiniteData<T>,\n QueryKey,\n P\n >\n ) {\n const queryClient = getQueryClient();\n await queryClient.prefetchInfiniteQuery(options);\n return getInfiniteQueryData<T>(options.queryKey);\n }\n\n export function generateClientServerQuery<T>(options: UseQueryOptions<T>) {\n return {\n prefetch: () => prefetchQuery(options),\n getData: () => getQueryData<T>(options.queryKey),\n useClientQuery: () => useQuery(options),\n fetchAndGet: () => getQueryClient().fetchQuery(options),\n };\n }\n\n export function generateClientServerInfiniteQuery<T, P>(\n options: UseInfiniteQueryOptions<\n T,\n Error,\n InfiniteData<T>,\n QueryKey,\n P\n >\n ) {\n return {\n prefetch: () => prefetchInfiniteQuery(options),\n getData: () => getInfiniteQueryData<T>(options.queryKey),\n useClientQuery: () => useInfiniteQuery(options),\n fetchAndGet: () => getQueryClient().fetchInfiniteQuery(options),\n };\n }\n}\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { DynamicProps } from \"../types\";\nimport { CONFIG } from \"../config\";\nimport { parseAsset } from \"../utils\";\n\nexport function getDynamicPropsQueryOptions() {\n return queryOptions({\n queryKey: [\"core\", \"dynamic-props\"],\n refetchInterval: 60000,\n staleTime: 60000,\n refetchOnMount: true,\n queryFn: async (): Promise<DynamicProps> => {\n const globalDynamic = await CONFIG.hiveClient.database\n .getDynamicGlobalProperties()\n .then((r: any) => ({\n total_vesting_fund_hive:\n r.total_vesting_fund_hive || r.total_vesting_fund_steem,\n total_vesting_shares: r.total_vesting_shares,\n hbd_print_rate: r.hbd_print_rate || r.sbd_print_rate,\n hbd_interest_rate: r.hbd_interest_rate,\n head_block_number: r.head_block_number,\n vesting_reward_percent: r.vesting_reward_percent,\n virtual_supply: r.virtual_supply,\n }));\n\n const feedHistory =\n await CONFIG.hiveClient.database.call(\"get_feed_history\");\n const chainProps = await CONFIG.hiveClient.database.call(\n \"get_chain_properties\"\n );\n const rewardFund = await CONFIG.hiveClient.database.call(\n \"get_reward_fund\",\n [\"post\"]\n );\n\n const hivePerMVests =\n (parseAsset(globalDynamic.total_vesting_fund_hive).amount /\n parseAsset(globalDynamic.total_vesting_shares).amount) *\n 1e6;\n const base = parseAsset(feedHistory.current_median_history.base).amount;\n const quote = parseAsset(feedHistory.current_median_history.quote).amount;\n const fundRecentClaims = parseFloat(rewardFund.recent_claims);\n const fundRewardBalance = parseAsset(rewardFund.reward_balance).amount;\n const hbdPrintRate = globalDynamic.hbd_print_rate;\n const hbdInterestRate = globalDynamic.hbd_interest_rate;\n const headBlock = globalDynamic.head_block_number;\n const totalVestingFund = parseAsset(\n globalDynamic.total_vesting_fund_hive\n ).amount;\n const totalVestingShares = parseAsset(\n globalDynamic.total_vesting_shares\n ).amount;\n const virtualSupply = parseAsset(globalDynamic.virtual_supply).amount;\n const vestingRewardPercent = globalDynamic.vesting_reward_percent;\n const accountCreationFee = chainProps.account_creation_fee;\n\n return {\n hivePerMVests,\n base,\n quote,\n fundRecentClaims,\n fundRewardBalance,\n hbdPrintRate,\n hbdInterestRate,\n headBlock,\n totalVestingFund,\n totalVestingShares,\n virtualSupply,\n vestingRewardPercent,\n accountCreationFee,\n };\n },\n });\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport {\n AccountFollowStats,\n AccountProfile,\n AccountReputation,\n FullAccount,\n} from \"../types\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getAccountFullQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: [\"get-account-full\", username],\n queryFn: async () => {\n if (!username) {\n throw new Error(\"[SDK] Username is empty\");\n }\n\n const response = (await CONFIG.hiveClient.database.getAccounts([\n username,\n ])) as any[];\n if (!response[0]) {\n throw new Error(\"[SDK] No account with given username\");\n }\n\n const profile = JSON.parse(response[0].posting_json_metadata!)\n .profile as AccountProfile;\n\n let follow_stats: AccountFollowStats | undefined;\n try {\n follow_stats = await CONFIG.hiveClient.database.call(\n \"get_follow_count\",\n [username]\n );\n } catch (e) {}\n\n const reputation: AccountReputation[] = await CONFIG.hiveClient.call(\n \"condenser_api\",\n \"get_account_reputations\",\n [username, 1]\n );\n\n return {\n name: response[0].name,\n owner: response[0].owner,\n active: response[0].active,\n posting: response[0].posting,\n memo_key: response[0].memo_key,\n post_count: response[0].post_count,\n created: response[0].created,\n posting_json_metadata: response[0].posting_json_metadata,\n last_vote_time: response[0].last_vote_time,\n last_post: response[0].last_post,\n json_metadata: response[0].json_metadata,\n reward_hive_balance: response[0].reward_hive_balance,\n reward_hbd_balance: response[0].reward_hbd_balance,\n reward_vesting_hive: response[0].reward_vesting_hive,\n reward_vesting_balance: response[0].reward_vesting_balance,\n balance: response[0].balance,\n hbd_balance: response[0].hbd_balance,\n savings_balance: response[0].savings_balance,\n savings_hbd_balance: response[0].savings_hbd_balance,\n savings_hbd_last_interest_payment:\n response[0].savings_hbd_last_interest_payment,\n savings_hbd_seconds_last_update:\n response[0].savings_hbd_seconds_last_update,\n savings_hbd_seconds: response[0].savings_hbd_seconds,\n next_vesting_withdrawal: response[0].next_vesting_withdrawal,\n pending_claimed_accounts: response[0].pending_claimed_accounts,\n vesting_shares: response[0].vesting_shares,\n delegated_vesting_shares: response[0].delegated_vesting_shares,\n received_vesting_shares: response[0].received_vesting_shares,\n vesting_withdraw_rate: response[0].vesting_withdraw_rate,\n to_withdraw: response[0].to_withdraw,\n withdrawn: response[0].withdrawn,\n witness_votes: response[0].witness_votes,\n proxy: response[0].proxy,\n recovery_account: response[0].recovery_account,\n proxied_vsf_votes: response[0].proxied_vsf_votes,\n voting_manabar: response[0].voting_manabar,\n voting_power: response[0].voting_power,\n downvote_manabar: response[0].downvote_manabar,\n follow_stats,\n reputation: reputation[0].reputation,\n profile: {\n ...profile,\n reputation: reputation[0].reputation,\n },\n } satisfies FullAccount;\n },\n enabled: !!username,\n staleTime: 60000,\n });\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getSearchAccountsByUsernameQueryOptions(\n query: string,\n limit = 5,\n excludeList: string[] = []\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"search\", query, excludeList],\n enabled: !!query,\n queryFn: async () => {\n const response = (await CONFIG.hiveClient.database.call(\n \"lookup_accounts\",\n [query, limit]\n )) as string[];\n return response.filter((item) =>\n excludeList.length > 0 ? !excludeList.includes(item) : true\n );\n },\n });\n}\n","import { CONFIG, getBoundFetch } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function checkUsernameWalletsPendingQueryOptions(username: string) {\n return queryOptions({\n queryKey: [\"accounts\", \"check-wallet-pending\", username],\n queryFn: async () => {\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/wallets-chkuser\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n username,\n }),\n }\n );\n return (await response.json()) as { exist: boolean };\n },\n enabled: !!username,\n refetchOnMount: true,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { AccountRelationship } from \"../types\";\n\nexport function getRelationshipBetweenAccountsQueryOptions(\n reference: string | undefined,\n target: string | undefined\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"relations\", reference, target],\n enabled: !!reference && !!target,\n refetchOnMount: false,\n refetchInterval: 3_600_000,\n queryFn: async () => {\n return (await CONFIG.hiveClient.call(\n \"bridge\",\n \"get_relationship_between_accounts\",\n [reference, target]\n )) as AccountRelationship;\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\ntype Subscriptions = string[];\n\nexport function getAccountSubscriptionsQueryOptions(\n username: string | undefined\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"subscriptions\", username],\n enabled: !!username,\n queryFn: async () => {\n const response = await CONFIG.hiveClient.call(\n \"bridge\",\n \"list_all_subscriptions\",\n {\n account: username,\n }\n );\n return (response ?? []) as Subscriptions;\n },\n });\n}\n","import { CONFIG, getAccessToken, getBoundFetch } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { AccountBookmark } from \"../types\";\n\nexport function getActiveAccountBookmarksQueryOptions(\n activeUsername: string | undefined\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"bookmarks\", activeUsername],\n enabled: !!activeUsername,\n queryFn: async () => {\n if (!activeUsername) {\n throw new Error(\"[SDK][Accounts][Bookmarks] – no active user\");\n }\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/bookmarks\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ code: getAccessToken(activeUsername) }),\n }\n );\n return (await response.json()) as AccountBookmark[];\n },\n });\n}\n","import { CONFIG, getAccessToken, getBoundFetch } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { AccountFavorite } from \"../types\";\n\nexport function getActiveAccountFavouritesQueryOptions(\n activeUsername: string | undefined\n) {\n return queryOptions({\n queryKey: [\"accounts\", \"favourites\", activeUsername],\n enabled: !!activeUsername,\n queryFn: async () => {\n if (!activeUsername) {\n throw new Error(\"[SDK][Accounts][Favourites] – no active user\");\n }\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/favorites\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ code: getAccessToken(activeUsername) }),\n }\n );\n return (await response.json()) as AccountFavorite[];\n },\n });\n}\n","import { CONFIG, getAccessToken, getBoundFetch } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { GetRecoveriesEmailResponse } from \"../types\";\n\nexport function getAccountRecoveriesQueryOptions(username: string | undefined) {\n return queryOptions({\n enabled: !!username,\n queryKey: [\"accounts\", \"recoveries\", username],\n queryFn: async () => {\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/recoveries\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ code: getAccessToken(username!) }),\n }\n );\n\n return response.json() as Promise<GetRecoveriesEmailResponse[]>;\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getAccountPendingRecoveryQueryOptions(\n username: string | undefined\n) {\n return queryOptions({\n enabled: !!username,\n queryKey: [\"accounts\", \"recoveries\", username, \"pending-request\"],\n queryFn: () =>\n CONFIG.hiveClient.call(\n \"database_api\",\n \"find_change_recovery_account_requests\",\n { accounts: [username] }\n ),\n });\n}\n","import { useBroadcastMutation } from \"@/modules/core\";\nimport { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { getAccountFullQueryOptions } from \"../queries\";\nimport { AccountProfile, FullAccount } from \"../types\";\nimport * as R from \"remeda\";\n\ninterface Payload {\n profile: Partial<AccountProfile>;\n tokens: AccountProfile[\"tokens\"];\n}\n\nfunction sanitizeTokens(\n tokens?: AccountProfile[\"tokens\"]\n): AccountProfile[\"tokens\"] | undefined {\n return tokens?.map(({ meta, ...rest }) => {\n if (!meta || typeof meta !== \"object\") {\n return { ...rest, meta };\n }\n\n const { privateKey, username, ...safeMeta } = meta;\n return { ...rest, meta: safeMeta };\n });\n}\n\nfunction getBuiltProfile({\n profile,\n tokens,\n data,\n}: Partial<Payload> & { data: FullAccount }) {\n const metadata = R.pipe(\n JSON.parse(data?.posting_json_metadata || \"{}\").profile as AccountProfile,\n R.mergeDeep(profile ?? {})\n );\n\n if (tokens && tokens.length > 0) {\n metadata.tokens = tokens;\n }\n\n metadata.tokens = sanitizeTokens(metadata.tokens);\n\n return metadata;\n}\n\nexport function useAccountUpdate(username: string) {\n const queryClient = useQueryClient();\n\n const { data } = useQuery(getAccountFullQueryOptions(username));\n\n return useBroadcastMutation(\n [\"accounts\", \"update\"],\n username,\n (payload: Partial<Payload>) => {\n if (!data) {\n throw new Error(\"[SDK][Accounts] – cannot update not existing account\");\n }\n\n return [\n [\n \"account_update2\",\n {\n account: username,\n json_metadata: \"\",\n extensions: [],\n posting_json_metadata: JSON.stringify({\n profile: getBuiltProfile({ ...payload, data }),\n }),\n },\n ],\n ];\n },\n (_, variables) =>\n queryClient.setQueryData<FullAccount>(\n getAccountFullQueryOptions(username).queryKey,\n (data) => {\n if (!data) {\n return data;\n }\n\n const obj = R.clone(data);\n obj.profile = getBuiltProfile({ ...variables, data });\n return obj;\n }\n )\n );\n}\n","import { broadcastJson, getQueryClient } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { getRelationshipBetweenAccountsQueryOptions } from \"../queries\";\nimport { AccountRelationship } from \"../types\";\n\ntype Kind = \"toggle-ignore\" | \"toggle-follow\";\n\nexport function useAccountRelationsUpdate(\n reference: string | undefined,\n target: string | undefined,\n onSuccess: (data: Partial<AccountRelationship> | undefined) => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"relation\", \"update\", reference, target],\n mutationFn: async (kind: Kind) => {\n const relationsQuery = getRelationshipBetweenAccountsQueryOptions(\n reference,\n target\n );\n await getQueryClient().prefetchQuery(relationsQuery);\n const actualRelation = getQueryClient().getQueryData(\n relationsQuery.queryKey\n );\n\n await broadcastJson(reference, \"follow\", [\n \"follow\",\n {\n follower: reference,\n following: target,\n what: [\n ...(kind === \"toggle-ignore\" && !actualRelation?.ignores\n ? [\"ignore\"]\n : []),\n ...(kind === \"toggle-follow\" && !actualRelation?.follows\n ? [\"blog\"]\n : []),\n ],\n },\n ]);\n\n return {\n ...actualRelation,\n ignores:\n kind === \"toggle-ignore\"\n ? !actualRelation?.ignores\n : actualRelation?.ignores,\n follows:\n kind === \"toggle-follow\"\n ? !actualRelation?.follows\n : actualRelation?.follows,\n } satisfies Partial<AccountRelationship>;\n },\n onError,\n onSuccess(data) {\n onSuccess(data);\n\n getQueryClient().setQueryData(\n [\"accounts\", \"relations\", reference, target],\n data\n );\n },\n });\n}\n","import {\n CONFIG,\n getAccessToken,\n getBoundFetch,\n getQueryClient,\n} from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\ninterface Payload {\n author: string;\n permlink: string;\n}\n\nexport function useBookmarkAdd(\n username: string | undefined,\n onSuccess: () => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"bookmarks\", \"add\", username],\n mutationFn: async ({ author, permlink }: Payload) => {\n if (!username) {\n throw new Error(\"[SDK][Account][Bookmarks] – no active user\");\n }\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/bookmarks-add\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n author,\n permlink,\n code: getAccessToken(username),\n }),\n }\n );\n return response.json();\n },\n onSuccess: () => {\n onSuccess();\n getQueryClient().invalidateQueries({\n queryKey: [\"accounts\", \"bookmarks\", username],\n });\n },\n onError,\n });\n}\n","import {\n CONFIG,\n getAccessToken,\n getBoundFetch,\n getQueryClient,\n} from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useBookmarkDelete(\n username: string | undefined,\n onSuccess: () => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"bookmarks\", \"delete\", username],\n mutationFn: async (bookmarkId: string) => {\n if (!username) {\n throw new Error(\"[SDK][Account][Bookmarks] – no active user\");\n }\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/bookmarks-delete\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n id: bookmarkId,\n code: getAccessToken(username),\n }),\n }\n );\n return response.json();\n },\n onSuccess: () => {\n onSuccess();\n getQueryClient().invalidateQueries({\n queryKey: [\"accounts\", \"bookmarks\", username],\n });\n },\n onError,\n });\n}\n","import {\n CONFIG,\n getAccessToken,\n getBoundFetch,\n getQueryClient,\n} from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useAccountFavouriteAdd(\n username: string | undefined,\n onSuccess: () => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"favourites\", \"add\", username],\n mutationFn: async (account: string) => {\n if (!username) {\n throw new Error(\"[SDK][Account][Bookmarks] – no active user\");\n }\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/favorites-add\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n account,\n code: getAccessToken(username),\n }),\n }\n );\n return response.json();\n },\n onSuccess: () => {\n onSuccess();\n getQueryClient().invalidateQueries({\n queryKey: [\"accounts\", \"favourites\", username],\n });\n },\n onError,\n });\n}\n","import {\n CONFIG,\n getAccessToken,\n getBoundFetch,\n getQueryClient,\n} from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useAccountFavouriteDelete(\n username: string | undefined,\n onSuccess: () => void,\n onError: (e: Error) => void\n) {\n return useMutation({\n mutationKey: [\"accounts\", \"favourites\", \"add\", username],\n mutationFn: async (account: string) => {\n if (!username) {\n throw new Error(\"[SDK][Account][Bookmarks] – no active user\");\n }\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/favorites-delete\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n account,\n code: getAccessToken(username),\n }),\n }\n );\n return response.json();\n },\n onSuccess: () => {\n onSuccess();\n getQueryClient().invalidateQueries({\n queryKey: [\"accounts\", \"favourites\", username],\n });\n },\n onError,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { AuthorityType, PrivateKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport * as R from \"remeda\";\nimport { getAccountFullQueryOptions } from \"../queries\";\n\nexport interface Keys {\n owner: PrivateKey;\n active: PrivateKey;\n posting: PrivateKey;\n memo_key: PrivateKey;\n}\n\ninterface Payload {\n keepCurrent?: boolean;\n currentKey: PrivateKey;\n keys: Keys[];\n}\n\nexport function dedupeAndSortKeyAuths(\n existing: AuthorityType[\"key_auths\"],\n additions: [string, number][]\n): AuthorityType[\"key_auths\"] {\n const merged = new Map<string, number>();\n\n existing.forEach(([key, weight]) => {\n merged.set(key.toString(), weight);\n });\n\n additions.forEach(([key, weight]) => {\n merged.set(key.toString(), weight);\n });\n\n return Array.from(merged.entries())\n .sort(([keyA], [keyB]) => keyA.localeCompare(keyB))\n .map(([key, weight]) => [key, weight] as [string, number]);\n}\n\ntype UpdateKeyAuthsOptions = Pick<\n UseMutationOptions<unknown, Error, Payload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountUpdateKeyAuths(\n username: string,\n options?: UpdateKeyAuthsOptions\n) {\n const { data: accountData } = useQuery(getAccountFullQueryOptions(username));\n\n return useMutation({\n mutationKey: [\"accounts\", \"keys-update\", username],\n mutationFn: async ({ keys, keepCurrent = false, currentKey }: Payload) => {\n if (!accountData) {\n throw new Error(\n \"[SDK][Update password] – cannot update keys for anon user\"\n );\n }\n\n const prepareAuth = (keyName: keyof Keys) => {\n const auth: AuthorityType = R.clone(accountData[keyName]);\n\n auth.key_auths = dedupeAndSortKeyAuths(\n keepCurrent ? auth.key_auths : [],\n keys.map(\n (values, i) =>\n [values[keyName].createPublic().toString(), i + 1] as [\n string,\n number,\n ]\n )\n );\n\n return auth;\n };\n\n return CONFIG.hiveClient.broadcast.updateAccount(\n {\n account: username,\n json_metadata: accountData.json_metadata,\n owner: prepareAuth(\"owner\"),\n active: prepareAuth(\"active\"),\n posting: prepareAuth(\"posting\"),\n memo_key: keepCurrent\n ? accountData.memo_key\n : keys[0].memo_key.createPublic().toString(),\n },\n currentKey\n );\n },\n ...options,\n });\n}\n","import { PrivateKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { getAccountFullQueryOptions } from \"../queries\";\nimport { useAccountUpdateKeyAuths } from \"./use-account-update-key-auths\";\n\ninterface Payload {\n newPassword: string;\n currentPassword: string;\n keepCurrent?: boolean;\n}\n\n/**\n * Only native Hive and custom passwords could be updated here\n * Seed based password cannot be updated here, it will be in an account always for now\n */\ntype UpdatePasswordOptions = Pick<\n UseMutationOptions<unknown, Error, Payload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountUpdatePassword(\n username: string,\n options?: UpdatePasswordOptions\n) {\n const { data: accountData } = useQuery(getAccountFullQueryOptions(username));\n\n const { mutateAsync: updateKeys } = useAccountUpdateKeyAuths(username);\n\n return useMutation({\n mutationKey: [\"accounts\", \"password-update\", username],\n mutationFn: async ({\n newPassword,\n currentPassword,\n keepCurrent,\n }: Payload) => {\n if (!accountData) {\n throw new Error(\n \"[SDK][Update password] – cannot update password for anon user\"\n );\n }\n const currentKey = PrivateKey.fromLogin(\n username,\n currentPassword,\n \"owner\"\n );\n\n return updateKeys({\n currentKey,\n keepCurrent,\n keys: [\n {\n owner: PrivateKey.fromLogin(username, newPassword, \"owner\"),\n active: PrivateKey.fromLogin(username, newPassword, \"active\"),\n posting: PrivateKey.fromLogin(username, newPassword, \"posting\"),\n memo_key: PrivateKey.fromLogin(username, newPassword, \"memo\"),\n },\n ],\n });\n },\n ...options,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { PrivateKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n useQueryClient,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { getAccountFullQueryOptions } from \"../queries\";\nimport * as R from \"remeda\";\nimport { FullAccount } from \"../types\";\nimport { Keychain } from \"@/modules/keychain\";\nimport hs from \"hivesigner\";\n\ntype SignType = \"key\" | \"keychain\" | \"hivesigner\";\n\ninterface CommonPayload {\n accountName: string;\n type: SignType;\n key?: PrivateKey;\n}\n\ntype RevokePostingOptions = Pick<\n UseMutationOptions<unknown, Error, CommonPayload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountRevokePosting(\n username: string | undefined,\n options: RevokePostingOptions\n) {\n const queryClient = useQueryClient();\n\n const { data } = useQuery(getAccountFullQueryOptions(username));\n\n return useMutation({\n mutationKey: [\"accounts\", \"revoke-posting\", data?.name],\n mutationFn: async ({ accountName, type, key }: CommonPayload) => {\n if (!data) {\n throw new Error(\n \"[SDK][Accounts] – cannot revoke posting for anonymous user\"\n );\n }\n\n const posting = R.pipe(\n {},\n R.mergeDeep(data.posting)\n ) as FullAccount[\"posting\"];\n\n posting.account_auths = posting.account_auths.filter(\n ([account]) => account !== accountName\n );\n\n const operationBody = {\n account: data.name,\n posting,\n memo_key: data.memo_key,\n json_metadata: data.json_metadata,\n };\n\n if (type === \"key\" && key) {\n return CONFIG.hiveClient.broadcast.updateAccount(operationBody, key);\n } else if (type === \"keychain\") {\n return Keychain.broadcast(\n data.name,\n [[\"account_update\", operationBody]],\n \"Active\"\n ) as Promise<any>;\n } else {\n const params = {\n callback: `https://ecency.com/@${data.name}/permissions`,\n };\n return hs.sendOperation(\n [\"account_update\", operationBody],\n params,\n () => {}\n );\n }\n },\n onError: options.onError,\n onSuccess: (resp, payload, ctx) => {\n (options.onSuccess as\n | ((data: unknown, variables: CommonPayload, context: unknown) => unknown)\n | undefined)?.(resp, payload, ctx);\n queryClient.setQueryData<FullAccount>(\n getAccountFullQueryOptions(username).queryKey,\n (data) =>\n ({\n ...data,\n posting: {\n ...data?.posting,\n account_auths:\n data?.posting?.account_auths?.filter(\n ([account]) => account !== payload.accountName\n ) ?? [],\n },\n }) as FullAccount\n );\n },\n });\n}\n","import { CONFIG, getAccessToken, getBoundFetch } from \"@/modules/core\";\nimport { Keychain } from \"@/modules/keychain\";\nimport { PrivateKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport hs from \"hivesigner\";\nimport { getAccountFullQueryOptions } from \"../queries\";\n\ntype SignType = \"key\" | \"keychain\" | \"hivesigner\" | \"ecency\";\n\ninterface CommonPayload {\n accountName: string;\n type: SignType;\n key?: PrivateKey;\n email?: string;\n}\n\ntype UpdateRecoveryOptions = Pick<\n UseMutationOptions<unknown, Error, CommonPayload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountUpdateRecovery(\n username: string | undefined,\n options: UpdateRecoveryOptions\n) {\n const { data } = useQuery(getAccountFullQueryOptions(username));\n\n return useMutation({\n mutationKey: [\"accounts\", \"recovery\", data?.name],\n mutationFn: async ({ accountName, type, key, email }: CommonPayload) => {\n if (!data) {\n throw new Error(\n \"[SDK][Accounts] – cannot change recovery for anonymous user\"\n );\n }\n\n const operationBody = {\n account_to_recover: data.name,\n new_recovery_account: accountName,\n extensions: [],\n };\n\n if (type === \"ecency\") {\n const fetchApi = getBoundFetch();\n\n return fetchApi(CONFIG.privateApiHost + \"/private-api/recoveries-add\", {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(data.name),\n email,\n publicKeys: [\n ...data.owner.key_auths,\n ...data.active.key_auths,\n ...data.posting.key_auths,\n data.memo_key,\n ],\n }),\n });\n } else if (type === \"key\" && key) {\n return CONFIG.hiveClient.broadcast.sendOperations(\n [[\"change_recovery_account\", operationBody]],\n key\n );\n } else if (type === \"keychain\") {\n return Keychain.broadcast(\n data.name,\n [[\"change_recovery_account\", operationBody]],\n \"Active\"\n ) as Promise<any>;\n } else {\n const params = {\n callback: `https://ecency.com/@${data.name}/permissions`,\n };\n return hs.sendOperation(\n [\"change_recovery_account\", operationBody],\n params,\n () => {}\n );\n }\n },\n onError: options.onError,\n onSuccess: options.onSuccess,\n });\n}\n","import { AuthorityType, PrivateKey, PublicKey } from \"@hiveio/dhive\";\nimport {\n useMutation,\n useQuery,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { getAccountFullQueryOptions } from \"../queries\";\nimport * as R from \"remeda\";\nimport { CONFIG } from \"@/modules/core\";\nimport { Keys } from \"./use-account-update-key-auths\";\n\ninterface Payload {\n currentKey: PrivateKey;\n revokingKey: PublicKey;\n}\n\n/**\n * This hook provides functionality to revoke a key from an account on the Hive blockchain.\n * It leverages React Query's `useMutation` for managing the mutation state and executing\n * the operation efficiently.\n *\n * @param username The username of the Hive account from which the key should be revoked.\n * Pass `undefined` if the username is unknown or not set yet.\n *\n * @returns The mutation object from `useMutation`, including methods to trigger the key\n * revocation and access its state (e.g., loading, success, error).\n */\ntype RevokeKeyOptions = Pick<\n UseMutationOptions<unknown, Error, Payload>,\n \"onSuccess\" | \"onError\"\n>;\n\nexport function useAccountRevokeKey(\n username: string | undefined,\n options?: RevokeKeyOptions\n) {\n const { data: accountData } = useQuery(getAccountFullQueryOptions(username));\n\n return useMutation({\n mutationKey: [\"accounts\", \"revoke-key\", accountData?.name],\n mutationFn: async ({ currentKey, revokingKey }: Payload) => {\n if (!accountData) {\n throw new Error(\n \"[SDK][Update password] – cannot update keys for anon user\"\n );\n }\n\n const prepareAuth = (keyName: keyof Keys) => {\n const auth: AuthorityType = R.clone(accountData[keyName]);\n\n auth.key_auths = auth.key_auths.filter(\n ([key]) => key !== revokingKey.toString()\n );\n\n return auth;\n };\n\n return CONFIG.hiveClient.broadcast.updateAccount(\n {\n account: accountData.name,\n json_metadata: accountData.json_metadata,\n owner: prepareAuth(\"owner\"),\n active: prepareAuth(\"active\"),\n posting: prepareAuth(\"posting\"),\n memo_key: accountData.memo_key,\n },\n currentKey\n );\n },\n ...options,\n });\n}\n","import { CONFIG } from \"@/modules/core/config\";\nimport { cryptoUtils, Operation, PrivateKey } from \"@hiveio/dhive\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useSignOperationByKey(username: string | undefined) {\n return useMutation({\n mutationKey: [\"operations\", \"sign\", username],\n mutationFn: ({\n operation,\n keyOrSeed,\n }: {\n operation: Operation;\n keyOrSeed: string;\n }) => {\n if (!username) {\n throw new Error(\"[Operations][Sign] – cannot sign op with anon user\");\n }\n\n let privateKey: PrivateKey;\n if (keyOrSeed.split(\" \").length === 12) {\n privateKey = PrivateKey.fromLogin(username, keyOrSeed, \"active\");\n } else if (cryptoUtils.isWif(keyOrSeed)) {\n privateKey = PrivateKey.fromString(keyOrSeed);\n } else {\n privateKey = PrivateKey.from(keyOrSeed);\n }\n\n return CONFIG.hiveClient.broadcast.sendOperations(\n [operation],\n privateKey\n );\n },\n });\n}\n","import { Keychain } from \"@/modules/keychain\";\nimport { Operation } from \"@hiveio/dhive\";\nimport { useMutation } from \"@tanstack/react-query\";\n\nexport function useSignOperationByKeychain(\n username: string | undefined,\n keyType: Keychain.KeychainAuthorityTypes = \"Active\"\n) {\n return useMutation({\n mutationKey: [\"operations\", \"sign-keychain\", username],\n mutationFn: ({ operation }: { operation: Operation }) => {\n if (!username) {\n throw new Error(\n \"[SDK][Keychain] – cannot sign operation with anon user\"\n );\n }\n return Keychain.broadcast(username, [operation], keyType) as Promise<any>;\n },\n });\n}\n","import { Operation } from \"@hiveio/dhive\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport hs from \"hivesigner\";\n\nexport function useSignOperationByHivesigner(callbackUri = \"/\") {\n return useMutation({\n mutationKey: [\"operations\", \"sign-hivesigner\", callbackUri],\n mutationFn: async ({ operation }: { operation: Operation }) => {\n return hs.sendOperation(operation, { callback: callbackUri }, () => {});\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getChainPropertiesQueryOptions() {\n return queryOptions({\n queryKey: [\"operations\", \"chain-properties\"],\n queryFn: async () => {\n return await CONFIG.hiveClient.database.getChainProperties();\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { infiniteQueryOptions } from \"@tanstack/react-query\";\nimport { TrendingTag } from \"../types\";\n\nexport function getTrendingTagsQueryOptions(limit = 20) {\n return infiniteQueryOptions({\n queryKey: [\"posts\", \"trending-tags\"],\n queryFn: async ({ pageParam: { afterTag } }) =>\n CONFIG.hiveClient.database\n .call(\"get_trending_tags\", [afterTag, limit])\n .then((tags: TrendingTag[]) =>\n tags\n .filter((x) => x.name !== \"\")\n .filter((x) => !x.name.startsWith(\"hive-\"))\n .map((x) => x.name)\n ),\n initialPageParam: { afterTag: \"\" },\n getNextPageParam: (lastPage) => ({\n afterTag: lastPage?.[lastPage?.length - 1],\n }),\n staleTime: Infinity,\n refetchOnMount: true,\n });\n}\n","import { CONFIG, getAccessToken, getBoundFetch } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { Fragment } from \"../types\";\n\nexport function getFragmentsQueryOptions(username: string) {\n return queryOptions({\n queryKey: [\"posts\", \"fragments\", username],\n queryFn: async () => {\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/fragments\",\n {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(username),\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n return response.json() as Promise<Fragment[]>;\n },\n enabled: !!username,\n });\n}\n","import { CONFIG, getBoundFetch } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\n// TODO: replace any with Entry\nexport function getPromotedPostsQuery<T extends any>(\n type: \"feed\" | \"waves\" = \"feed\"\n) {\n return queryOptions({\n queryKey: [\"posts\", \"promoted\", type],\n queryFn: async () => {\n const url = new URL(\n CONFIG.privateApiHost + \"/private-api/promoted-entries\"\n );\n if (type === \"waves\") {\n url.searchParams.append(\"short_content\", \"1\");\n }\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(url.toString(), {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n const data = await response.json();\n return data as T[];\n },\n });\n}\n","import {\n CONFIG,\n getAccessToken,\n getBoundFetch,\n getQueryClient,\n} from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"../types\";\nimport { getFragmentsQueryOptions } from \"../queries\";\n\nexport function useAddFragment(username: string) {\n return useMutation({\n mutationKey: [\"posts\", \"add-fragment\", username],\n mutationFn: async ({ title, body }: { title: string; body: string }) => {\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/fragments-add\",\n {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(username),\n title,\n body,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n return response.json() as Promise<Fragment>;\n },\n onSuccess(response) {\n getQueryClient().setQueryData<Fragment[]>(\n getFragmentsQueryOptions(username).queryKey,\n (data) => [response, ...(data ?? [])]\n );\n },\n });\n}\n","import {\n CONFIG,\n getAccessToken,\n getBoundFetch,\n getQueryClient,\n} from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"../types\";\nimport { getFragmentsQueryOptions } from \"../queries\";\n\nexport function useEditFragment(username: string, fragmentId: string) {\n return useMutation({\n mutationKey: [\"posts\", \"edit-fragment\", username, fragmentId],\n mutationFn: async ({ title, body }: { title: string; body: string }) => {\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/fragments-update\",\n {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(username),\n id: fragmentId,\n title,\n body,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n return response.json() as Promise<Fragment>;\n },\n onSuccess(response) {\n getQueryClient().setQueryData<Fragment[]>(\n getFragmentsQueryOptions(username).queryKey,\n (data) => {\n if (!data) {\n return [];\n }\n\n const index = data.findIndex(({ id }) => id === fragmentId);\n if (index >= 0) {\n data[index] = response;\n }\n\n return [...data];\n }\n );\n },\n });\n}\n","import {\n CONFIG,\n getAccessToken,\n getBoundFetch,\n getQueryClient,\n} from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"../types\";\nimport { getFragmentsQueryOptions } from \"../queries\";\n\nexport function useRemoveFragment(username: string, fragmentId: string) {\n return useMutation({\n mutationKey: [\"posts\", \"remove-fragment\", username],\n mutationFn: async () => {\n const fetchApi = getBoundFetch();\n\n return fetchApi(CONFIG.privateApiHost + \"/private-api/fragments-delete\", {\n method: \"POST\",\n body: JSON.stringify({\n code: getAccessToken(username),\n id: fragmentId,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n },\n onSuccess() {\n getQueryClient().setQueryData<Fragment[]>(\n getFragmentsQueryOptions(username).queryKey,\n (data) => [...(data ?? [])].filter(({ id }) => id !== fragmentId)\n );\n },\n });\n}\n","export * from \"./use-record-activity\";\n","import { CONFIG, getBoundFetch } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\n\ntype ActivityType =\n // Editor related\n | \"post-created\"\n | \"post-updated\"\n | \"post-scheduled\"\n | \"draft-created\"\n | \"video-published\"\n\n // Legacy editor related\n | \"legacy-post-created\"\n | \"legacy-post-updated\"\n | \"legacy-post-scheduled\"\n | \"legacy-draft-created\"\n | \"legacy-video-published\"\n\n // Perks related\n | \"perks-points-by-qr\"\n | \"perks-account-boost\"\n | \"perks-promote\"\n | \"perks-boost-plus\"\n | \"points-claimed\"\n | \"spin-rolled\"\n\n // Signup related\n | \"signed-up-with-wallets\"\n | \"signed-up-with-email\";\n\nexport function useRecordActivity(\n username: string | undefined,\n activityType: ActivityType\n) {\n return useMutation({\n mutationKey: [\"analytics\", activityType],\n mutationFn: async () => {\n if (!activityType) {\n throw new Error(\"[SDK][Analytics] – no activity type provided\");\n }\n const fetchApi = getBoundFetch();\n\n await fetchApi(CONFIG.plausibleHost + \"/api/event\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n name: activityType,\n url: window.location.href,\n domain: window.location.host,\n props: {\n username,\n },\n }),\n });\n },\n });\n}\n","export * from \"./get-account-token-query-options\";\nexport * from \"./get-account-videos-query-options\";\n","export * from \"./get-decode-memo-query-options\";\n","import { getAccessToken } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport hs from \"hivesigner\";\n\nexport function getDecodeMemoQueryOptions(username: string, memo: string) {\n return queryOptions({\n queryKey: [\"integrations\", \"hivesigner\", \"decode-memo\", username],\n queryFn: async () => {\n const accessToken = getAccessToken(username);\n\n if (accessToken) {\n const hsClient = new hs.Client({\n accessToken,\n });\n return hsClient.decode(memo);\n }\n },\n });\n}\n","import * as queries from \"./queries\";\n\nconst HiveSignerIntegration = {\n queries,\n};\n\nexport { HiveSignerIntegration };\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { HiveSignerIntegration } from \"../../hivesigner\";\nimport { getBoundFetch, getQueryClient } from \"@/modules/core\";\n\nexport function getAccountTokenQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: [\"integrations\", \"3speak\", \"authenticate\", username],\n enabled: !!username,\n queryFn: async () => {\n if (!username) {\n throw new Error(\"[SDK][Integrations][3Speak] – anon user\");\n }\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n `https://studio.3speak.tv/mobile/login?username=${username}&hivesigner=true`,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n const memoQueryOptions =\n HiveSignerIntegration.queries.getDecodeMemoQueryOptions(\n username,\n (await response.json()).memo\n );\n await getQueryClient().prefetchQuery(memoQueryOptions);\n const { memoDecoded } = getQueryClient().getQueryData(\n memoQueryOptions.queryKey\n );\n\n return memoDecoded.replace(\"#\", \"\");\n },\n });\n}\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { ThreeSpeakVideo } from \"../types\";\nimport { getBoundFetch, getQueryClient } from \"@/modules/core\";\nimport { getAccountTokenQueryOptions } from \"./get-account-token-query-options\";\n\nexport function getAccountVideosQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: [\"integrations\", \"3speak\", \"videos\", username],\n enabled: !!username,\n queryFn: async () => {\n await getQueryClient().prefetchQuery(\n getAccountTokenQueryOptions(username)\n );\n const token = getQueryClient().getQueryData(\n getAccountTokenQueryOptions(username).queryKey\n );\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n `https://studio.3speak.tv/mobile/api/my-videos`,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n }\n );\n return (await response.json()) as ThreeSpeakVideo[];\n },\n });\n}\n","export * from \"./types\";\nimport * as queries from \"./queries\";\n\nconst ThreeSpeakIntegration = {\n queries,\n};\n\nexport { ThreeSpeakIntegration };\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { getBoundFetch } from \"@/modules/core\";\n\nexport function getHivePoshLinksQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: [\"integrations\", \"hiveposh\", \"links\", username],\n queryFn: async () => {\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n `https://hiveposh.com/api/v0/linked-accounts/${username}`,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n const data = await response.json();\n\n return {\n twitter: {\n username: data.twitter_username,\n profile: data.twitter_profile,\n },\n reddit: {\n username: data.reddit_username,\n profile: data.reddit_profile,\n },\n } satisfies Record<\n \"twitter\" | \"reddit\",\n { username: string; profile: string }\n >;\n },\n });\n}\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { getBoundFetch } from \"@/modules/core\";\n\nexport interface StatsResponse {\n results: [\n {\n metrics: number[];\n dimensions: string[];\n },\n ];\n query: {\n site_id: string;\n metrics: string[];\n date_range: string[];\n filters: string[];\n };\n}\ninterface UseStatsQueryOptions {\n url: string;\n dimensions?: string[];\n metrics?: string[];\n enabled?: boolean;\n}\n\nexport function getStatsQueryOptions({\n url,\n dimensions = [],\n metrics = [\"visitors\", \"pageviews\", \"visit_duration\"],\n enabled = true,\n}: UseStatsQueryOptions) {\n return queryOptions({\n queryKey: [\"integrations\", \"plausible\", url, dimensions, metrics],\n queryFn: async () => {\n const fetchApi = getBoundFetch();\n const response = await fetchApi(`https://ecency.com/api/stats`, {\n method: \"POST\",\n body: JSON.stringify({\n metrics,\n url: encodeURIComponent(url),\n dimensions,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n return (await response.json()) as StatsResponse;\n },\n enabled: !!url && enabled,\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getRcStatsQueryOptions() {\n return queryOptions({\n queryKey: [\"resource-credits\", \"stats\"],\n queryFn: async () => {\n const response = await CONFIG.hiveClient.call(\n \"rc_api\",\n \"get_rc_stats\",\n {}\n );\n return response.rc_stats;\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { RCAPI } from \"@hiveio/dhive\";\nimport { queryOptions } from \"@tanstack/react-query\";\n\nexport function getAccountRcQueryOptions(username: string) {\n return queryOptions({\n queryKey: [\"resource-credits\", \"account\", username],\n queryFn: async () => {\n const rcClient = new RCAPI(CONFIG.hiveClient);\n return rcClient.findRCAccounts([username]);\n },\n enabled: !!username,\n });\n}\n","import { CONFIG, getAccessToken, getBoundFetch } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { GetGameStatus } from \"../types\";\n\nexport function getGameStatusCheckQueryOptions(\n username: string | undefined,\n gameType: \"spin\"\n) {\n return queryOptions({\n queryKey: [\"games\", \"status-check\", gameType, username],\n enabled: !!username,\n queryFn: async () => {\n if (!username) {\n throw new Error(\"[SDK][Games] – anon user in status check\");\n }\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/get-game\",\n {\n method: \"POST\",\n body: JSON.stringify({\n game_type: gameType,\n code: getAccessToken(username),\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n return (await response.json()) as GetGameStatus;\n },\n });\n}\n","import { CONFIG, getAccessToken, getBoundFetch } from \"@/modules/core\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { GameClaim } from \"../types\";\nimport { useRecordActivity } from \"@/modules/analytics/mutations\";\n\nexport function useGameClaim(\n username: string | undefined,\n gameType: \"spin\",\n key: string\n) {\n const { mutateAsync: recordActivity } = useRecordActivity(\n username,\n \"spin-rolled\"\n );\n\n return useMutation({\n mutationKey: [\"games\", \"post\", gameType, username],\n mutationFn: async () => {\n if (!username) {\n throw new Error(\"[SDK][Games] – anon user in game post\");\n }\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/post-game\",\n {\n method: \"POST\",\n body: JSON.stringify({\n game_type: gameType,\n code: getAccessToken(username),\n key,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n return (await response.json()) as GameClaim;\n },\n onSuccess() {\n recordActivity();\n },\n });\n}\n","import { CONFIG } from \"@/modules/core\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport { Communities } from \"../types\";\n\nexport function getCommunitiesQueryOptions(\n sort: string,\n query?: string,\n limit = 100,\n observer: string | undefined = undefined,\n enabled = true\n) {\n return queryOptions({\n queryKey: [\"communities\", \"list\", sort, query, limit],\n enabled,\n queryFn: async () => {\n const response = await CONFIG.hiveClient.call(\n \"bridge\",\n \"list_communities\",\n {\n last: \"\",\n limit,\n sort: sort === \"hot\" ? \"rank\" : sort,\n query: query ? query : null,\n observer,\n }\n );\n return (\n response\n ? sort === \"hot\"\n ? response.sort(() => Math.random() - 0.5)\n : response\n : []\n ) as Communities;\n },\n });\n}\n","import { queryOptions } from \"@tanstack/react-query\";\nimport { CONFIG } from \"@/modules/core\";\nimport { CommunityRole } from \"../types\";\n\nexport function getCommunityContextQueryOptions(\n username: string | undefined,\n communityName: string | undefined\n) {\n return queryOptions({\n queryKey: [\"community\", \"context\", username, communityName],\n enabled: !!username && !!communityName,\n queryFn: async () => {\n const response = await CONFIG.hiveClient.call(\n \"bridge\",\n \"get_community_context\",\n {\n account: username,\n name: communityName,\n }\n );\n\n return {\n role: response?.role ?? \"guest\",\n subscribed: response?.subscribed ?? false,\n } satisfies {\n role: CommunityRole;\n subscribed: boolean;\n };\n },\n });\n}\n","export enum ROLES {\n OWNER = \"owner\",\n ADMIN = \"admin\",\n MOD = \"mod\",\n MEMBER = \"member\",\n GUEST = \"guest\",\n MUTED = \"muted\",\n}\n\nexport const roleMap: Record<string, string[]> = {\n [ROLES.OWNER]: [\n ROLES.ADMIN,\n ROLES.MOD,\n ROLES.MEMBER,\n ROLES.GUEST,\n ROLES.MUTED,\n ],\n [ROLES.ADMIN]: [ROLES.MOD, ROLES.MEMBER, ROLES.GUEST, ROLES.MUTED],\n [ROLES.MOD]: [ROLES.MEMBER, ROLES.GUEST, ROLES.MUTED],\n};\n\nexport type CommunityTeam = Array<Array<string>>;\nexport type CommunityRole = (typeof ROLES)[keyof typeof ROLES]; // \"owner\" | \"member\" | ...\nexport type CommunityType = \"Topic\" | \"Journal\" | \"Council\";\n\nexport interface Community {\n about: string;\n admins?: string[];\n avatar_url: string;\n created_at: string;\n description: string;\n flag_text: string;\n id: number;\n is_nsfw: boolean;\n lang: string;\n name: string;\n num_authors: number;\n num_pending: number;\n subscribers: number;\n sum_pending: number;\n settings?: any;\n team: CommunityTeam;\n title: string;\n type_id: number;\n}\n\nexport type Communities = Community[];\n","import { CommunityRole, CommunityType, ROLES } from \"../types\";\n\nexport function getCommunityType(name: string, type_id: number): CommunityType {\n if (name.startsWith(\"hive-3\") || type_id === 3) return \"Council\";\n if (name.startsWith(\"hive-2\") || type_id === 2) return \"Journal\";\n return \"Topic\";\n}\n\nexport function getCommunityPermissions({\n communityType,\n userRole,\n subscribed,\n}: {\n communityType: CommunityType;\n userRole: CommunityRole;\n subscribed: boolean;\n}) {\n const canPost = (() => {\n if (userRole === ROLES.MUTED) return false;\n\n if (communityType === \"Topic\") return true;\n\n // Journal & Council\n return [ROLES.OWNER, ROLES.ADMIN, ROLES.MOD, ROLES.MEMBER].includes(\n userRole\n );\n })();\n\n const canComment = (() => {\n if (userRole === ROLES.MUTED) return false;\n\n switch (communityType) {\n case \"Topic\":\n return true;\n case \"Journal\":\n return userRole !== ROLES.GUEST || subscribed;\n case \"Council\":\n return canPost;\n }\n })();\n\n const isModerator = [ROLES.OWNER, ROLES.ADMIN, ROLES.MOD].includes(userRole);\n\n return {\n canPost,\n canComment,\n isModerator,\n };\n}\n"]}