@everipedia/iq-utils 0.4.4 → 1.0.1

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.
Files changed (32) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/main/data/constants.d.ts +18 -0
  3. package/build/main/data/constants.js +20 -2
  4. package/build/main/index.d.ts +1 -0
  5. package/build/main/index.js +2 -1
  6. package/build/main/lib/checkWikiValidity.d.ts +1 -1
  7. package/build/main/lib/checkWikiValidity.js +12 -9
  8. package/build/main/lib/helpers/wiki.helpers.d.ts +32 -0
  9. package/build/main/lib/helpers/wiki.helpers.js +86 -0
  10. package/build/main/lib/wikiScore.d.ts +1 -1
  11. package/build/main/lib/wikiScore.js +34 -49
  12. package/build/main/schema/wiki.schema.d.ts +798 -0
  13. package/build/main/schema/wiki.schema.js +289 -0
  14. package/build/main/types/wiki.d.ts +5 -205
  15. package/build/main/types/wiki.js +10 -172
  16. package/build/main/types/wikiBuilder.d.ts +1 -1
  17. package/build/module/data/constants.d.ts +18 -0
  18. package/build/module/data/constants.js +19 -1
  19. package/build/module/index.d.ts +1 -0
  20. package/build/module/index.js +2 -1
  21. package/build/module/lib/checkWikiValidity.d.ts +1 -1
  22. package/build/module/lib/checkWikiValidity.js +13 -13
  23. package/build/module/lib/helpers/wiki.helpers.d.ts +32 -0
  24. package/build/module/lib/helpers/wiki.helpers.js +75 -0
  25. package/build/module/lib/wikiScore.d.ts +1 -1
  26. package/build/module/lib/wikiScore.js +4 -19
  27. package/build/module/schema/wiki.schema.d.ts +798 -0
  28. package/build/module/schema/wiki.schema.js +286 -0
  29. package/build/module/types/wiki.d.ts +5 -205
  30. package/build/module/types/wiki.js +9 -171
  31. package/build/module/types/wikiBuilder.d.ts +1 -1
  32. package/package.json +52 -51
