@bitsocial/bitsocial-react-hooks 0.1.14 → 0.1.15

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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [0.1.15](https://github.com/bitsocialnet/bitsocial-react-hooks/compare/v0.1.14...v0.1.15) (2026-06-07)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **comments:** continue sparse comment updates before stopping ([#61](https://github.com/bitsocialnet/bitsocial-react-hooks/issues/61)) ([0d20b32](https://github.com/bitsocialnet/bitsocial-react-hooks/commit/0d20b32ad90a2e0e09936a3e24dd8722c079037b))
7
+
8
+
9
+ ### Features
10
+
11
+ * **actions:** add community export hook ([#62](https://github.com/bitsocialnet/bitsocial-react-hooks/issues/62)) ([f6a9616](https://github.com/bitsocialnet/bitsocial-react-hooks/commit/f6a961665b10fbadc9bb3b94917b45df6aafdc77))
12
+
13
+
14
+
1
15
  ## [0.1.14](https://github.com/bitsocialnet/bitsocial-react-hooks/compare/v0.1.13...v0.1.14) (2026-06-04)
2
16
 
3
17
 
package/README.md CHANGED
@@ -171,6 +171,13 @@ usePublishCommentEdit(options: UsePublishCommentEditOptions): UsePublishCommentE
171
171
  usePublishCommentModeration(options: UsePublishCommentModerationOptions): UsePublishCommentModerationResult
172
172
  usePublishCommunityEdit(options: UsePublishCommunityEditOptions): UsePublishCommunityEditResult
173
173
  useCreateCommunity(options: CreateCommunityOptions): {createdCommunity: Community | undefined, createCommunity: Function}
174
+ useExportCommunity(options?: UseExportCommunityOptions): {
175
+ communityExports: {communityAddress: string, exportId: string}[],
176
+ exportCommunity: () => Promise<void>,
177
+ state: string,
178
+ error: Error | undefined,
179
+ errors: Error[]
180
+ }
174
181
  ```
175
182
 
176
183
  #### States Hooks
@@ -1120,6 +1127,33 @@ const communities = useCommunities({
1120
1127
  const _community = useCommunity({ community: { name: createdCommunity.address } });
1121
1128
  ```
1122
1129
 
1130
+ #### (Desktop only) Export communities
1131
+
1132
+ ```jsx
1133
+ // Export one community.
1134
+ const { communityExports, exportCommunity, state, error } = useExportCommunity({
1135
+ communityAddress: "your-community-address.eth",
1136
+ });
1137
+ await exportCommunity();
1138
+
1139
+ // Export several communities at the same time.
1140
+ const exportMany = useExportCommunity({
1141
+ communityAddresses: ["community-1.eth", "community-2.eth"],
1142
+ });
1143
+ await exportMany.exportCommunity();
1144
+
1145
+ // Export every community listed by the active account's pkc client.
1146
+ const exportAll = useExportCommunity();
1147
+ await exportAll.exportCommunity();
1148
+
1149
+ if (state === "succeeded") {
1150
+ console.log("started exports", communityExports);
1151
+ }
1152
+ if (state === "failed") {
1153
+ console.log("failed to start export", error.message);
1154
+ }
1155
+ ```
1156
+
1123
1157
  #### (Desktop only) List the communities you created
1124
1158
 
1125
1159
  ```jsx
@@ -7,7 +7,7 @@ export declare function handlePublishErrorWhenAbandoned(activeRequestIdRef: {
7
7
  }, requestId: number, error: Error, setErrors: Dispatch<SetStateAction<Error[]>>, onError?: (e: Error) => void): void;
8
8
  /** For usePublishVote catch. Exported for coverage. */
9
9
  export declare function handlePublishVoteError(error: Error, setErrors: Dispatch<SetStateAction<Error[]>>, onError?: (e: Error) => void): void;
10
- import type { UseSubscribeOptions, UseSubscribeResult, UsePublishCommentOptions, UsePublishCommentResult, UseBlockOptions, UseBlockResult, UseCreateCommunityOptions, UseCreateCommunityResult, UsePublishVoteOptions, UsePublishVoteResult, UsePublishCommentEditOptions, UsePublishCommentEditResult, UsePublishCommentModerationOptions, UsePublishCommentModerationResult, UsePublishCommunityEditOptions, UsePublishCommunityEditResult } from "../../types.js";
10
+ import type { UseSubscribeOptions, UseSubscribeResult, UsePublishCommentOptions, UsePublishCommentResult, UseBlockOptions, UseBlockResult, UseCreateCommunityOptions, UseCreateCommunityResult, UseExportCommunityOptions, UseExportCommunityResult, UsePublishVoteOptions, UsePublishVoteResult, UsePublishCommentEditOptions, UsePublishCommentEditResult, UsePublishCommentModerationOptions, UsePublishCommentModerationResult, UsePublishCommunityEditOptions, UsePublishCommunityEditResult } from "../../types.js";
11
11
  export declare function useSubscribe(options?: UseSubscribeOptions): UseSubscribeResult;
12
12
  export declare function useBlock(options?: UseBlockOptions): UseBlockResult;
13
13
  export declare function usePublishComment(options?: UsePublishCommentOptions): UsePublishCommentResult;
@@ -16,4 +16,5 @@ export declare function usePublishCommentEdit(options?: UsePublishCommentEditOpt
16
16
  export declare function usePublishCommentModeration(options?: UsePublishCommentModerationOptions): UsePublishCommentModerationResult;
17
17
  export declare function usePublishCommunityEdit(options?: UsePublishCommunityEditOptions): UsePublishCommunityEditResult;
18
18
  export declare function useCreateCommunity(options?: UseCreateCommunityOptions): UseCreateCommunityResult;
19
+ export declare function useExportCommunity(options?: UseExportCommunityOptions): UseExportCommunityResult;
19
20
  //# sourceMappingURL=actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/hooks/actions/actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAOtD,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAChE,WAAW,EAAE,MAAM,OAAO,EAC1B,EAAE,EAAE,CAAC,GACJ,CAAC,CAKH;AAID,wFAAwF;AACxF,wBAAgB,+BAA+B,CAC7C,kBAAkB,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACnD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAC5C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAC3B,IAAI,CAIN;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAC5C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAC3B,IAAI,CAGN;AACD,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,kCAAkC,EAClC,iCAAiC,EACjC,8BAA8B,EAC9B,6BAA6B,EAS9B,MAAM,aAAa,CAAC;AASrB,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,kBAAkB,CA+C9E;AAED,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,CAiElE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,uBAAuB,CAwH7F;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAiFpF;AAED,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,4BAA4B,GACrC,2BAA2B,CAoF7B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,CAAC,EAAE,kCAAkC,GAC3C,iCAAiC,CAsFnC;AAED,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,8BAA8B,GACvC,6BAA6B,CAwF/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,wBAAwB,CA4ChG"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/hooks/actions/actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAOtD,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAChE,WAAW,EAAE,MAAM,OAAO,EAC1B,EAAE,EAAE,CAAC,GACJ,CAAC,CAKH;AAID,wFAAwF;AACxF,wBAAgB,+BAA+B,CAC7C,kBAAkB,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACnD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAC5C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAC3B,IAAI,CAIN;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAC5C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAC3B,IAAI,CAGN;AACD,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,kCAAkC,EAClC,iCAAiC,EACjC,8BAA8B,EAC9B,6BAA6B,EAU9B,MAAM,aAAa,CAAC;AASrB,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,kBAAkB,CA+C9E;AAED,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,CAiElE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,uBAAuB,CAwH7F;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAiFpF;AAED,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,4BAA4B,GACrC,2BAA2B,CAoF7B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,CAAC,EAAE,kCAAkC,GAC3C,iCAAiC,CAsFnC;AAED,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,8BAA8B,GACvC,6BAA6B,CAwF/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,wBAAwB,CA4ChG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,wBAAwB,CAoEhG"}
@@ -549,4 +549,58 @@ export function useCreateCommunity(options) {
549
549
  errors,
550
550
  }), [state, errors, createdCommunity, options, accountName]);
551
551
  }
552
+ export function useExportCommunity(options) {
553
+ assert(!options || typeof options === "object", `useExportCommunity options argument '${options}' not an object`);
554
+ const _a = options || {}, { accountName, communityAddress, communityAddresses, onError } = _a, exportCommunityOptions = __rest(_a, ["accountName", "communityAddress", "communityAddresses", "onError"]);
555
+ const accountsActions = useAccountsStore((state) => state.accountsActions);
556
+ const accountId = useAccountId(accountName);
557
+ const [errors, setErrors] = useState([]);
558
+ const [exportingState, setExportingState] = useState();
559
+ const [communityExports, setCommunityExports] = useState([]);
560
+ const targetCommunityAddresses = communityAddresses || (communityAddress ? [communityAddress] : undefined);
561
+ const exportContextKey = JSON.stringify([
562
+ accountId || null,
563
+ targetCommunityAddresses || null,
564
+ exportCommunityOptions.includePrivateKey === true,
565
+ exportCommunityOptions.exportPath,
566
+ ]);
567
+ const previousExportContextKeyRef = useRef(exportContextKey);
568
+ const exportContextVersionRef = useRef(0);
569
+ if (previousExportContextKeyRef.current !== exportContextKey) {
570
+ previousExportContextKeyRef.current = exportContextKey;
571
+ exportContextVersionRef.current += 1;
572
+ }
573
+ const [exportingContext, setExportingContext] = useState();
574
+ let initialState = "initializing";
575
+ if (accountId) {
576
+ initialState = "ready";
577
+ }
578
+ const hasCurrentExportState = accountId &&
579
+ (exportingContext === null || exportingContext === void 0 ? void 0 : exportingContext.key) === exportContextKey &&
580
+ exportingContext.version === exportContextVersionRef.current;
581
+ const exportCommunity = () => __awaiter(this, void 0, void 0, function* () {
582
+ try {
583
+ setExportingContext({
584
+ key: exportContextKey,
585
+ version: exportContextVersionRef.current,
586
+ });
587
+ setExportingState("exporting");
588
+ const communityExports = yield accountsActions.exportCommunity(targetCommunityAddresses, exportCommunityOptions, accountName);
589
+ setCommunityExports(communityExports);
590
+ setExportingState("succeeded");
591
+ }
592
+ catch (e) {
593
+ setExportingState("failed");
594
+ setErrors((errors) => [...errors, e]);
595
+ onError === null || onError === void 0 ? void 0 : onError(e);
596
+ }
597
+ });
598
+ return {
599
+ communityExports: hasCurrentExportState ? communityExports : [],
600
+ exportCommunity,
601
+ state: hasCurrentExportState ? exportingState : initialState,
602
+ error: hasCurrentExportState ? errors[errors.length - 1] : undefined,
603
+ errors: hasCurrentExportState ? errors : [],
604
+ };
605
+ }
552
606
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/hooks/actions/actions.ts"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, useRef, useState } from \"react\";\nimport type { Dispatch, SetStateAction } from \"react\";\nimport useAccountsStore from \"../../stores/accounts\";\nimport Logger from \"@pkcprotocol/pkc-logger\";\nconst log = Logger(\"bitsocial-react-hooks:actions:hooks\");\nimport assert from \"assert\";\nimport { useAccount, useAccountId } from \"../accounts\";\n\n/** Wraps a callback to no-op when guard returns false. Exported for coverage. */\nexport function withGuardActive<T extends (...args: any[]) => void>(\n guardActive: () => boolean,\n fn: T,\n): T {\n return ((...args: Parameters<T>) => {\n if (!guardActive()) return;\n return fn(...args);\n }) as T;\n}\n\nconst noop = () => {};\n\n/** For usePublishComment: when abandoned, catch should no-op. Exported for coverage. */\nexport function handlePublishErrorWhenAbandoned(\n activeRequestIdRef: { current: number | undefined },\n requestId: number,\n error: Error,\n setErrors: Dispatch<SetStateAction<Error[]>>,\n onError?: (e: Error) => void,\n): void {\n if (activeRequestIdRef.current !== requestId) return;\n setErrors((errors) => [...errors, error]);\n (onError ?? noop)(error);\n}\n\n/** For usePublishVote catch. Exported for coverage. */\nexport function handlePublishVoteError(\n error: Error,\n setErrors: Dispatch<SetStateAction<Error[]>>,\n onError?: (e: Error) => void,\n): void {\n setErrors((errors) => [...errors, error]);\n (onError ?? noop)(error);\n}\nimport type {\n UseSubscribeOptions,\n UseSubscribeResult,\n UsePublishCommentOptions,\n UsePublishCommentResult,\n UseBlockOptions,\n UseBlockResult,\n UseCreateCommunityOptions,\n UseCreateCommunityResult,\n UsePublishVoteOptions,\n UsePublishVoteResult,\n UsePublishCommentEditOptions,\n UsePublishCommentEditResult,\n UsePublishCommentModerationOptions,\n UsePublishCommentModerationResult,\n UsePublishCommunityEditOptions,\n UsePublishCommunityEditResult,\n Challenge,\n ChallengeVerification,\n Comment,\n CommentEdit,\n CommentModeration,\n CommunityEdit,\n Vote,\n Community,\n} from \"../../types\";\n\ntype PublishChallengeAnswers = (challengeAnswers: string[]) => Promise<void>;\nconst publishChallengeAnswersNotReady: PublishChallengeAnswers = async (challengeAnswers) => {\n throw Error(\n `can't call publishChallengeAnswers() before result.challenge is defined (before the challenge message is received)`,\n );\n};\n\nexport function useSubscribe(options?: UseSubscribeOptions): UseSubscribeResult {\n assert(\n !options || typeof options === \"object\",\n `useSubscribe options argument '${options}' not an object`,\n );\n const { communityAddress, accountName, onError } = options || {};\n const account = useAccount({ accountName });\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const [errors, setErrors] = useState<Error[]>([]);\n let state = \"initializing\";\n let subscribed: boolean | undefined;\n\n // before the account and communityAddress is defined, nothing can happen\n if (account && communityAddress) {\n state = \"ready\";\n subscribed = Boolean(account.subscriptions?.includes(communityAddress));\n }\n\n const subscribe = async () => {\n try {\n await accountsActions.subscribe(communityAddress, accountName);\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n const unsubscribe = async () => {\n try {\n await accountsActions.unsubscribe(communityAddress, accountName);\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n subscribed,\n subscribe,\n unsubscribe,\n state,\n error: errors[errors.length - 1],\n errors,\n }),\n [state, subscribed, errors, communityAddress, accountName],\n );\n}\n\nexport function useBlock(options?: UseBlockOptions): UseBlockResult {\n assert(\n !options || typeof options === \"object\",\n `useBlock options argument '${options}' not an object`,\n );\n const { address, cid, accountName, onError } = options || {};\n if (address && cid) {\n throw Error(\n `can't useBlock with both an address '${address}' and cid '${cid}' argument at the same time`,\n );\n }\n const account = useAccount({ accountName });\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const [errors, setErrors] = useState<Error[]>([]);\n let state = \"initializing\";\n let blocked: boolean | undefined;\n\n // before the account and address is defined, nothing can happen\n if (account && (address || cid)) {\n state = \"ready\";\n if (address) {\n blocked = Boolean(account.blockedAddresses[address]);\n }\n if (cid) {\n blocked = Boolean(account.blockedCids[cid]);\n }\n }\n\n const block = async () => {\n try {\n if (cid) {\n await accountsActions.blockCid(cid, accountName);\n } else {\n await accountsActions.blockAddress(address, accountName);\n }\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n const unblock = async () => {\n try {\n if (cid) {\n await accountsActions.unblockCid(cid, accountName);\n } else {\n await accountsActions.unblockAddress(address, accountName);\n }\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n blocked,\n block,\n unblock,\n state,\n error: errors[errors.length - 1],\n errors,\n }),\n [state, blocked, errors, address, accountName],\n );\n}\n\nexport function usePublishComment(options?: UsePublishCommentOptions): UsePublishCommentResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishComment options argument '${options}' not an object`,\n );\n const { accountName, ...publishCommentOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [index, setIndex] = useState<number>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n const indexRef = useRef<number | undefined>(undefined);\n const publishRequestIdRef = useRef(0);\n const activePublishRequestIdRef = useRef<number | undefined>(undefined);\n const guardActive = () => activePublishRequestIdRef.current !== undefined;\n publishCommentOptions._onPendingCommentIndex = withGuardActive(\n guardActive,\n (pendingIndex: number) => {\n indexRef.current = pendingIndex;\n setIndex(pendingIndex);\n },\n );\n\n let initialState = \"initializing\";\n if (accountId && options) initialState = \"ready\";\n\n const originalOnError = publishCommentOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n (originalOnError ?? noop)(error);\n };\n publishCommentOptions.onError = onError;\n\n const originalOnChallenge = publishCommentOptions.onChallenge;\n publishCommentOptions.onChallenge = withGuardActive(\n guardActive,\n async (challenge: Challenge, comment: Comment) => {\n setPublishChallengeAnswers(() => comment?.publishChallengeAnswers.bind(comment));\n setChallenge(challenge);\n (originalOnChallenge ?? noop)(challenge, comment);\n },\n );\n\n const originalOnChallengeVerification = publishCommentOptions.onChallengeVerification;\n publishCommentOptions.onChallengeVerification = withGuardActive(\n guardActive,\n async (challengeVerification: ChallengeVerification, comment: Comment) => {\n setChallengeVerification(challengeVerification);\n (originalOnChallengeVerification ?? noop)(challengeVerification, comment);\n },\n );\n\n publishCommentOptions.onPublishingStateChange = withGuardActive(\n guardActive,\n (publishingState: string) => setPublishingState(publishingState),\n );\n\n const publishComment = async () => {\n const requestId = publishRequestIdRef.current + 1;\n publishRequestIdRef.current = requestId;\n activePublishRequestIdRef.current = requestId;\n try {\n const { index } = await accountsActions.publishComment(publishCommentOptions, accountName);\n if (activePublishRequestIdRef.current !== requestId) {\n return;\n }\n indexRef.current = index;\n setIndex(index);\n } catch (e: any) {\n handlePublishErrorWhenAbandoned(\n activePublishRequestIdRef,\n requestId,\n e,\n setErrors,\n originalOnError,\n );\n }\n };\n\n const abandonPublish = async () => {\n activePublishRequestIdRef.current = undefined;\n const idx = indexRef.current;\n if (idx !== undefined) {\n await accountsActions.deleteComment(idx, accountName);\n }\n indexRef.current = undefined;\n setChallenge(undefined);\n setChallengeVerification(undefined);\n setPublishChallengeAnswers(undefined);\n setIndex(undefined);\n setPublishingState(undefined);\n };\n\n return useMemo(\n () => ({\n index,\n challenge,\n challengeVerification,\n publishComment,\n abandonPublish,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n index,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function usePublishVote(options?: UsePublishVoteOptions): UsePublishVoteResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishVote options argument '${options}' not an object`,\n );\n const { accountName, ...publishVoteOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && options) {\n initialState = \"ready\";\n }\n\n // define onError if not defined\n const originalOnError = publishVoteOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n originalOnError?.(error);\n };\n publishVoteOptions.onError = onError;\n\n // define onChallenge if not defined\n const originalOnChallenge = publishVoteOptions.onChallenge;\n const onChallenge = async (challenge: Challenge, vote: Vote) => {\n setPublishChallengeAnswers(() => vote?.publishChallengeAnswers.bind(vote));\n setChallenge(challenge);\n (originalOnChallenge ?? (() => {}))(challenge, vote);\n };\n publishVoteOptions.onChallenge = onChallenge;\n\n const originalOnChallengeVerification = publishVoteOptions.onChallengeVerification;\n const onChallengeVerification = async (\n challengeVerification: ChallengeVerification,\n vote: Vote,\n ) => {\n setChallengeVerification(challengeVerification);\n (originalOnChallengeVerification ?? noop)(challengeVerification, vote);\n };\n publishVoteOptions.onChallengeVerification = onChallengeVerification;\n\n // change state on publishing state change\n publishVoteOptions.onPublishingStateChange = (publishingState: string) => {\n setPublishingState(publishingState);\n };\n\n const publishVote = async () => {\n try {\n await accountsActions.publishVote(publishVoteOptions, accountName);\n } catch (e: any) {\n handlePublishVoteError(e, setErrors, originalOnError);\n }\n };\n\n return useMemo(\n () => ({\n challenge,\n challengeVerification,\n publishVote,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function usePublishCommentEdit(\n options?: UsePublishCommentEditOptions,\n): UsePublishCommentEditResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishCommentEdit options argument '${options}' not an object`,\n );\n const { accountName, ...publishCommentEditOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && options) {\n initialState = \"ready\";\n }\n\n // define onError if not defined\n const originalOnError = publishCommentEditOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n originalOnError?.(error);\n };\n publishCommentEditOptions.onError = onError;\n\n // define onChallenge if not defined\n const originalOnChallenge = publishCommentEditOptions.onChallenge;\n const onChallenge = async (challenge: Challenge, commentEdit: CommentEdit) => {\n // cannot set a function directly with setState\n setPublishChallengeAnswers(() => commentEdit?.publishChallengeAnswers.bind(commentEdit));\n setChallenge(challenge);\n originalOnChallenge?.(challenge, commentEdit);\n };\n publishCommentEditOptions.onChallenge = onChallenge;\n\n // define onChallengeVerification if not defined\n const originalOnChallengeVerification = publishCommentEditOptions.onChallengeVerification;\n const onChallengeVerification = async (\n challengeVerification: ChallengeVerification,\n commentEdit: CommentEdit,\n ) => {\n setChallengeVerification(challengeVerification);\n originalOnChallengeVerification?.(challengeVerification, commentEdit);\n };\n publishCommentEditOptions.onChallengeVerification = onChallengeVerification;\n\n // change state on publishing state change\n publishCommentEditOptions.onPublishingStateChange = (publishingState: string) => {\n setPublishingState(publishingState);\n };\n\n const publishCommentEdit = async () => {\n try {\n await accountsActions.publishCommentEdit(publishCommentEditOptions, accountName);\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n originalOnError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n challenge,\n challengeVerification,\n publishCommentEdit,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function usePublishCommentModeration(\n options?: UsePublishCommentModerationOptions,\n): UsePublishCommentModerationResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishCommentModeration options argument '${options}' not an object`,\n );\n const { accountName, ...publishCommentModerationOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && options) {\n initialState = \"ready\";\n }\n\n // define onError if not defined\n const originalOnError = publishCommentModerationOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n originalOnError?.(error);\n };\n publishCommentModerationOptions.onError = onError;\n\n // define onChallenge if not defined\n const originalOnChallenge = publishCommentModerationOptions.onChallenge;\n const onChallenge = async (challenge: Challenge, commentModeration: CommentModeration) => {\n // cannot set a function directly with setState\n setPublishChallengeAnswers(() =>\n commentModeration?.publishChallengeAnswers.bind(commentModeration),\n );\n setChallenge(challenge);\n originalOnChallenge?.(challenge, commentModeration);\n };\n publishCommentModerationOptions.onChallenge = onChallenge;\n\n // define onChallengeVerification if not defined\n const originalOnChallengeVerification = publishCommentModerationOptions.onChallengeVerification;\n const onChallengeVerification = async (\n challengeVerification: ChallengeVerification,\n commentModeration: CommentModeration,\n ) => {\n setChallengeVerification(challengeVerification);\n originalOnChallengeVerification?.(challengeVerification, commentModeration);\n };\n publishCommentModerationOptions.onChallengeVerification = onChallengeVerification;\n\n // change state on publishing state change\n publishCommentModerationOptions.onPublishingStateChange = (publishingState: string) => {\n setPublishingState(publishingState);\n };\n\n const publishCommentModeration = async () => {\n try {\n await accountsActions.publishCommentModeration(publishCommentModerationOptions, accountName);\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n originalOnError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n challenge,\n challengeVerification,\n publishCommentModeration,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function usePublishCommunityEdit(\n options?: UsePublishCommunityEditOptions,\n): UsePublishCommunityEditResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishCommunityEdit options argument '${options}' not an object`,\n );\n const { accountName, communityAddress, ...publishCommunityEditOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && communityAddress) {\n initialState = \"ready\";\n }\n\n // define onError if not defined\n const originalOnError = publishCommunityEditOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n originalOnError?.(error);\n };\n publishCommunityEditOptions.onError = onError;\n\n // define onChallenge if not defined\n const originalOnChallenge = publishCommunityEditOptions.onChallenge;\n const onChallenge = async (challenge: Challenge, communityEdit: CommunityEdit) => {\n // cannot set a function directly with setState\n setPublishChallengeAnswers(() => communityEdit?.publishChallengeAnswers.bind(communityEdit));\n setChallenge(challenge);\n originalOnChallenge?.(challenge, communityEdit);\n };\n publishCommunityEditOptions.onChallenge = onChallenge;\n\n // define onChallengeVerification if not defined\n const originalOnChallengeVerification = publishCommunityEditOptions.onChallengeVerification;\n const onChallengeVerification = async (\n challengeVerification: ChallengeVerification,\n communityEdit: CommunityEdit,\n ) => {\n setChallengeVerification(challengeVerification);\n originalOnChallengeVerification?.(challengeVerification, communityEdit);\n };\n publishCommunityEditOptions.onChallengeVerification = onChallengeVerification;\n\n // change state on publishing state change\n publishCommunityEditOptions.onPublishingStateChange = (publishingState: string) => {\n setPublishingState(publishingState);\n };\n\n const publishCommunityEdit = async () => {\n try {\n await accountsActions.publishCommunityEdit(\n communityAddress,\n publishCommunityEditOptions,\n accountName,\n );\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n originalOnError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n challenge,\n challengeVerification,\n publishCommunityEdit,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function useCreateCommunity(options?: UseCreateCommunityOptions): UseCreateCommunityResult {\n assert(\n !options || typeof options === \"object\",\n `useCreateCommunity options argument '${options}' not an object`,\n );\n const { accountName, onError, ...createCommunityOptions } = options || {};\n const accountId = useAccountId(accountName);\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const [errors, setErrors] = useState<Error[]>([]);\n const [state, setState] = useState<string>();\n const [createdCommunity, setCreatedCommunity] = useState<Community>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && options) {\n initialState = \"ready\";\n }\n\n const createCommunity = async () => {\n try {\n setState(\"creating\");\n const createdCommunity = await accountsActions.createCommunity(\n createCommunityOptions,\n accountName,\n );\n setCreatedCommunity(createdCommunity);\n setState(\"succeeded\");\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n setState(\"failed\");\n onError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n createdCommunity,\n createCommunity,\n state: state || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [state, errors, createdCommunity, options, accountName],\n );\n}\n"]}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/hooks/actions/actions.ts"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, useRef, useState } from \"react\";\nimport type { Dispatch, SetStateAction } from \"react\";\nimport useAccountsStore from \"../../stores/accounts\";\nimport Logger from \"@pkcprotocol/pkc-logger\";\nconst log = Logger(\"bitsocial-react-hooks:actions:hooks\");\nimport assert from \"assert\";\nimport { useAccount, useAccountId } from \"../accounts\";\n\n/** Wraps a callback to no-op when guard returns false. Exported for coverage. */\nexport function withGuardActive<T extends (...args: any[]) => void>(\n guardActive: () => boolean,\n fn: T,\n): T {\n return ((...args: Parameters<T>) => {\n if (!guardActive()) return;\n return fn(...args);\n }) as T;\n}\n\nconst noop = () => {};\n\n/** For usePublishComment: when abandoned, catch should no-op. Exported for coverage. */\nexport function handlePublishErrorWhenAbandoned(\n activeRequestIdRef: { current: number | undefined },\n requestId: number,\n error: Error,\n setErrors: Dispatch<SetStateAction<Error[]>>,\n onError?: (e: Error) => void,\n): void {\n if (activeRequestIdRef.current !== requestId) return;\n setErrors((errors) => [...errors, error]);\n (onError ?? noop)(error);\n}\n\n/** For usePublishVote catch. Exported for coverage. */\nexport function handlePublishVoteError(\n error: Error,\n setErrors: Dispatch<SetStateAction<Error[]>>,\n onError?: (e: Error) => void,\n): void {\n setErrors((errors) => [...errors, error]);\n (onError ?? noop)(error);\n}\nimport type {\n UseSubscribeOptions,\n UseSubscribeResult,\n UsePublishCommentOptions,\n UsePublishCommentResult,\n UseBlockOptions,\n UseBlockResult,\n UseCreateCommunityOptions,\n UseCreateCommunityResult,\n UseExportCommunityOptions,\n UseExportCommunityResult,\n UsePublishVoteOptions,\n UsePublishVoteResult,\n UsePublishCommentEditOptions,\n UsePublishCommentEditResult,\n UsePublishCommentModerationOptions,\n UsePublishCommentModerationResult,\n UsePublishCommunityEditOptions,\n UsePublishCommunityEditResult,\n Challenge,\n ChallengeVerification,\n Comment,\n CommentEdit,\n CommentModeration,\n CommunityEdit,\n Vote,\n Community,\n CommunityExport,\n} from \"../../types\";\n\ntype PublishChallengeAnswers = (challengeAnswers: string[]) => Promise<void>;\nconst publishChallengeAnswersNotReady: PublishChallengeAnswers = async (challengeAnswers) => {\n throw Error(\n `can't call publishChallengeAnswers() before result.challenge is defined (before the challenge message is received)`,\n );\n};\n\nexport function useSubscribe(options?: UseSubscribeOptions): UseSubscribeResult {\n assert(\n !options || typeof options === \"object\",\n `useSubscribe options argument '${options}' not an object`,\n );\n const { communityAddress, accountName, onError } = options || {};\n const account = useAccount({ accountName });\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const [errors, setErrors] = useState<Error[]>([]);\n let state = \"initializing\";\n let subscribed: boolean | undefined;\n\n // before the account and communityAddress is defined, nothing can happen\n if (account && communityAddress) {\n state = \"ready\";\n subscribed = Boolean(account.subscriptions?.includes(communityAddress));\n }\n\n const subscribe = async () => {\n try {\n await accountsActions.subscribe(communityAddress, accountName);\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n const unsubscribe = async () => {\n try {\n await accountsActions.unsubscribe(communityAddress, accountName);\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n subscribed,\n subscribe,\n unsubscribe,\n state,\n error: errors[errors.length - 1],\n errors,\n }),\n [state, subscribed, errors, communityAddress, accountName],\n );\n}\n\nexport function useBlock(options?: UseBlockOptions): UseBlockResult {\n assert(\n !options || typeof options === \"object\",\n `useBlock options argument '${options}' not an object`,\n );\n const { address, cid, accountName, onError } = options || {};\n if (address && cid) {\n throw Error(\n `can't useBlock with both an address '${address}' and cid '${cid}' argument at the same time`,\n );\n }\n const account = useAccount({ accountName });\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const [errors, setErrors] = useState<Error[]>([]);\n let state = \"initializing\";\n let blocked: boolean | undefined;\n\n // before the account and address is defined, nothing can happen\n if (account && (address || cid)) {\n state = \"ready\";\n if (address) {\n blocked = Boolean(account.blockedAddresses[address]);\n }\n if (cid) {\n blocked = Boolean(account.blockedCids[cid]);\n }\n }\n\n const block = async () => {\n try {\n if (cid) {\n await accountsActions.blockCid(cid, accountName);\n } else {\n await accountsActions.blockAddress(address, accountName);\n }\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n const unblock = async () => {\n try {\n if (cid) {\n await accountsActions.unblockCid(cid, accountName);\n } else {\n await accountsActions.unblockAddress(address, accountName);\n }\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n blocked,\n block,\n unblock,\n state,\n error: errors[errors.length - 1],\n errors,\n }),\n [state, blocked, errors, address, accountName],\n );\n}\n\nexport function usePublishComment(options?: UsePublishCommentOptions): UsePublishCommentResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishComment options argument '${options}' not an object`,\n );\n const { accountName, ...publishCommentOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [index, setIndex] = useState<number>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n const indexRef = useRef<number | undefined>(undefined);\n const publishRequestIdRef = useRef(0);\n const activePublishRequestIdRef = useRef<number | undefined>(undefined);\n const guardActive = () => activePublishRequestIdRef.current !== undefined;\n publishCommentOptions._onPendingCommentIndex = withGuardActive(\n guardActive,\n (pendingIndex: number) => {\n indexRef.current = pendingIndex;\n setIndex(pendingIndex);\n },\n );\n\n let initialState = \"initializing\";\n if (accountId && options) initialState = \"ready\";\n\n const originalOnError = publishCommentOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n (originalOnError ?? noop)(error);\n };\n publishCommentOptions.onError = onError;\n\n const originalOnChallenge = publishCommentOptions.onChallenge;\n publishCommentOptions.onChallenge = withGuardActive(\n guardActive,\n async (challenge: Challenge, comment: Comment) => {\n setPublishChallengeAnswers(() => comment?.publishChallengeAnswers.bind(comment));\n setChallenge(challenge);\n (originalOnChallenge ?? noop)(challenge, comment);\n },\n );\n\n const originalOnChallengeVerification = publishCommentOptions.onChallengeVerification;\n publishCommentOptions.onChallengeVerification = withGuardActive(\n guardActive,\n async (challengeVerification: ChallengeVerification, comment: Comment) => {\n setChallengeVerification(challengeVerification);\n (originalOnChallengeVerification ?? noop)(challengeVerification, comment);\n },\n );\n\n publishCommentOptions.onPublishingStateChange = withGuardActive(\n guardActive,\n (publishingState: string) => setPublishingState(publishingState),\n );\n\n const publishComment = async () => {\n const requestId = publishRequestIdRef.current + 1;\n publishRequestIdRef.current = requestId;\n activePublishRequestIdRef.current = requestId;\n try {\n const { index } = await accountsActions.publishComment(publishCommentOptions, accountName);\n if (activePublishRequestIdRef.current !== requestId) {\n return;\n }\n indexRef.current = index;\n setIndex(index);\n } catch (e: any) {\n handlePublishErrorWhenAbandoned(\n activePublishRequestIdRef,\n requestId,\n e,\n setErrors,\n originalOnError,\n );\n }\n };\n\n const abandonPublish = async () => {\n activePublishRequestIdRef.current = undefined;\n const idx = indexRef.current;\n if (idx !== undefined) {\n await accountsActions.deleteComment(idx, accountName);\n }\n indexRef.current = undefined;\n setChallenge(undefined);\n setChallengeVerification(undefined);\n setPublishChallengeAnswers(undefined);\n setIndex(undefined);\n setPublishingState(undefined);\n };\n\n return useMemo(\n () => ({\n index,\n challenge,\n challengeVerification,\n publishComment,\n abandonPublish,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n index,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function usePublishVote(options?: UsePublishVoteOptions): UsePublishVoteResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishVote options argument '${options}' not an object`,\n );\n const { accountName, ...publishVoteOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && options) {\n initialState = \"ready\";\n }\n\n // define onError if not defined\n const originalOnError = publishVoteOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n originalOnError?.(error);\n };\n publishVoteOptions.onError = onError;\n\n // define onChallenge if not defined\n const originalOnChallenge = publishVoteOptions.onChallenge;\n const onChallenge = async (challenge: Challenge, vote: Vote) => {\n setPublishChallengeAnswers(() => vote?.publishChallengeAnswers.bind(vote));\n setChallenge(challenge);\n (originalOnChallenge ?? (() => {}))(challenge, vote);\n };\n publishVoteOptions.onChallenge = onChallenge;\n\n const originalOnChallengeVerification = publishVoteOptions.onChallengeVerification;\n const onChallengeVerification = async (\n challengeVerification: ChallengeVerification,\n vote: Vote,\n ) => {\n setChallengeVerification(challengeVerification);\n (originalOnChallengeVerification ?? noop)(challengeVerification, vote);\n };\n publishVoteOptions.onChallengeVerification = onChallengeVerification;\n\n // change state on publishing state change\n publishVoteOptions.onPublishingStateChange = (publishingState: string) => {\n setPublishingState(publishingState);\n };\n\n const publishVote = async () => {\n try {\n await accountsActions.publishVote(publishVoteOptions, accountName);\n } catch (e: any) {\n handlePublishVoteError(e, setErrors, originalOnError);\n }\n };\n\n return useMemo(\n () => ({\n challenge,\n challengeVerification,\n publishVote,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function usePublishCommentEdit(\n options?: UsePublishCommentEditOptions,\n): UsePublishCommentEditResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishCommentEdit options argument '${options}' not an object`,\n );\n const { accountName, ...publishCommentEditOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && options) {\n initialState = \"ready\";\n }\n\n // define onError if not defined\n const originalOnError = publishCommentEditOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n originalOnError?.(error);\n };\n publishCommentEditOptions.onError = onError;\n\n // define onChallenge if not defined\n const originalOnChallenge = publishCommentEditOptions.onChallenge;\n const onChallenge = async (challenge: Challenge, commentEdit: CommentEdit) => {\n // cannot set a function directly with setState\n setPublishChallengeAnswers(() => commentEdit?.publishChallengeAnswers.bind(commentEdit));\n setChallenge(challenge);\n originalOnChallenge?.(challenge, commentEdit);\n };\n publishCommentEditOptions.onChallenge = onChallenge;\n\n // define onChallengeVerification if not defined\n const originalOnChallengeVerification = publishCommentEditOptions.onChallengeVerification;\n const onChallengeVerification = async (\n challengeVerification: ChallengeVerification,\n commentEdit: CommentEdit,\n ) => {\n setChallengeVerification(challengeVerification);\n originalOnChallengeVerification?.(challengeVerification, commentEdit);\n };\n publishCommentEditOptions.onChallengeVerification = onChallengeVerification;\n\n // change state on publishing state change\n publishCommentEditOptions.onPublishingStateChange = (publishingState: string) => {\n setPublishingState(publishingState);\n };\n\n const publishCommentEdit = async () => {\n try {\n await accountsActions.publishCommentEdit(publishCommentEditOptions, accountName);\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n originalOnError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n challenge,\n challengeVerification,\n publishCommentEdit,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function usePublishCommentModeration(\n options?: UsePublishCommentModerationOptions,\n): UsePublishCommentModerationResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishCommentModeration options argument '${options}' not an object`,\n );\n const { accountName, ...publishCommentModerationOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && options) {\n initialState = \"ready\";\n }\n\n // define onError if not defined\n const originalOnError = publishCommentModerationOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n originalOnError?.(error);\n };\n publishCommentModerationOptions.onError = onError;\n\n // define onChallenge if not defined\n const originalOnChallenge = publishCommentModerationOptions.onChallenge;\n const onChallenge = async (challenge: Challenge, commentModeration: CommentModeration) => {\n // cannot set a function directly with setState\n setPublishChallengeAnswers(() =>\n commentModeration?.publishChallengeAnswers.bind(commentModeration),\n );\n setChallenge(challenge);\n originalOnChallenge?.(challenge, commentModeration);\n };\n publishCommentModerationOptions.onChallenge = onChallenge;\n\n // define onChallengeVerification if not defined\n const originalOnChallengeVerification = publishCommentModerationOptions.onChallengeVerification;\n const onChallengeVerification = async (\n challengeVerification: ChallengeVerification,\n commentModeration: CommentModeration,\n ) => {\n setChallengeVerification(challengeVerification);\n originalOnChallengeVerification?.(challengeVerification, commentModeration);\n };\n publishCommentModerationOptions.onChallengeVerification = onChallengeVerification;\n\n // change state on publishing state change\n publishCommentModerationOptions.onPublishingStateChange = (publishingState: string) => {\n setPublishingState(publishingState);\n };\n\n const publishCommentModeration = async () => {\n try {\n await accountsActions.publishCommentModeration(publishCommentModerationOptions, accountName);\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n originalOnError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n challenge,\n challengeVerification,\n publishCommentModeration,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function usePublishCommunityEdit(\n options?: UsePublishCommunityEditOptions,\n): UsePublishCommunityEditResult {\n assert(\n !options || typeof options === \"object\",\n `usePublishCommunityEdit options argument '${options}' not an object`,\n );\n const { accountName, communityAddress, ...publishCommunityEditOptions } = options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [publishingState, setPublishingState] = useState<string>();\n const [challenge, setChallenge] = useState<Challenge>();\n const [challengeVerification, setChallengeVerification] = useState<ChallengeVerification>();\n const [publishChallengeAnswers, setPublishChallengeAnswers] = useState<PublishChallengeAnswers>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && communityAddress) {\n initialState = \"ready\";\n }\n\n // define onError if not defined\n const originalOnError = publishCommunityEditOptions.onError;\n const onError = async (error: Error) => {\n setErrors((errors) => [...errors, error]);\n originalOnError?.(error);\n };\n publishCommunityEditOptions.onError = onError;\n\n // define onChallenge if not defined\n const originalOnChallenge = publishCommunityEditOptions.onChallenge;\n const onChallenge = async (challenge: Challenge, communityEdit: CommunityEdit) => {\n // cannot set a function directly with setState\n setPublishChallengeAnswers(() => communityEdit?.publishChallengeAnswers.bind(communityEdit));\n setChallenge(challenge);\n originalOnChallenge?.(challenge, communityEdit);\n };\n publishCommunityEditOptions.onChallenge = onChallenge;\n\n // define onChallengeVerification if not defined\n const originalOnChallengeVerification = publishCommunityEditOptions.onChallengeVerification;\n const onChallengeVerification = async (\n challengeVerification: ChallengeVerification,\n communityEdit: CommunityEdit,\n ) => {\n setChallengeVerification(challengeVerification);\n originalOnChallengeVerification?.(challengeVerification, communityEdit);\n };\n publishCommunityEditOptions.onChallengeVerification = onChallengeVerification;\n\n // change state on publishing state change\n publishCommunityEditOptions.onPublishingStateChange = (publishingState: string) => {\n setPublishingState(publishingState);\n };\n\n const publishCommunityEdit = async () => {\n try {\n await accountsActions.publishCommunityEdit(\n communityAddress,\n publishCommunityEditOptions,\n accountName,\n );\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n originalOnError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n challenge,\n challengeVerification,\n publishCommunityEdit,\n publishChallengeAnswers: publishChallengeAnswers || publishChallengeAnswersNotReady,\n state: publishingState || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [\n publishingState,\n initialState,\n errors,\n challenge,\n challengeVerification,\n options,\n accountName,\n publishChallengeAnswers,\n ],\n );\n}\n\nexport function useCreateCommunity(options?: UseCreateCommunityOptions): UseCreateCommunityResult {\n assert(\n !options || typeof options === \"object\",\n `useCreateCommunity options argument '${options}' not an object`,\n );\n const { accountName, onError, ...createCommunityOptions } = options || {};\n const accountId = useAccountId(accountName);\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const [errors, setErrors] = useState<Error[]>([]);\n const [state, setState] = useState<string>();\n const [createdCommunity, setCreatedCommunity] = useState<Community>();\n\n let initialState = \"initializing\";\n // before the accountId and options is defined, nothing can happen\n if (accountId && options) {\n initialState = \"ready\";\n }\n\n const createCommunity = async () => {\n try {\n setState(\"creating\");\n const createdCommunity = await accountsActions.createCommunity(\n createCommunityOptions,\n accountName,\n );\n setCreatedCommunity(createdCommunity);\n setState(\"succeeded\");\n } catch (e: any) {\n setErrors((errors) => [...errors, e]);\n setState(\"failed\");\n onError?.(e);\n }\n };\n\n return useMemo(\n () => ({\n createdCommunity,\n createCommunity,\n state: state || initialState,\n error: errors[errors.length - 1],\n errors,\n }),\n [state, errors, createdCommunity, options, accountName],\n );\n}\n\nexport function useExportCommunity(options?: UseExportCommunityOptions): UseExportCommunityResult {\n assert(\n !options || typeof options === \"object\",\n `useExportCommunity options argument '${options}' not an object`,\n );\n const { accountName, communityAddress, communityAddresses, onError, ...exportCommunityOptions } =\n options || {};\n const accountsActions = useAccountsStore((state) => state.accountsActions);\n const accountId = useAccountId(accountName);\n const [errors, setErrors] = useState<Error[]>([]);\n const [exportingState, setExportingState] = useState<string>();\n const [communityExports, setCommunityExports] = useState<CommunityExport[]>([]);\n const targetCommunityAddresses =\n communityAddresses || (communityAddress ? [communityAddress] : undefined);\n const exportContextKey = JSON.stringify([\n accountId || null,\n targetCommunityAddresses || null,\n exportCommunityOptions.includePrivateKey === true,\n exportCommunityOptions.exportPath,\n ]);\n const previousExportContextKeyRef = useRef(exportContextKey);\n const exportContextVersionRef = useRef(0);\n if (previousExportContextKeyRef.current !== exportContextKey) {\n previousExportContextKeyRef.current = exportContextKey;\n exportContextVersionRef.current += 1;\n }\n const [exportingContext, setExportingContext] = useState<{\n key: string;\n version: number;\n }>();\n\n let initialState = \"initializing\";\n if (accountId) {\n initialState = \"ready\";\n }\n const hasCurrentExportState =\n accountId &&\n exportingContext?.key === exportContextKey &&\n exportingContext.version === exportContextVersionRef.current;\n\n const exportCommunity = async () => {\n try {\n setExportingContext({\n key: exportContextKey,\n version: exportContextVersionRef.current,\n });\n setExportingState(\"exporting\");\n const communityExports = await accountsActions.exportCommunity(\n targetCommunityAddresses,\n exportCommunityOptions,\n accountName,\n );\n setCommunityExports(communityExports);\n setExportingState(\"succeeded\");\n } catch (e: any) {\n setExportingState(\"failed\");\n setErrors((errors) => [...errors, e]);\n onError?.(e);\n }\n };\n\n return {\n communityExports: hasCurrentExportState ? communityExports : [],\n exportCommunity,\n state: hasCurrentExportState ? exportingState! : initialState,\n error: hasCurrentExportState ? errors[errors.length - 1] : undefined,\n errors: hasCurrentExportState ? errors : [],\n };\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { useReplies } from "./hooks/replies.js";
4
4
  import { useCommunity, useCommunities, useCommunityStats, useListCommunities, useResolvedCommunityAddress } from "./hooks/communities.js";
5
5
  import { useFeed, useBufferedFeeds } from "./hooks/feeds/index.js";
6
6
  import { useAuthor, useAuthorComments, useAuthorAvatar, useResolvedAuthorAddress, useAuthorAddress, setAuthorAvatarsWhitelistedTokenAddresses, resetAuthorAddressCacheForTesting } from "./hooks/authors/index.js";
7
- import { useSubscribe, useBlock, usePublishComment, usePublishVote, useCreateCommunity, usePublishCommentEdit, usePublishCommentModeration, usePublishCommunityEdit } from "./hooks/actions/index.js";
7
+ import { useSubscribe, useBlock, usePublishComment, usePublishVote, useCreateCommunity, usePublishCommentEdit, usePublishCommentModeration, usePublishCommunityEdit, useExportCommunity } from "./hooks/actions/index.js";
8
8
  import { createAccount, deleteAccount, deleteComment, setAccount, setActiveAccount, setAccountsOrder, importAccount, exportAccount, deleteCommunity } from "./stores/accounts/accounts-actions.js";
9
9
  import { useClientsStates, useCommunitiesStates } from "./hooks/states.js";
10
10
  import { usePkcRpcSettings } from "./hooks/pkc-rpc.js";
@@ -12,7 +12,7 @@ import { getEthWalletFromPkcPrivateKey, getEthPrivateKeyFromPkcPrivateKey, valid
12
12
  import { setPkcJs, restorePkcJs } from "./lib/pkc-js/index.js";
13
13
  import { deleteDatabases, deleteCaches } from "./lib/debug-utils.js";
14
14
  export * from "./types.js";
15
- export { useAccount, useAccounts, useAccountComment, useAccountComments, useAccountVotes, useAccountVote, useAccountEdits, useAccountCommunities, useNotifications, usePubsubSubscribe, useComment, useComments, useEditedComment, useValidateComment, useReplies, useCommunity, useCommunities, useCommunityStats, useListCommunities, useResolvedCommunityAddress, useAuthor, useAuthorComments, useAuthorAvatar, useResolvedAuthorAddress, useAuthorAddress, setAuthorAvatarsWhitelistedTokenAddresses, resetAuthorAddressCacheForTesting, useFeed, useBufferedFeeds, useSubscribe, useBlock, usePublishComment, usePublishVote, usePublishCommentEdit, usePublishCommentModeration, usePublishCommunityEdit, useCreateCommunity, createAccount, deleteAccount, deleteComment, setAccount, setActiveAccount, setAccountsOrder, importAccount, exportAccount, deleteCommunity, useClientsStates, useCommunitiesStates, usePkcRpcSettings, getEthWalletFromPkcPrivateKey, getEthPrivateKeyFromPkcPrivateKey, validateEthWallet, setPkcJs, restorePkcJs, deleteDatabases, deleteCaches, };
15
+ export { useAccount, useAccounts, useAccountComment, useAccountComments, useAccountVotes, useAccountVote, useAccountEdits, useAccountCommunities, useNotifications, usePubsubSubscribe, useComment, useComments, useEditedComment, useValidateComment, useReplies, useCommunity, useCommunities, useCommunityStats, useListCommunities, useResolvedCommunityAddress, useAuthor, useAuthorComments, useAuthorAvatar, useResolvedAuthorAddress, useAuthorAddress, setAuthorAvatarsWhitelistedTokenAddresses, resetAuthorAddressCacheForTesting, useFeed, useBufferedFeeds, useSubscribe, useBlock, usePublishComment, usePublishVote, usePublishCommentEdit, usePublishCommentModeration, usePublishCommunityEdit, useCreateCommunity, useExportCommunity, createAccount, deleteAccount, deleteComment, setAccount, setActiveAccount, setAccountsOrder, importAccount, exportAccount, deleteCommunity, useClientsStates, useCommunitiesStates, usePkcRpcSettings, getEthWalletFromPkcPrivateKey, getEthPrivateKeyFromPkcPrivateKey, validateEthWallet, setPkcJs, restorePkcJs, deleteDatabases, deleteCaches, };
16
16
  declare const hooks: {
17
17
  useAccount: typeof useAccount;
18
18
  useAccounts: typeof useAccounts;
@@ -51,6 +51,7 @@ declare const hooks: {
51
51
  usePublishCommentModeration: typeof usePublishCommentModeration;
52
52
  usePublishCommunityEdit: typeof usePublishCommunityEdit;
53
53
  useCreateCommunity: typeof useCreateCommunity;
54
+ useExportCommunity: typeof useExportCommunity;
54
55
  createAccount: (accountName?: string) => Promise<void>;
55
56
  deleteAccount: (accountName?: string) => Promise<void>;
56
57
  deleteComment: (commentCidOrAccountCommentIndex: string | number, accountName?: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,yCAAyC,EACzC,iCAAiC,EAClC,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGlE,cAAc,SAAS,CAAC;AAGxB,OAAO,EAEL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAElB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAElB,UAAU,EAEV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAE3B,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,yCAAyC,EACzC,iCAAiC,EAEjC,OAAO,EACP,gBAAgB,EAEhB,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAElB,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EAEf,gBAAgB,EAChB,oBAAoB,EAEpB,iBAAiB,EAEjB,6BAA6B,EAC7B,iCAAiC,EACjC,iBAAiB,EAEjB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,YAAY,GACb,CAAC;AAGF,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEV,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,yCAAyC,EACzC,iCAAiC,EAClC,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGlE,cAAc,SAAS,CAAC;AAGxB,OAAO,EAEL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAElB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAElB,UAAU,EAEV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAE3B,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,yCAAyC,EACzC,iCAAiC,EAEjC,OAAO,EACP,gBAAgB,EAEhB,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAElB,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EAEf,gBAAgB,EAChB,oBAAoB,EAEpB,iBAAiB,EAEjB,6BAA6B,EAC7B,iCAAiC,EACjC,iBAAiB,EAEjB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,YAAY,GACb,CAAC;AAGF,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEV,CAAC;AAEF,eAAe,KAAK,CAAC"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import { useFeed, useBufferedFeeds } from "./hooks/feeds/index.js";
13
13
  // authors
14
14
  import { useAuthor, useAuthorComments, useAuthorAvatar, useResolvedAuthorAddress, useAuthorAddress, setAuthorAvatarsWhitelistedTokenAddresses, resetAuthorAddressCacheForTesting, } from "./hooks/authors/index.js";
15
15
  // actions
16
- import { useSubscribe, useBlock, usePublishComment, usePublishVote, useCreateCommunity, usePublishCommentEdit, usePublishCommentModeration, usePublishCommunityEdit, } from "./hooks/actions/index.js";
16
+ import { useSubscribe, useBlock, usePublishComment, usePublishVote, useCreateCommunity, usePublishCommentEdit, usePublishCommentModeration, usePublishCommunityEdit, useExportCommunity, } from "./hooks/actions/index.js";
17
17
  // actions that don't have their own hooks yet
18
18
  import { createAccount, deleteAccount, deleteComment, setAccount, setActiveAccount, setAccountsOrder, importAccount, exportAccount, deleteCommunity, } from "./stores/accounts/accounts-actions.js";
19
19
  // states
@@ -42,7 +42,7 @@ useAuthor, useAuthorComments, useAuthorAvatar, useResolvedAuthorAddress, useAuth
42
42
  // feeds
43
43
  useFeed, useBufferedFeeds,
44
44
  // actions
45
- useSubscribe, useBlock, usePublishComment, usePublishVote, usePublishCommentEdit, usePublishCommentModeration, usePublishCommunityEdit, useCreateCommunity,
45
+ useSubscribe, useBlock, usePublishComment, usePublishVote, usePublishCommentEdit, usePublishCommentModeration, usePublishCommunityEdit, useCreateCommunity, useExportCommunity,
46
46
  // actions that don't have their own hooks yet
47
47
  createAccount, deleteAccount, deleteComment, setAccount, setActiveAccount, setAccountsOrder, importAccount, exportAccount, deleteCommunity,
48
48
  // states
@@ -99,6 +99,7 @@ const hooks = {
99
99
  usePublishCommentModeration,
100
100
  usePublishCommunityEdit,
101
101
  useCreateCommunity,
102
+ useExportCommunity,
102
103
  // actions that don't have their own hooks yet
103
104
  createAccount,
104
105
  deleteAccount,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import polyfill from \"./lib/polyfill\";\npolyfill();\n\n// accounts\nimport {\n useAccount,\n useAccounts,\n useAccountComment,\n useAccountComments,\n useAccountVotes,\n useAccountVote,\n useAccountEdits,\n useEditedComment,\n useNotifications,\n useAccountCommunities,\n usePubsubSubscribe,\n} from \"./hooks/accounts\";\n\n// comments\nimport { useComment, useComments, useValidateComment } from \"./hooks/comments\";\n\n// replies\nimport { useReplies } from \"./hooks/replies\";\n\n// communities\nimport {\n useCommunity,\n useCommunities,\n useCommunityStats,\n useListCommunities,\n useResolvedCommunityAddress,\n} from \"./hooks/communities\";\n\n// feeds\nimport { useFeed, useBufferedFeeds } from \"./hooks/feeds\";\n\n// authors\nimport {\n useAuthor,\n useAuthorComments,\n useAuthorAvatar,\n useResolvedAuthorAddress,\n useAuthorAddress,\n setAuthorAvatarsWhitelistedTokenAddresses,\n resetAuthorAddressCacheForTesting,\n} from \"./hooks/authors\";\n\n// actions\nimport {\n useSubscribe,\n useBlock,\n usePublishComment,\n usePublishVote,\n useCreateCommunity,\n usePublishCommentEdit,\n usePublishCommentModeration,\n usePublishCommunityEdit,\n} from \"./hooks/actions\";\n\n// actions that don't have their own hooks yet\nimport {\n createAccount,\n deleteAccount,\n deleteComment,\n setAccount,\n setActiveAccount,\n setAccountsOrder,\n importAccount,\n exportAccount,\n deleteCommunity,\n} from \"./stores/accounts/accounts-actions\";\n\n// states\nimport { useClientsStates, useCommunitiesStates } from \"./hooks/states\";\n\n// pkc-rpc\nimport { usePkcRpcSettings } from \"./hooks/pkc-rpc\";\n\n// chain\nimport {\n getEthWalletFromPkcPrivateKey,\n getEthPrivateKeyFromPkcPrivateKey,\n validateEthWallet,\n} from \"./lib/chain\";\n\n// utils\nimport { setPkcJs, restorePkcJs } from \"./lib/pkc-js\";\nimport { deleteDatabases, deleteCaches } from \"./lib/debug-utils\";\n\n// types\nexport * from \"./types\";\n\n// IMPORTANT: should be the same as 'export default hooks'\nexport {\n // accounts\n useAccount,\n useAccounts,\n useAccountComment,\n useAccountComments,\n useAccountVotes,\n useAccountVote,\n useAccountEdits,\n useAccountCommunities,\n useNotifications,\n usePubsubSubscribe,\n // comments\n useComment,\n useComments,\n useEditedComment,\n useValidateComment,\n // replies\n useReplies,\n // communities\n useCommunity,\n useCommunities,\n useCommunityStats,\n useListCommunities,\n useResolvedCommunityAddress,\n // authors\n useAuthor,\n useAuthorComments,\n useAuthorAvatar,\n useResolvedAuthorAddress,\n useAuthorAddress,\n setAuthorAvatarsWhitelistedTokenAddresses,\n resetAuthorAddressCacheForTesting,\n // feeds\n useFeed,\n useBufferedFeeds,\n // actions\n useSubscribe,\n useBlock,\n usePublishComment,\n usePublishVote,\n usePublishCommentEdit,\n usePublishCommentModeration,\n usePublishCommunityEdit,\n useCreateCommunity,\n // actions that don't have their own hooks yet\n createAccount,\n deleteAccount,\n deleteComment,\n setAccount,\n setActiveAccount,\n setAccountsOrder,\n importAccount,\n exportAccount,\n deleteCommunity,\n // states\n useClientsStates,\n useCommunitiesStates,\n // pkc-rpc\n usePkcRpcSettings,\n // chain\n getEthWalletFromPkcPrivateKey,\n getEthPrivateKeyFromPkcPrivateKey,\n validateEthWallet,\n // utils\n setPkcJs,\n restorePkcJs,\n deleteDatabases,\n deleteCaches,\n};\n\n// IMPORTANT: should be the same as 'export {}'\nconst hooks = {\n // accounts\n useAccount,\n useAccounts,\n useAccountComment,\n useAccountComments,\n useAccountVotes,\n useAccountVote,\n useAccountEdits,\n useAccountCommunities,\n useNotifications,\n usePubsubSubscribe,\n // comments\n useComment,\n useComments,\n useEditedComment,\n useValidateComment,\n // replies\n useReplies,\n // communities\n useCommunity,\n useCommunities,\n useCommunityStats,\n useListCommunities,\n useResolvedCommunityAddress,\n // authors\n useAuthor,\n useAuthorComments,\n useAuthorAvatar,\n useResolvedAuthorAddress,\n useAuthorAddress,\n setAuthorAvatarsWhitelistedTokenAddresses,\n resetAuthorAddressCacheForTesting,\n // feeds\n useFeed,\n useBufferedFeeds,\n // actions\n useSubscribe,\n useBlock,\n usePublishComment,\n usePublishVote,\n usePublishCommentEdit,\n usePublishCommentModeration,\n usePublishCommunityEdit,\n useCreateCommunity,\n // actions that don't have their own hooks yet\n createAccount,\n deleteAccount,\n deleteComment,\n setAccount,\n setActiveAccount,\n setAccountsOrder,\n importAccount,\n exportAccount,\n deleteCommunity,\n // states\n useClientsStates,\n useCommunitiesStates,\n // pkc-rpc\n usePkcRpcSettings,\n // chain\n getEthWalletFromPkcPrivateKey,\n getEthPrivateKeyFromPkcPrivateKey,\n validateEthWallet,\n // utils\n setPkcJs,\n restorePkcJs,\n deleteDatabases,\n deleteCaches,\n};\n\nexport default hooks;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import polyfill from \"./lib/polyfill\";\npolyfill();\n\n// accounts\nimport {\n useAccount,\n useAccounts,\n useAccountComment,\n useAccountComments,\n useAccountVotes,\n useAccountVote,\n useAccountEdits,\n useEditedComment,\n useNotifications,\n useAccountCommunities,\n usePubsubSubscribe,\n} from \"./hooks/accounts\";\n\n// comments\nimport { useComment, useComments, useValidateComment } from \"./hooks/comments\";\n\n// replies\nimport { useReplies } from \"./hooks/replies\";\n\n// communities\nimport {\n useCommunity,\n useCommunities,\n useCommunityStats,\n useListCommunities,\n useResolvedCommunityAddress,\n} from \"./hooks/communities\";\n\n// feeds\nimport { useFeed, useBufferedFeeds } from \"./hooks/feeds\";\n\n// authors\nimport {\n useAuthor,\n useAuthorComments,\n useAuthorAvatar,\n useResolvedAuthorAddress,\n useAuthorAddress,\n setAuthorAvatarsWhitelistedTokenAddresses,\n resetAuthorAddressCacheForTesting,\n} from \"./hooks/authors\";\n\n// actions\nimport {\n useSubscribe,\n useBlock,\n usePublishComment,\n usePublishVote,\n useCreateCommunity,\n usePublishCommentEdit,\n usePublishCommentModeration,\n usePublishCommunityEdit,\n useExportCommunity,\n} from \"./hooks/actions\";\n\n// actions that don't have their own hooks yet\nimport {\n createAccount,\n deleteAccount,\n deleteComment,\n setAccount,\n setActiveAccount,\n setAccountsOrder,\n importAccount,\n exportAccount,\n deleteCommunity,\n} from \"./stores/accounts/accounts-actions\";\n\n// states\nimport { useClientsStates, useCommunitiesStates } from \"./hooks/states\";\n\n// pkc-rpc\nimport { usePkcRpcSettings } from \"./hooks/pkc-rpc\";\n\n// chain\nimport {\n getEthWalletFromPkcPrivateKey,\n getEthPrivateKeyFromPkcPrivateKey,\n validateEthWallet,\n} from \"./lib/chain\";\n\n// utils\nimport { setPkcJs, restorePkcJs } from \"./lib/pkc-js\";\nimport { deleteDatabases, deleteCaches } from \"./lib/debug-utils\";\n\n// types\nexport * from \"./types\";\n\n// IMPORTANT: should be the same as 'export default hooks'\nexport {\n // accounts\n useAccount,\n useAccounts,\n useAccountComment,\n useAccountComments,\n useAccountVotes,\n useAccountVote,\n useAccountEdits,\n useAccountCommunities,\n useNotifications,\n usePubsubSubscribe,\n // comments\n useComment,\n useComments,\n useEditedComment,\n useValidateComment,\n // replies\n useReplies,\n // communities\n useCommunity,\n useCommunities,\n useCommunityStats,\n useListCommunities,\n useResolvedCommunityAddress,\n // authors\n useAuthor,\n useAuthorComments,\n useAuthorAvatar,\n useResolvedAuthorAddress,\n useAuthorAddress,\n setAuthorAvatarsWhitelistedTokenAddresses,\n resetAuthorAddressCacheForTesting,\n // feeds\n useFeed,\n useBufferedFeeds,\n // actions\n useSubscribe,\n useBlock,\n usePublishComment,\n usePublishVote,\n usePublishCommentEdit,\n usePublishCommentModeration,\n usePublishCommunityEdit,\n useCreateCommunity,\n useExportCommunity,\n // actions that don't have their own hooks yet\n createAccount,\n deleteAccount,\n deleteComment,\n setAccount,\n setActiveAccount,\n setAccountsOrder,\n importAccount,\n exportAccount,\n deleteCommunity,\n // states\n useClientsStates,\n useCommunitiesStates,\n // pkc-rpc\n usePkcRpcSettings,\n // chain\n getEthWalletFromPkcPrivateKey,\n getEthPrivateKeyFromPkcPrivateKey,\n validateEthWallet,\n // utils\n setPkcJs,\n restorePkcJs,\n deleteDatabases,\n deleteCaches,\n};\n\n// IMPORTANT: should be the same as 'export {}'\nconst hooks = {\n // accounts\n useAccount,\n useAccounts,\n useAccountComment,\n useAccountComments,\n useAccountVotes,\n useAccountVote,\n useAccountEdits,\n useAccountCommunities,\n useNotifications,\n usePubsubSubscribe,\n // comments\n useComment,\n useComments,\n useEditedComment,\n useValidateComment,\n // replies\n useReplies,\n // communities\n useCommunity,\n useCommunities,\n useCommunityStats,\n useListCommunities,\n useResolvedCommunityAddress,\n // authors\n useAuthor,\n useAuthorComments,\n useAuthorAvatar,\n useResolvedAuthorAddress,\n useAuthorAddress,\n setAuthorAvatarsWhitelistedTokenAddresses,\n resetAuthorAddressCacheForTesting,\n // feeds\n useFeed,\n useBufferedFeeds,\n // actions\n useSubscribe,\n useBlock,\n usePublishComment,\n usePublishVote,\n usePublishCommentEdit,\n usePublishCommentModeration,\n usePublishCommunityEdit,\n useCreateCommunity,\n useExportCommunity,\n // actions that don't have their own hooks yet\n createAccount,\n deleteAccount,\n deleteComment,\n setAccount,\n setActiveAccount,\n setAccountsOrder,\n importAccount,\n exportAccount,\n deleteCommunity,\n // states\n useClientsStates,\n useCommunitiesStates,\n // pkc-rpc\n usePkcRpcSettings,\n // chain\n getEthWalletFromPkcPrivateKey,\n getEthPrivateKeyFromPkcPrivateKey,\n validateEthWallet,\n // utils\n setPkcJs,\n restorePkcJs,\n deleteDatabases,\n deleteCaches,\n};\n\nexport default hooks;\n"]}
@@ -73,10 +73,12 @@ export declare class Community extends EventEmitter {
73
73
  updating: boolean;
74
74
  firstUpdate: boolean;
75
75
  address: string | undefined;
76
+ publicKey: string | undefined;
76
77
  title: string | undefined;
77
78
  description: string | undefined;
78
79
  posts: Pages;
79
80
  modQueue: Pages;
81
+ exportRecords: any[];
80
82
  updatedAt: number | undefined;
81
83
  statsCid: string | undefined;
82
84
  state: string;
@@ -84,6 +86,10 @@ export declare class Community extends EventEmitter {
84
86
  constructor(createCommunityOptions?: any);
85
87
  update(): Promise<void>;
86
88
  delete(): Promise<void>;
89
+ get exports(): any[];
90
+ export(exportCommunityOptions?: any): Promise<{
91
+ exportId: string;
92
+ }>;
87
93
  simulateUpdateEvent(): void;
88
94
  simulateFirstUpdateEvent(): Promise<void>;
89
95
  get roles(): {};
@@ -1 +1 @@
1
- {"version":3,"file":"pkc-js-mock.d.ts","sourceRoot":"","sources":["../../../src/lib/pkc-js/pkc-js-mock.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAG5F,eAAO,MAAM,mBAAmB,wBAAuD,CAAC;AAQxF,eAAO,MAAM,cAAc,YAG1B,CAAC;AACF,eAAO,MAAM,cAAc,YAE1B,CAAC;AAEF,cAAM,kBAAmB,SAAQ,YAAY;IAC3C,KAAK,SAAa;CACnB;AAED,qBAAa,GAAI,SAAQ,YAAY;IACnC,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,eAAe,EAAE;QACf,OAAO,EAAE;YACP,aAAa,EAAE;gBAAE,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAAA;aAAE,CAAC;SAC9D,CAAC;KACH,CAAC;gBAEU,OAAO,GAAE,GAAQ;IAgBvB,oBAAoB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAiBjD,iBAAiB,CACrB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAKhC,YAAY;;;;IAOZ,eAAe,CAAC,sBAAsB,EAAE,GAAG;IA6C3C,YAAY,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAqB/C,IAAI,WAAW,aAQd;IAEK,aAAa,CAAC,oBAAoB,EAAE,GAAG;IAIvC,UAAU,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAazC,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM;IAQ1B,UAAU;IAIV,iBAAiB,CAAC,wBAAwB,EAAE,GAAG;IAI/C,uBAAuB,CAAC,8BAA8B,EAAE,GAAG;IAI3D,mBAAmB,CAAC,0BAA0B,EAAE,GAAG;IAInD,QAAQ,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAQjC,eAAe,CAAC,gBAAgB,EAAE,MAAM;IACxC,iBAAiB,CAAC,gBAAgB,EAAE,MAAM;IAEhD,OAAO;;;;MAOF;IAEC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG;CAChE;AAED,cAAM,YAAa,SAAQ,YAAY;IACrC,KAAK,SAAgB;IACrB,QAAQ,EAAE,GAAG,CAAa;;IAYpB,WAAW,CAAC,QAAQ,EAAE,GAAG;CAIhC;AAED,qBAAa,KAAK;IAChB,QAAQ,EAAE,GAAG,CAAM;IACnB,KAAK,EAAE,GAAG,CAAM;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;gBAED,YAAY,CAAC,EAAE,GAAG;IAQxB,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAOhC,YAAY,CAAC,IAAI,EAAE,GAAG;IAG5B,SAAS,CAAC,OAAO,EAAE,MAAM;CA4B1B;AAED,qBAAa,SAAU,SAAQ,YAAY;IACzC,iBAAiB,SAAK;IACtB,QAAQ,UAAS;IACjB,WAAW,UAAQ;IACnB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;gBAEV,sBAAsB,CAAC,EAAE,GAAG;IA6DlC,MAAM;IAqBN,MAAM;IAOZ,mBAAmB;IAiBb,wBAAwB;IA+B9B,IAAI,KAAK,OAER;IAGD,UAAU;IAIJ,IAAI,CAAC,oBAAoB,EAAE,GAAG;CA8CrC;AAOD,cAAM,WAAY,SAAQ,YAAY;IACpC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,kBAAkB,SAAiC;IACnD,iBAAiB,SAAgC;IACjD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B,OAAO;IAUb,sBAAsB;IAahB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,EAAE;IAYxD,kCAAkC;IAkBlC,IAAI;CAeL;AAED,qBAAa,OAAQ,SAAQ,WAAW;IACtC,iBAAiB,SAAK;IACtB,QAAQ,UAAS;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;gBAEZ,oBAAoB,CAAC,EAAE,GAAG;IA6BhC,MAAM;IAuBZ,mBAAmB;IAoBb,mCAAmC;CAuB1C;AAED,qBAAa,IAAK,SAAQ,WAAW;CAAG;AAExC,qBAAa,WAAY,SAAQ,WAAW;CAAG;AAE/C,qBAAa,iBAAkB,SAAQ,WAAW;CAAG;AAErD,qBAAa,aAAc,SAAQ,WAAW;CAAG;AAEjD,QAAA,MAAM,SAAS,EAAE,GAEhB,CAAC;AAeF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"pkc-js-mock.d.ts","sourceRoot":"","sources":["../../../src/lib/pkc-js/pkc-js-mock.ts"],"names":[],"mappings":"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"}
@@ -289,12 +289,14 @@ export class Community extends EventEmitter {
289
289
  (createCommunityOptions === null || createCommunityOptions === void 0 ? void 0 : createCommunityOptions.address) ||
290
290
  (createCommunityOptions === null || createCommunityOptions === void 0 ? void 0 : createCommunityOptions.name) ||
291
291
  (createCommunityOptions === null || createCommunityOptions === void 0 ? void 0 : createCommunityOptions.publicKey);
292
+ this.publicKey = (createCommunityOptions === null || createCommunityOptions === void 0 ? void 0 : createCommunityOptions.publicKey) || this.address;
292
293
  this.title = createCommunityOptions === null || createCommunityOptions === void 0 ? void 0 : createCommunityOptions.title;
293
294
  this.description = createCommunityOptions === null || createCommunityOptions === void 0 ? void 0 : createCommunityOptions.description;
294
295
  this.statsCid = "statscid";
295
296
  this.state = "stopped";
296
297
  this.updatingState = "stopped";
297
298
  this.updatedAt = createCommunityOptions === null || createCommunityOptions === void 0 ? void 0 : createCommunityOptions.updatedAt;
299
+ this.exportRecords = [];
298
300
  this.posts = new Pages({ community: this });
299
301
  // add community.posts from createCommunityOptions
300
302
  if ((_a = createCommunityOptions === null || createCommunityOptions === void 0 ? void 0 : createCommunityOptions.posts) === null || _a === void 0 ? void 0 : _a.pages) {
@@ -362,6 +364,27 @@ export class Community extends EventEmitter {
362
364
  }
363
365
  });
364
366
  }
367
+ get exports() {
368
+ return this.exportRecords.map((record) => (Object.assign({}, record)));
369
+ }
370
+ export() {
371
+ return __awaiter(this, arguments, void 0, function* (exportCommunityOptions = {}) {
372
+ if (!this.address) {
373
+ throw Error(`can't community.export with no community.address`);
374
+ }
375
+ const exportRecord = {
376
+ exportId: `${this.address} export ${this.exportRecords.length + 1}`,
377
+ name: this.address,
378
+ publicKey: this.publicKey || this.address,
379
+ includePrivateKey: exportCommunityOptions.includePrivateKey === true,
380
+ progress: 1,
381
+ url: `file://${this.address}.zip`,
382
+ };
383
+ this.exportRecords.push(exportRecord);
384
+ this.emit("exportschange", this.exports);
385
+ return { exportId: exportRecord.exportId };
386
+ });
387
+ }
365
388
  simulateUpdateEvent() {
366
389
  if (this.firstUpdate) {
367
390
  this.simulateFirstUpdateEvent();