@ecency/sdk 1.1.22 → 1.2.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.
- package/dist/index.cjs +1671 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1075 -0
- package/dist/index.d.ts +1075 -10
- package/dist/index.mjs +1589 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +29 -16
- package/dist/ecency-sdk.es.js +0 -1458
- package/dist/modules/accounts/index.d.ts +0 -3
- package/dist/modules/accounts/mutations/bookmarks/index.d.ts +0 -2
- package/dist/modules/accounts/mutations/bookmarks/use-account-bookmark-add.d.ts +0 -6
- package/dist/modules/accounts/mutations/bookmarks/use-account-bookmark-delete.d.ts +0 -1
- package/dist/modules/accounts/mutations/favourites/index.d.ts +0 -2
- package/dist/modules/accounts/mutations/favourites/use-account-favourite-add.d.ts +0 -1
- package/dist/modules/accounts/mutations/favourites/use-account-favourite-delete.d.ts +0 -1
- package/dist/modules/accounts/mutations/index.d.ts +0 -9
- package/dist/modules/accounts/mutations/use-account-relations-update.d.ts +0 -9
- package/dist/modules/accounts/mutations/use-account-revoke-key.d.ts +0 -19
- package/dist/modules/accounts/mutations/use-account-revoke-posting.d.ts +0 -10
- package/dist/modules/accounts/mutations/use-account-update-key-auths.d.ts +0 -19
- package/dist/modules/accounts/mutations/use-account-update-password.d.ts +0 -12
- package/dist/modules/accounts/mutations/use-account-update-recovery.d.ts +0 -11
- package/dist/modules/accounts/mutations/use-account-update.d.ts +0 -7
- package/dist/modules/accounts/queries/check-username-wallets-pending-query-options.d.ts +0 -16
- package/dist/modules/accounts/queries/get-account-full-query-options.d.ts +0 -245
- package/dist/modules/accounts/queries/get-account-pending-recovery-query-options.d.ts +0 -8
- package/dist/modules/accounts/queries/get-account-recoveries-query-options.d.ts +0 -9
- package/dist/modules/accounts/queries/get-account-subscriptions-query-options.d.ts +0 -10
- package/dist/modules/accounts/queries/get-active-account-bookmarks-query-options.d.ts +0 -9
- package/dist/modules/accounts/queries/get-active-account-favourites-query-options.d.ts +0 -9
- package/dist/modules/accounts/queries/get-relationship-between-accounts-query-options.d.ts +0 -9
- package/dist/modules/accounts/queries/index.d.ts +0 -9
- package/dist/modules/accounts/queries/search-accounts-by-username-query-options.d.ts +0 -8
- package/dist/modules/accounts/types/account-bookmark.d.ts +0 -7
- package/dist/modules/accounts/types/account-favourite.d.ts +0 -5
- package/dist/modules/accounts/types/account-follow-stats.d.ts +0 -5
- package/dist/modules/accounts/types/account-profile.d.ts +0 -19
- package/dist/modules/accounts/types/account-recovery.d.ts +0 -8
- package/dist/modules/accounts/types/account-relationship.d.ts +0 -6
- package/dist/modules/accounts/types/account-reputation.d.ts +0 -4
- package/dist/modules/accounts/types/full-account.d.ts +0 -52
- package/dist/modules/accounts/types/index.d.ts +0 -8
- package/dist/modules/analytics/index.d.ts +0 -2
- package/dist/modules/analytics/mutations/index.d.ts +0 -1
- package/dist/modules/analytics/mutations/use-record-activity.d.ts +0 -3
- package/dist/modules/communities/index.d.ts +0 -3
- package/dist/modules/communities/queries/get-communities-query-options.d.ts +0 -9
- package/dist/modules/communities/queries/get-community-context-query-options.d.ts +0 -20
- package/dist/modules/communities/queries/index.d.ts +0 -2
- package/dist/modules/communities/types/community.d.ts +0 -33
- package/dist/modules/communities/types/index.d.ts +0 -1
- package/dist/modules/communities/utils/index.d.ts +0 -11
- package/dist/modules/core/config.d.ts +0 -15
- package/dist/modules/core/entities/index.d.ts +0 -1
- package/dist/modules/core/entities/user.d.ts +0 -9
- package/dist/modules/core/index.d.ts +0 -7
- package/dist/modules/core/mock-storage.d.ts +0 -9
- package/dist/modules/core/mutations/broadcast-json.d.ts +0 -1
- package/dist/modules/core/mutations/index.d.ts +0 -2
- package/dist/modules/core/mutations/use-broadcast-mutation.d.ts +0 -3
- package/dist/modules/core/queries/get-dynamic-props-query-options.d.ts +0 -9
- package/dist/modules/core/queries/index.d.ts +0 -1
- package/dist/modules/core/queries-manager.d.ts +0 -21
- package/dist/modules/core/storage.d.ts +0 -6
- package/dist/modules/core/types/dynamic-props.d.ts +0 -15
- package/dist/modules/core/types/index.d.ts +0 -1
- package/dist/modules/core/utils/decoder-encoder.d.ts +0 -2
- package/dist/modules/core/utils/index.d.ts +0 -2
- package/dist/modules/core/utils/parse-asset.d.ts +0 -17
- package/dist/modules/games/index.d.ts +0 -3
- package/dist/modules/games/mutations/game-claim.d.ts +0 -2
- package/dist/modules/games/mutations/index.d.ts +0 -1
- package/dist/modules/games/queries/game-status-check-query-options.d.ts +0 -9
- package/dist/modules/games/queries/index.d.ts +0 -1
- package/dist/modules/games/types/game-claim.d.ts +0 -3
- package/dist/modules/games/types/get-game-status.d.ts +0 -7
- package/dist/modules/games/types/index.d.ts +0 -2
- package/dist/modules/integrations/3speak/index.d.ts +0 -6
- package/dist/modules/integrations/3speak/queries/get-account-token-query-options.d.ts +0 -8
- package/dist/modules/integrations/3speak/queries/get-account-videos-query-options.d.ts +0 -9
- package/dist/modules/integrations/3speak/queries/index.d.ts +0 -2
- package/dist/modules/integrations/3speak/types/index.d.ts +0 -1
- package/dist/modules/integrations/3speak/types/three-speak-video.d.ts +0 -52
- package/dist/modules/integrations/hiveposh/index.d.ts +0 -1
- package/dist/modules/integrations/hiveposh/queries/get-hiveposh-links-query-options.d.ts +0 -44
- package/dist/modules/integrations/hiveposh/queries/index.d.ts +0 -1
- package/dist/modules/integrations/hivesigner/index.d.ts +0 -5
- package/dist/modules/integrations/hivesigner/queries/get-decode-memo-query-options.d.ts +0 -8
- package/dist/modules/integrations/hivesigner/queries/index.d.ts +0 -1
- package/dist/modules/integrations/index.d.ts +0 -4
- package/dist/modules/integrations/plausible/index.d.ts +0 -1
- package/dist/modules/integrations/plausible/queries/get-stats-query-options.d.ts +0 -29
- package/dist/modules/integrations/plausible/queries/index.d.ts +0 -1
- package/dist/modules/keychain/index.d.ts +0 -2
- package/dist/modules/keychain/keychain.d.ts +0 -10
- package/dist/modules/operations/index.d.ts +0 -2
- package/dist/modules/operations/mutations/index.d.ts +0 -3
- package/dist/modules/operations/mutations/sign-operation-by-hivesigner.d.ts +0 -4
- package/dist/modules/operations/mutations/sign-operation-by-key.d.ts +0 -5
- package/dist/modules/operations/mutations/sign-operation-by-keychain.d.ts +0 -5
- package/dist/modules/operations/queries/get-chain-properties-query-options.d.ts +0 -8
- package/dist/modules/operations/queries/index.d.ts +0 -1
- package/dist/modules/posts/index.d.ts +0 -3
- package/dist/modules/posts/mutations/add-fragment.d.ts +0 -5
- package/dist/modules/posts/mutations/edit-fragment.d.ts +0 -5
- package/dist/modules/posts/mutations/index.d.ts +0 -3
- package/dist/modules/posts/mutations/remove-fragment.d.ts +0 -1
- package/dist/modules/posts/queries/get-fragments-query-options.d.ts +0 -9
- package/dist/modules/posts/queries/get-promoted-posts-query-options.d.ts +0 -8
- package/dist/modules/posts/queries/get-trending-tags-query-options.d.ts +0 -12
- package/dist/modules/posts/queries/index.d.ts +0 -3
- package/dist/modules/posts/types/fragment.d.ts +0 -7
- package/dist/modules/posts/types/index.d.ts +0 -2
- package/dist/modules/posts/types/trending-tag.d.ts +0 -6
- package/dist/modules/resource-credits/index.d.ts +0 -2
- package/dist/modules/resource-credits/queries/get-account-rc-query-options.d.ts +0 -8
- package/dist/modules/resource-credits/queries/get-rc-stats-query-options.d.ts +0 -8
- package/dist/modules/resource-credits/queries/index.d.ts +0 -2
- package/dist/modules/resource-credits/types/index.d.ts +0 -1
- package/dist/modules/resource-credits/types/stats.d.ts +0 -67
@@ -0,0 +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"]}
|
package/package.json
CHANGED
@@ -1,27 +1,35 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ecency/sdk",
|
3
3
|
"private": false,
|
4
|
-
"version": "1.
|
4
|
+
"version": "1.2.0",
|
5
5
|
"type": "module",
|
6
6
|
"license": "MIT",
|
7
|
-
"
|
8
|
-
"
|
9
|
-
"
|
10
|
-
"
|
11
|
-
|
12
|
-
"
|
13
|
-
|
7
|
+
"files": ["dist"],
|
8
|
+
"main": "dist/index.cjs",
|
9
|
+
"module": "dist/index.mjs",
|
10
|
+
"types": "dist/index.d.ts",
|
11
|
+
"exports": {
|
12
|
+
".": {
|
13
|
+
"types": "./dist/index.d.ts",
|
14
|
+
"import": "./dist/index.mjs",
|
15
|
+
"require": "./dist/index.cjs"
|
16
|
+
}
|
17
|
+
},
|
18
|
+
"sideEffects": false,
|
14
19
|
"scripts": {
|
15
|
-
"
|
16
|
-
"
|
17
|
-
"
|
20
|
+
"build": "tsup",
|
21
|
+
"lint": "eslint .",
|
22
|
+
"test": "vitest run"
|
23
|
+
},
|
24
|
+
"peerDependencies": {
|
25
|
+
"react": ">=18",
|
26
|
+
"@tanstack/react-query": ">=5"
|
18
27
|
},
|
19
28
|
"devDependencies": {
|
20
29
|
"@hiveio/dhive": "^1.3.2",
|
21
30
|
"@tanstack/react-query": "^5.74.4",
|
22
31
|
"@types/node": "^22.13.8",
|
23
32
|
"@types/react": "^19.0.10",
|
24
|
-
"@vitejs/plugin-react": "^4.3.4",
|
25
33
|
"bip39": "^3.1.0",
|
26
34
|
"eslint": "^9.21.0",
|
27
35
|
"hivesigner": "3.3.4",
|
@@ -29,9 +37,14 @@
|
|
29
37
|
"prettier": "^3.5.2",
|
30
38
|
"react": "^19.0.0",
|
31
39
|
"remeda": "^2.30.0",
|
32
|
-
"
|
33
|
-
"
|
34
|
-
"vite-plugin-node-polyfills": "^0.23.0"
|
40
|
+
"tsup": "^8",
|
41
|
+
"typescript": "^5.6"
|
35
42
|
},
|
36
|
-
"dependencies": {}
|
43
|
+
"dependencies": {},
|
44
|
+
"publishConfig": { "access": "public" },
|
45
|
+
"repository": {
|
46
|
+
"type": "git",
|
47
|
+
"url": "https://github.com/ecency/vision-next.git",
|
48
|
+
"directory": "packages/sdk"
|
49
|
+
}
|
37
50
|
}
|