@@ -0,0 +1,286 @@
1
+ import { z } from "zod";
2
+ import { MAX_MEDIA_COUNT, WIKI_CONTENT_MIN_WORDS, WIKI_SUMMARY_MAX_LENGTH, WIKI_TITLE_MAX_LENGTH, } from "../data/constants";
3
+ import { areContentLinksVerified, countWords, validateEventWiki, validateMediaContent, validateMediaCount, } from "../lib/helpers/wiki.helpers";
4
+ /**
5
+ * ========================
6
+ * ===== Enum Schemas =====
7
+ * ========================
8
+ */
9
+ export const MediaTypeEnum = z.enum(["GALLERY", "ICON"]);
10
+ export const MediaSourceEnum = z.enum([
11
+ "IPFS_IMG",
12
+ "VIMEO",
13
+ "YOUTUBE",
14
+ "IPFS_VID",
15
+ ]);
16
+ export const CommonMetaIdsEnum = z.enum([
17
+ "references",
18
+ "website",
19
+ "contract_url",
20
+ "location",
21
+ "email_url",
22
+ "facebook_profile",
23
+ "instagram_profile",
24
+ "twitter_profile",
25
+ "linkedin_profile",
26
+ "youtube_profile",
27
+ "discord_profile",
28
+ "reddit_profile",
29
+ "telegram_profile",
30
+ "github_profile",
31
+ "coinmarketcap_url",
32
+ "coingecko_profile",
33
+ "opensea_profile",
34
+ "medium_profile",
35
+ "mirror_profile",
36
+ "tiktok_profile",
37
+ "etherscan_profile",
38
+ "arbiscan_profile",
39
+ "polygonscan_profile",
40
+ "bscscan_profile",
41
+ "optimistic_etherscan_profile",
42
+ "basescan_profile",
43
+ "ftmscan_profile",
44
+ "solscan_profile",
45
+ "avascan_profile",
46
+ "nearblocks_profile",
47
+ "troscan_profile",
48
+ "xrpscan_profile",
49
+ "kavascan_profile",
50
+ "tonscan_profile",
51
+ "celoscan_profile",
52
+ "cronoscan_profile",
53
+ "zkscan_profile",
54
+ "explorer_injective_profile",
55
+ "blastscan_profile",
56
+ ]);
57
+ export const WikiPossibleSocialsList = Object.values(CommonMetaIdsEnum.enum);
58
+ const EditSpecificMetaIdsEnum = z.enum([
59
+ "previous_cid",
60
+ "commit-message",
61
+ "words-changed",
62
+ "percent-changed",
63
+ "blocks-changed",
64
+ "wiki-score",
65
+ ]);
66
+ export const ValidatorCodes = z.enum([
67
+ "VALID_WIKI",
68
+ "ID_ERROR",
69
+ "LANGUAGE_ERROR",
70
+ "USER_ERROR",
71
+ "WORD_COUNT_ERROR",
72
+ "CATEGORY_ERROR",
73
+ "SUMMARY_ERROR",
74
+ "IMAGE_ERROR",
75
+ "TAG_ERROR",
76
+ "EXTERNAL_URL_ERROR",
77
+ "METADATA_ERROR",
78
+ "MEDIA_ERROR",
79
+ "GLOBAL_RATE_LIMIT",
80
+ "LINKED_WIKIS",
81
+ "EVENTS_ERROR",
82
+ ]);
83
+ const LanguagesISOEnum = z.enum(["en", "es", "zh", "ko"]);
84
+ const LinkedWikiKeyEnum = z.enum(["founders", "blockchains", "speakers"]);
85
+ const EventTypeEnum = z.enum(["CREATED", "DEFAULT", "MULTIDATE"]);
86
+ export const TagEnum = z.enum([
87
+ "Artists",
88
+ "AI",
89
+ "BinanceSmartChain",
90
+ "Blockchains",
91
+ "CEXes",
92
+ "Collections",
93
+ "Collectors",
94
+ "Conference",
95
+ "DEXes",
96
+ "Developers",
97
+ "Entertainment",
98
+ "Ethereum",
99
+ "Events",
100
+ "Forum",
101
+ "Founders",
102
+ "Festival",
103
+ "Games",
104
+ "Glossary",
105
+ "Hackathon",
106
+ "Marketplaces",
107
+ "Memecoins",
108
+ "Organizations",
109
+ "Online",
110
+ "PeopleInDeFi",
111
+ "Polkadot",
112
+ "Polygon",
113
+ "Protocols",
114
+ "Solana",
115
+ "Speakers",
116
+ "Stablecoins",
117
+ "Venture",
118
+ ]);
119
+ export const CategoryEnum = z.enum([
120
+ "nfts",
121
+ "defi",
122
+ "exchanges",
123
+ "cryptocurrencies",
124
+ "daos",
125
+ "people",
126
+ "dapps",
127
+ "organizations",
128
+ ]);
129
+ /**
130
+ * ==============================
131
+ * ===== Supporting Schemas =====
132
+ * ==============================
133
+ */
134
+ const ProfileLinksSchema = z.object({
135
+ twitter: z.string().nullable(),
136
+ website: z.string().nullable(),
137
+ instagram: z.string().nullable(),
138
+ });
139
+ const ProfileDataSchema = z.object({
140
+ id: z.string().nullable(),
141
+ username: z.string().nullable(),
142
+ bio: z.string().nullable(),
143
+ links: z.array(ProfileLinksSchema).nullable(),
144
+ banner: z.string().nullable(),
145
+ avatar: z.string().nullable(),
146
+ });
147
+ export const ImageSchema = z.object({
148
+ id: z.string(),
149
+ type: z.string(),
150
+ });
151
+ export const MediaSchema = z.object({
152
+ id: z.string(),
153
+ size: z.string().nullish(),
154
+ name: z.string().nullish(),
155
+ type: MediaTypeEnum.nullish(),
156
+ caption: z.string().nullish(),
157
+ thumbnail: z.string().nullish(),
158
+ source: MediaSourceEnum,
159
+ });
160
+ const MetaDataSchema = z.object({
161
+ id: z.union([CommonMetaIdsEnum, EditSpecificMetaIdsEnum]),
162
+ value: z.any(),
163
+ });
164
+ const BaseCategorySchema = z.object({
165
+ id: CategoryEnum,
166
+ title: z.string(),
167
+ });
168
+ export const BaseEventsSchema = z.object({
169
+ id: z.string().optional().nullable(),
170
+ date: z.string().nullable(),
171
+ title: z.string().optional().nullable(),
172
+ type: EventTypeEnum.nullable(),
173
+ description: z.string().optional().nullable(),
174
+ link: z.string().optional().nullable(),
175
+ multiDateStart: z.string().optional().nullable(),
176
+ multiDateEnd: z.string().optional().nullable(),
177
+ continent: z.string().optional().nullable(),
178
+ country: z.string().optional().nullable(),
179
+ action: z.enum(["DELETE", "EDIT", "CREATE"]).optional().nullable(),
180
+ });
181
+ const WikiReference = z.object({
182
+ id: z.string(),
183
+ title: z.string(),
184
+ });
185
+ /**
186
+ * ========================
187
+ * ===== Core Schemas =====
188
+ * ========================
189
+ */
190
+ export const WikiSchema = z
191
+ .object({
192
+ id: z.string(),
193
+ title: z
194
+ .string()
195
+ .min(1, "Add a Title at the top for this Wiki to continue")
196
+ .max(WIKI_TITLE_MAX_LENGTH, `Title should be less than ${WIKI_TITLE_MAX_LENGTH} characters`),
197
+ ipfs: z.string().optional(),
198
+ content: z
199
+ .string()
200
+ .min(1, "Add a Content section to continue")
201
+ .refine((content) => countWords(content) >= WIKI_CONTENT_MIN_WORDS, `Add a minimum of ${WIKI_CONTENT_MIN_WORDS} words in the content section to continue`)
202
+ .refine(areContentLinksVerified, "Please remove all external links from the content"),
203
+ summary: z
204
+ .string()
205
+ .max(WIKI_SUMMARY_MAX_LENGTH, `Summary exceeds maximum limit of ${WIKI_SUMMARY_MAX_LENGTH}`),
206
+ images: z
207
+ .array(ImageSchema)
208
+ .min(1, "Add a main image on the right column to continue"),
209
+ categories: z
210
+ .array(BaseCategorySchema)
211
+ .min(1, "Add one category to continue"),
212
+ tags: z
213
+ .array(z.object({
214
+ id: z.string(),
215
+ }))
216
+ .transform((tags) => tags.map((tag) => ({
217
+ id: TagEnum.parse(tag.id),
218
+ })))
219
+ .refine((tags) => {
220
+ const invalidTags = tags.filter((tag) => !TagEnum.safeParse(tag.id).success);
221
+ if (invalidTags.length > 0) {
222
+ throw new Error(`Invalid tag(s) found: ${invalidTags.map((tag) => tag.id).join(", ")}`);
223
+ }
224
+ return true;
225
+ }, {
226
+ message: "Invalid tag(s) found",
227
+ }),
228
+ media: z
229
+ .array(MediaSchema)
230
+ .max(MAX_MEDIA_COUNT)
231
+ .refine((media) => {
232
+ if (!media)
233
+ return true;
234
+ return validateMediaContent(media) && validateMediaCount(media);
235
+ }, "Media is invalid")
236
+ .optional(),
237
+ metadata: z.array(MetaDataSchema).refine((metadata) => {
238
+ const references = metadata.find((meta) => meta.id === CommonMetaIdsEnum.Enum.references);
239
+ return !references?.value || references.value.length > 0;
240
+ }, "Please add at least one citation"),
241
+ events: z.array(BaseEventsSchema).optional().nullable(),
242
+ user: z.object({
243
+ id: z.string(),
244
+ profile: ProfileDataSchema.nullable(),
245
+ }),
246
+ author: z.object({
247
+ id: z.string(),
248
+ profile: ProfileDataSchema.nullable(),
249
+ }),
250
+ language: LanguagesISOEnum.default(LanguagesISOEnum.Enum.en),
251
+ version: z.number().default(1),
252
+ hidden: z.boolean().default(false),
253
+ promoted: z.number().default(0),
254
+ views: z.number().optional().default(0),
255
+ linkedWikis: z
256
+ .object({
257
+ [LinkedWikiKeyEnum.Enum.blockchains]: z
258
+ .array(z.string())
259
+ .optional()
260
+ .nullable(),
261
+ [LinkedWikiKeyEnum.Enum.founders]: z
262
+ .array(z.string())
263
+ .optional()
264
+ .nullable(),
265
+ [LinkedWikiKeyEnum.Enum.speakers]: z
266
+ .array(z.string())
267
+ .optional()
268
+ .nullable(),
269
+ })
270
+ .nullable()
271
+ .optional()
272
+ .default({}),
273
+ founderWikis: z.array(WikiReference).optional().default([]),
274
+ blockchainWikis: z.array(WikiReference).optional().default([]),
275
+ })
276
+ .refine((arg) => validateEventWiki(arg), {
277
+ message: "Event wikis must have an event link citation and at least one event date",
278
+ path: ["events"],
279
+ });
280
+ export const ReferenceSchema = z.object({
281
+ id: z.string(),
282
+ description: z.string(),
283
+ timestamp: z.number(),
284
+ url: z.string(),
285
+ });
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lraS5zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NoZW1hL3dpa2kuc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUNOLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsa0JBQWtCLEdBQ2xCLE1BQU0sNkJBQTZCLENBQUM7QUFFckM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckMsVUFBVTtJQUNWLE9BQU87SUFDUCxTQUFTO0lBQ1QsVUFBVTtDQUNWLENBQUMsQ0FBQztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkMsWUFBWTtJQUNaLFNBQVM7SUFDVCxjQUFjO0lBQ2QsVUFBVTtJQUNWLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFD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
@@ -1,209 +1,9 @@
1
- export type ProfileLinks = {
2
- twitter: string | null;
3
- website: string | null;
4
- instagram: string | null;
1
+ import type { Wiki } from "../schema/wiki.schema";
2
+ type WikiWithTimestamp = Wiki & {
3
+ updated: Date;
5
4
  };
6
- export type ProfileData = {
7
- id: string;
8
- username: string;
9
- bio: string | null;
10
- links: ProfileLinks[];
11
- banner: string | null;
12
- avatar: string | null;
13
- };
14
- export interface BaseCategory {
15
- id: string;
16
- title: string;
17
- }
18
- export interface BaseTag {
19
- id: string;
20
- }
21
- export interface Image {
22
- id: string;
23
- type: string;
24
- }
25
- export declare enum MediaType {
26
- GALLERY = "GALLERY",
27
- ICON = "ICON"
28
- }
29
- export declare enum MediaSource {
30
- IPFS_IMG = "IPFS_IMG",
31
- VIMEO = "VIMEO",
32
- YOUTUBE = "YOUTUBE",
33
- IPFS_VID = "IPFS_VID"
34
- }
35
- export interface Media {
36
- id: string;
37
- size?: string;
38
- name?: string;
39
- type?: MediaType;
40
- caption?: string;
41
- thumbnail?: string;
42
- source: MediaSource;
43
- }
44
- export declare const EditorContentOverride = "%OVERRIDE@EDITOR@MARKDOWN%";
45
- export declare const CreateNewWikiSlug = "/*CREATE+NEW+WIKI*/";
46
- export declare enum CommonMetaIds {
47
- REFERENCES = "references",
48
- WEBSITE = "website",
49
- CONTRACT_URL = "contract_url",
50
- LOCATION = "location",
51
- EMAIL_URL = "email_url",
52
- FACEBOOK_PROFILE = "facebook_profile",
53
- INSTAGRAM_PROFILE = "instagram_profile",
54
- TWITTER_PROFILE = "twitter_profile",
55
- LINKEDIN_PROFILE = "linkedin_profile",
56
- YOUTUBE_PROFILE = "youtube_profile",
57
- DISCORD_PROFILE = "discord_profile",
58
- REDDIT_URL = "reddit_profile",
59
- TELEGRAM_URL = "telegram_profile",
60
- GITHUB_URL = "github_profile",
61
- COIN_MARKET_CAP = "coinmarketcap_url",
62
- COINGECKO_PROFILE = "coingecko_profile",
63
- OPENSEA_PROFILE = "opensea_profile",
64
- MEDIUM_PROFILE = "medium_profile",
65
- MIRROR_PROFILE = "mirror_profile",
66
- TIKTOK_PROFILE = "tiktok_profile",
67
- ETHERSCAN_PROFILE = "etherscan_profile",
68
- ARBISCAN_PROFILE = "arbiscan_profile",
69
- POLYGONSCAN_PROFILE = "polygonscan_profile",
70
- BSCSCAN_PROFILE = "bscscan_profile",
71
- OPTIMISTIC_ETHERSCAN_PROFILE = "optimistic_etherscan_profile",
72
- BASESCAN_PROFILE = "basescan_profile",
73
- FTMSCAN_PROFILE = "ftmscan_profile",
74
- SOLSCAN_PROFILE = "solscan_profile",
75
- AVASCAN_PROFILE = "avascan_profile",
76
- NEARBLOCKS_PROFILE = "nearblocks_profile",
77
- TROSCAN_PROFILE = "troscan_profile",
78
- XRPSCAN_PROFILE = "xrpscan_profile",
79
- KAVASCAN_PROFILE = "kavascan_profile",
80
- TONSCAN_PROFILE = "tonscan_profile",
81
- CELOSCAN_PROFILE = "celoscan_profile",
82
- CRONOSCAN_PROFILE = "cronoscan_profile",
83
- ZKSCAN_PROFILE = "zkscan_profile",
84
- EXPLORER_INJECTIVE = "explorer_injective_profile",
85
- BLASTSCAN_PROFILE = "blastscan_profile"
86
- }
87
- export declare const WikiPossibleSocialsList: CommonMetaIds[];
88
- export declare enum ValidatorCodes {
89
- VALID_WIKI = "VALID_WIKI",
90
- ID = "ID_ERROR",
91
- LANGUAGE = "LANGUAGE_ERROR",
92
- USER = "USER_ERROR",
93
- WORDS = "WORD_COUNT_ERROR",
94
- CATEGORY = "CATEGORY_ERROR",
95
- SUMMARY = "SUMMARY_ERROR",
96
- IMAGE = "IMAGE_ERROR",
97
- TAG = "TAG_ERROR",
98
- URL = "EXTERNAL_URL_ERROR",
99
- METADATA = "METADATA_ERROR",
100
- MEDIA = "MEDIA_ERROR",
101
- GLOBAL_RATE_LIMIT = "GLOBAL_RATE_LIMIT",
102
- ID_ERROR = "ID_ERROR",
103
- LINKED_WIKIS = "LINKED_WIKIS",
104
- EVENTS = "EVENTS_ERROR"
105
- }
106
- export declare enum EditSpecificMetaIds {
107
- PREVIOUS_CID = "previous_cid",
108
- COMMIT_MESSAGE = "commit-message",
109
- WORDS_CHANGED = "words-changed",
110
- PERCENT_CHANGED = "percent-changed",
111
- BLOCKS_CHANGED = "blocks-changed",
112
- WIKI_SCORE = "wiki-score"
113
- }
114
- export interface MData {
115
- id: CommonMetaIds | EditSpecificMetaIds;
116
- value: string;
117
- }
118
- export interface User {
119
- id: string;
120
- profile?: ProfileData | null;
121
- }
122
- export interface Author {
123
- id: string | null;
124
- profile?: ProfileData | null;
125
- }
126
- export interface CiteReference {
127
- id: string;
128
- url: string;
129
- description: string;
130
- timestamp: string;
131
- }
132
- declare enum LanguagesValuesEnum {
133
- SPANISH = "Espa\u00F1ol",
134
- ENGLISH = "English",
135
- CHINESE = "\u4E2D\u6587",
136
- KOREAN = "\uD55C\uAD6D\uC5B4"
137
- }
138
- export declare enum LanguagesISOEnum {
139
- EN = "en",
140
- ES = "es",
141
- ZH = "zh",
142
- KO = "ko"
143
- }
144
- type LanguagesType = Record<LanguagesISOEnum, LanguagesValuesEnum>;
145
- export declare const Languages: LanguagesType;
146
- export declare enum LinkedWikiKey {
147
- FOUNDER = "founders",
148
- BLOCKCHAIN = "blockchains",
149
- SPEAKERS = "speakers"
150
- }
151
- export type LinkedWikis = Partial<Record<LinkedWikiKey, string[]>>;
152
- export declare enum EventType {
153
- CREATED = "CREATED",
154
- DEFAULT = "DEFAULT",
155
- MULTIDATE = "MULTIDATE"
156
- }
157
- export declare enum EventAction {
158
- DELETE = "DELETE",
159
- EDIT = "EDIT",
160
- CREATE = "CREATE"
161
- }
162
- export interface BaseEvents {
163
- id?: string;
164
- date: string;
165
- title?: string;
166
- type: EventType;
167
- description?: string;
168
- link?: string;
169
- multiDateStart?: string;
170
- multiDateEnd?: string;
171
- continent?: string;
172
- country?: string;
173
- action?: EventAction | null;
174
- }
175
- type WikiReference = {
176
- id: string;
177
- title: string;
178
- };
179
- export interface Wiki {
180
- id: string;
181
- transactionHash?: string;
182
- ipfs?: string;
183
- summary: string;
184
- promoted: number;
185
- title: string;
186
- content: string;
187
- categories: BaseCategory[];
188
- tags: BaseTag[];
189
- images?: Image[];
190
- media?: Media[];
191
- events?: BaseEvents[];
192
- user: User;
193
- metadata: MData[];
194
- linkedWikis?: LinkedWikis;
195
- founderWikis: WikiReference[];
196
- blockchainWikis: WikiReference[];
197
- version: number;
198
- language: LanguagesISOEnum;
199
- updated?: string;
200
- created?: string;
201
- views?: number;
202
- author: Author;
203
- hidden: boolean;
204
- }
205
- export type ActivityCardDetails = Pick<Wiki, 'id' | 'title' | 'summary' | 'images' | 'categories' | 'tags' | 'user' | 'updated'>;
206
- export type WikiPreview = Pick<Wiki, 'id' | 'hidden' | 'title' | 'summary' | 'tags' | 'images' | 'categories' | 'user' | 'updated'>;
5
+ export type ActivityCardDetails = Pick<WikiWithTimestamp, "id" | "title" | "summary" | "images" | "categories" | "tags" | "user" | "updated">;
6
+ export type WikiPreview = Pick<WikiWithTimestamp, "id" | "hidden" | "title" | "summary" | "tags" | "images" | "categories" | "user" | "updated">;
207
7
  export declare const whiteListedDomains: string[];
208
8
  export declare const whiteListedLinkNames: string[];
209
9
  export {};