founder-schema 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -0
- package/dist/access/capabilities.d.ts +34 -0
- package/dist/access/capabilities.d.ts.map +1 -0
- package/dist/access/capabilities.js +35 -0
- package/dist/access/capabilities.js.map +1 -0
- package/dist/access/permissions.d.ts +20 -1
- package/dist/access/permissions.d.ts.map +1 -1
- package/dist/access/permissions.js +4 -0
- package/dist/access/permissions.js.map +1 -1
- package/dist/core/common.d.ts +8 -0
- package/dist/core/common.d.ts.map +1 -1
- package/dist/core/common.js +10 -1
- package/dist/core/common.js.map +1 -1
- package/dist/core/errors.d.ts +33 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +57 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/limits.d.ts +12 -0
- package/dist/core/limits.d.ts.map +1 -1
- package/dist/core/limits.js +13 -0
- package/dist/core/limits.js.map +1 -1
- package/dist/core/responses.d.ts +47 -0
- package/dist/core/responses.d.ts.map +1 -1
- package/dist/core/responses.js +7 -0
- package/dist/core/responses.js.map +1 -1
- package/dist/core/validation.d.ts +6 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +6 -0
- package/dist/core/validation.js.map +1 -1
- package/dist/domains/audit/audit.d.ts +47 -3
- package/dist/domains/audit/audit.d.ts.map +1 -1
- package/dist/domains/audit/audit.js +40 -4
- package/dist/domains/audit/audit.js.map +1 -1
- package/dist/domains/communities/communities.d.ts +1537 -0
- package/dist/domains/communities/communities.d.ts.map +1 -0
- package/dist/domains/communities/communities.js +464 -0
- package/dist/domains/communities/communities.js.map +1 -0
- package/dist/domains/contributions/contributions.d.ts +53 -4
- package/dist/domains/contributions/contributions.d.ts.map +1 -1
- package/dist/domains/contributions/contributions.js +39 -5
- package/dist/domains/contributions/contributions.js.map +1 -1
- package/dist/domains/feed/feed.d.ts +479 -0
- package/dist/domains/feed/feed.d.ts.map +1 -1
- package/dist/domains/feed/feed.js +45 -1
- package/dist/domains/feed/feed.js.map +1 -1
- package/dist/domains/media/media.d.ts +7 -1
- package/dist/domains/media/media.d.ts.map +1 -1
- package/dist/domains/media/media.js +5 -0
- package/dist/domains/media/media.js.map +1 -1
- package/dist/domains/members/members.d.ts +6 -0
- package/dist/domains/members/members.d.ts.map +1 -1
- package/dist/domains/members/members.js +5 -0
- package/dist/domains/members/members.js.map +1 -1
- package/dist/domains/moderation/moderation.d.ts +4 -4
- package/dist/domains/notifications/notifications.d.ts +82 -2
- package/dist/domains/notifications/notifications.d.ts.map +1 -1
- package/dist/domains/notifications/notifications.js +45 -0
- package/dist/domains/notifications/notifications.js.map +1 -1
- package/dist/domains/onboarding/onboarding.d.ts +11 -11
- package/dist/domains/onboarding/onboarding.d.ts.map +1 -1
- package/dist/domains/onboarding/onboarding.js +2 -2
- package/dist/domains/onboarding/onboarding.js.map +1 -1
- package/dist/domains/profile/founder-profile.d.ts +60 -4
- package/dist/domains/profile/founder-profile.d.ts.map +1 -1
- package/dist/domains/profile/founder-profile.js +66 -5
- package/dist/domains/profile/founder-profile.js.map +1 -1
- package/dist/domains/team/team.d.ts +22 -0
- package/dist/domains/team/team.d.ts.map +1 -1
- package/dist/domains/team/team.js +22 -0
- package/dist/domains/team/team.js.map +1 -1
- package/dist/domains/uploads/uploads.d.ts +1 -0
- package/dist/domains/uploads/uploads.d.ts.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,1537 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* founder-schema — Communities: official spaces inside Founder Circle (0.9.0)
|
|
3
|
+
*
|
|
4
|
+
* THE USER'S DECISIONS (2026-10-08), each asked on its own:
|
|
5
|
+
*
|
|
6
|
+
* - OFFICIAL: managers, super admins, and members given the
|
|
7
|
+
* `create_communities` capability create them. Everyone else SUGGESTS one;
|
|
8
|
+
* managers and super admins review the suggestions.
|
|
9
|
+
* - THREE TYPES, three separate questions answered per type:
|
|
10
|
+
*
|
|
11
|
+
* public private hidden
|
|
12
|
+
* listed in Discover yes yes no
|
|
13
|
+
* header (name, about, signed-in signed-in members and
|
|
14
|
+
* rules, admins, count) members members invitees (404 otherwise)
|
|
15
|
+
* posts, polls, members signed-in members only members only
|
|
16
|
+
* joining one tap request, then invite only,
|
|
17
|
+
* approval then accept
|
|
18
|
+
*
|
|
19
|
+
* Taking part (post, poll, comment, react, vote, save, report) is for
|
|
20
|
+
* members of every type. "Members" means ACTIVE members: someone who
|
|
21
|
+
* requested, was invited or is banned is a non-member for every rule.
|
|
22
|
+
* - PUBLIC MEANS PUBLIC INSIDE FOUNDER CIRCLE: a signed-out visitor sees no
|
|
23
|
+
* community content of any type, even by a shared link.
|
|
24
|
+
* - THE HOME FEED adds only the communities the member joined.
|
|
25
|
+
* - NO CHAT IN 0.9.0 (feed-first). Announcements are pinned posts
|
|
26
|
+
* (`COMMUNITY_PINS_MAX`), optionally notifying every member.
|
|
27
|
+
*
|
|
28
|
+
* A banned member sees the community as hidden (404 everywhere) until
|
|
29
|
+
* unbanned. Platform staff acting as moderator, manager or super admin READ
|
|
30
|
+
* every community, as they read every post, and moderate its content through
|
|
31
|
+
* the staff moderation queue; to take part they join like anyone else.
|
|
32
|
+
*
|
|
33
|
+
* Refusals follow what the caller can SEE: 404 for something they may not
|
|
34
|
+
* see (the same as for something that does not exist, so nothing is
|
|
35
|
+
* probed), 403 `COMMUNITY_JOIN_REQUIRED` for something they see but must join
|
|
36
|
+
* to read or to take part in.
|
|
37
|
+
*
|
|
38
|
+
* Content in a community carries no product and no ask, and cannot be
|
|
39
|
+
* reposted (a repost is general content, readable signed out): two leak paths
|
|
40
|
+
* closed by construction. Design: founder-circle-backend `docs/communities.md`.
|
|
41
|
+
*
|
|
42
|
+
* Inside a community:
|
|
43
|
+
*
|
|
44
|
+
* member moderator admin manager,
|
|
45
|
+
* super admin
|
|
46
|
+
* post, poll, comment, react, vote ✓ ✓ ✓ ✓ (a member)
|
|
47
|
+
* approve requests, invite, pin, hide ✓ ✓ ✓
|
|
48
|
+
* remove a member (not a moderator) ✓ ✓ ✓
|
|
49
|
+
* remove a moderator ✓ ✓
|
|
50
|
+
* remove or ban an admin ✓
|
|
51
|
+
* notify all, ban, roles, edit, type ✓ ✓
|
|
52
|
+
* archive, delete ✓
|
|
53
|
+
*
|
|
54
|
+
* An admin may unmake another admin (then act on them as on a member). Each
|
|
55
|
+
* member row says what this viewer may do to it (`communityMemberSchema.viewer`):
|
|
56
|
+
* a client never works it out from roles.
|
|
57
|
+
*
|
|
58
|
+
* A community always keeps an admin while anyone can be one
|
|
59
|
+
* (`COMMUNITY_LAST_ADMIN`): an admin leaves, steps down, or deletes their
|
|
60
|
+
* account only once someone else is admin (the user's rule, 2026-10-08). When
|
|
61
|
+
* nobody else is active, or the account was deleted where it cannot be
|
|
62
|
+
* refused (central sign-in), the community is ORPHANED: managers and super
|
|
63
|
+
* admins run it (they can act on any community), it is flagged in the audit
|
|
64
|
+
* log (`community.orphaned`), and the page says so to them (`orphaned`).
|
|
65
|
+
*
|
|
66
|
+
* Routes (all signed in):
|
|
67
|
+
* GET /api/v1/communities communityDiscoverQuerySchema -> communityCardPageSchema
|
|
68
|
+
* GET /api/v1/communities/mine paginationQuerySchema -> communityCardPageSchema
|
|
69
|
+
* GET /api/v1/communities/invites communityInvitesSchema (mine, waiting)
|
|
70
|
+
* GET /api/v1/communities/orphaned paginationQuerySchema -> communityCardPageSchema
|
|
71
|
+
* (managers, super admins: communities left with no admin, newest first)
|
|
72
|
+
* POST /api/v1/communities createCommunityBodySchema -> IdResponse
|
|
73
|
+
* GET /api/v1/communities/:communityId communitySchema
|
|
74
|
+
* PATCH /api/v1/communities/:communityId updateCommunityBodySchema -> communitySchema
|
|
75
|
+
* PUT /api/v1/communities/:communityId/icon setCommunityIconBodySchema -> communitySchema
|
|
76
|
+
* DELETE /api/v1/communities/:communityId/icon -> communitySchema
|
|
77
|
+
* PUT /api/v1/communities/:communityId/visibility setCommunityVisibilityBodySchema -> communitySchema
|
|
78
|
+
* PUT /api/v1/communities/:communityId/status setCommunityStatusBodySchema -> communitySchema (staff)
|
|
79
|
+
* DELETE /api/v1/communities/:communityId -> IdResponse (staff)
|
|
80
|
+
* GET /api/v1/communities/:communityId/feed paginationQuerySchema -> FeedPage (newest first;
|
|
81
|
+
* pinned items are in it too, in their place)
|
|
82
|
+
* GET /api/v1/communities/:communityId/pinned PinnedItems (feed)
|
|
83
|
+
* POST /api/v1/communities/:communityId/pins pinCommunityContentBodySchema -> PinnedItems
|
|
84
|
+
* DELETE /api/v1/communities/:communityId/pins/:contentId -> PinnedItems
|
|
85
|
+
* POST /api/v1/communities/:communityId/join -> communitySchema (public: joined; private: requested)
|
|
86
|
+
* DELETE /api/v1/communities/:communityId/join cancel a request -> communitySchema
|
|
87
|
+
* POST /api/v1/communities/:communityId/leave -> IdResponse
|
|
88
|
+
* GET /api/v1/communities/:communityId/members communityMembersQuerySchema -> communityMemberPageSchema
|
|
89
|
+
* GET /api/v1/communities/:communityId/requests paginationQuerySchema -> communityRequestPageSchema
|
|
90
|
+
* PUT /api/v1/communities/:communityId/requests/:userId approve -> IdResponse
|
|
91
|
+
* DELETE /api/v1/communities/:communityId/requests/:userId decline -> IdResponse
|
|
92
|
+
* GET /api/v1/communities/:communityId/invites paginationQuerySchema -> communityPendingInvitePageSchema
|
|
93
|
+
* POST /api/v1/communities/:communityId/invites inviteCommunityMemberBodySchema -> communityPendingInviteSchema
|
|
94
|
+
* DELETE /api/v1/communities/:communityId/invites/:userId cancel -> IdResponse
|
|
95
|
+
* PUT /api/v1/communities/:communityId/invite accept (the invitee) -> communitySchema
|
|
96
|
+
* DELETE /api/v1/communities/:communityId/invite decline (the invitee) -> IdResponse
|
|
97
|
+
* PUT /api/v1/communities/:communityId/members/:userId/role setCommunityMemberRoleBodySchema -> IdResponse
|
|
98
|
+
* DELETE /api/v1/communities/:communityId/members/:userId remove -> IdResponse
|
|
99
|
+
* GET /api/v1/communities/:communityId/bans paginationQuerySchema -> communityBanPageSchema
|
|
100
|
+
* POST /api/v1/communities/:communityId/bans banCommunityMemberBodySchema -> IdResponse
|
|
101
|
+
* DELETE /api/v1/communities/:communityId/bans/:userId unban -> IdResponse
|
|
102
|
+
* PUT /api/v1/communities/:communityId/content/:contentId/hidden hide in the community -> IdResponse
|
|
103
|
+
* DELETE /api/v1/communities/:communityId/content/:contentId/hidden restore -> IdResponse
|
|
104
|
+
* PUT /api/v1/communities/:communityId/comments/:commentId/hidden hide a comment in it -> IdResponse
|
|
105
|
+
* DELETE /api/v1/communities/:communityId/comments/:commentId/hidden restore -> IdResponse
|
|
106
|
+
* GET /api/v1/communities/:communityId/hidden paginationQuerySchema -> FeedPage (moderators:
|
|
107
|
+
* what ITS moderators hid, newest first; a staff hide is staff's to undo and is not listed)
|
|
108
|
+
* GET /api/v1/communities/:communityId/hidden/comments paginationQuerySchema -> commentPageSchema
|
|
109
|
+
* POST /api/v1/community-suggestions createCommunitySuggestionBodySchema -> communitySuggestionSchema
|
|
110
|
+
* GET /api/v1/community-suggestions/mine paginationQuerySchema -> communitySuggestionPageSchema
|
|
111
|
+
* GET /api/v1/community-suggestions communitySuggestionsQuerySchema -> communitySuggestionPageSchema (staff)
|
|
112
|
+
* POST /api/v1/community-suggestions/:suggestionId/approve createCommunityBodySchema -> IdResponse (the community)
|
|
113
|
+
* POST /api/v1/community-suggestions/:suggestionId/decline declineCommunitySuggestionBodySchema -> communitySuggestionSchema
|
|
114
|
+
* (posting into a community: `communityId` on the feed's create bodies)
|
|
115
|
+
*
|
|
116
|
+
* @module founder-schema/domains/communities
|
|
117
|
+
*/
|
|
118
|
+
import { z } from 'zod';
|
|
119
|
+
/** Topics a community carries: what Discover filters by. */
|
|
120
|
+
export declare const COMMUNITY_TOPICS_MAX = 3;
|
|
121
|
+
/** Announcements pinned to the top of one community at once. */
|
|
122
|
+
export declare const COMMUNITY_PINS_MAX = 3;
|
|
123
|
+
/** Suggestions one member may have waiting for review at once. */
|
|
124
|
+
export declare const COMMUNITY_SUGGESTIONS_OPEN_MAX = 3;
|
|
125
|
+
/**
|
|
126
|
+
* The shortest time between two notify-everyone announcements in one
|
|
127
|
+
* community, so members are not spammed (`COMMUNITY_ANNOUNCE_TOO_SOON`).
|
|
128
|
+
*/
|
|
129
|
+
export declare const COMMUNITY_ANNOUNCE_INTERVAL_MS: number;
|
|
130
|
+
/** See the module note's table. */
|
|
131
|
+
export declare const COMMUNITY_VISIBILITY_VALUES: readonly ["public", "private", "hidden"];
|
|
132
|
+
export declare const communityVisibilitySchema: z.ZodEnum<{
|
|
133
|
+
public: "public";
|
|
134
|
+
private: "private";
|
|
135
|
+
hidden: "hidden";
|
|
136
|
+
}>;
|
|
137
|
+
export type CommunityVisibility = z.infer<typeof communityVisibilitySchema>;
|
|
138
|
+
/**
|
|
139
|
+
* How private each type is, least first. A change to a LOWER rank exposes what
|
|
140
|
+
* was already posted, so it needs `confirmExposure` (and is audited).
|
|
141
|
+
*/
|
|
142
|
+
export declare const COMMUNITY_VISIBILITY_RANK: {
|
|
143
|
+
readonly public: 0;
|
|
144
|
+
readonly private: 1;
|
|
145
|
+
readonly hidden: 2;
|
|
146
|
+
};
|
|
147
|
+
/** Whether moving from one type to another exposes what was already there. */
|
|
148
|
+
export declare function communityChangeExposes(from: CommunityVisibility, to: CommunityVisibility): boolean;
|
|
149
|
+
/** A member's role inside one community. */
|
|
150
|
+
export declare const COMMUNITY_ROLE_VALUES: readonly ["admin", "moderator", "member"];
|
|
151
|
+
export declare const communityRoleSchema: z.ZodEnum<{
|
|
152
|
+
moderator: "moderator";
|
|
153
|
+
member: "member";
|
|
154
|
+
admin: "admin";
|
|
155
|
+
}>;
|
|
156
|
+
export type CommunityRole = z.infer<typeof communityRoleSchema>;
|
|
157
|
+
/**
|
|
158
|
+
* Where someone stands with one community. `requested` (private: waiting for
|
|
159
|
+
* approval), `invited` (waiting for their answer), `banned` (the community is
|
|
160
|
+
* hidden from them). Leaving or being removed deletes the row.
|
|
161
|
+
*/
|
|
162
|
+
export declare const COMMUNITY_MEMBER_STATUS_VALUES: readonly ["active", "requested", "invited", "banned"];
|
|
163
|
+
export declare const communityMemberStatusSchema: z.ZodEnum<{
|
|
164
|
+
active: "active";
|
|
165
|
+
requested: "requested";
|
|
166
|
+
invited: "invited";
|
|
167
|
+
banned: "banned";
|
|
168
|
+
}>;
|
|
169
|
+
export type CommunityMemberStatus = z.infer<typeof communityMemberStatusSchema>;
|
|
170
|
+
/** `archived`: read-only and out of Discover; members still read it. Staff only. */
|
|
171
|
+
export declare const COMMUNITY_STATUS_VALUES: readonly ["active", "archived"];
|
|
172
|
+
export declare const communityStatusSchema: z.ZodEnum<{
|
|
173
|
+
active: "active";
|
|
174
|
+
archived: "archived";
|
|
175
|
+
}>;
|
|
176
|
+
export type CommunityStatus = z.infer<typeof communityStatusSchema>;
|
|
177
|
+
export declare const COMMUNITY_SUGGESTION_STATUS_VALUES: readonly ["open", "approved", "declined"];
|
|
178
|
+
export declare const communitySuggestionStatusSchema: z.ZodEnum<{
|
|
179
|
+
open: "open";
|
|
180
|
+
approved: "approved";
|
|
181
|
+
declined: "declined";
|
|
182
|
+
}>;
|
|
183
|
+
export type CommunitySuggestionStatus = z.infer<typeof communitySuggestionStatusSchema>;
|
|
184
|
+
/**
|
|
185
|
+
* A community named on something else: "in AI Builders" on a post or poll, a
|
|
186
|
+
* notification. `iconUrl` is the icon's smallest size.
|
|
187
|
+
*/
|
|
188
|
+
export declare const communityChipSchema: z.ZodObject<{
|
|
189
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
190
|
+
slug: z.ZodString;
|
|
191
|
+
name: z.ZodString;
|
|
192
|
+
iconUrl: z.ZodOptional<z.ZodURL>;
|
|
193
|
+
visibility: z.ZodEnum<{
|
|
194
|
+
public: "public";
|
|
195
|
+
private: "private";
|
|
196
|
+
hidden: "hidden";
|
|
197
|
+
}>;
|
|
198
|
+
archived: z.ZodOptional<z.ZodBoolean>;
|
|
199
|
+
}, z.core.$strip>;
|
|
200
|
+
export type CommunityChip = z.infer<typeof communityChipSchema>;
|
|
201
|
+
/** Where THIS viewer stands with a community, on a card. Banned viewers never see it. */
|
|
202
|
+
export declare const communityCardViewerSchema: z.ZodObject<{
|
|
203
|
+
status: z.ZodNullable<z.ZodEnum<{
|
|
204
|
+
active: "active";
|
|
205
|
+
requested: "requested";
|
|
206
|
+
invited: "invited";
|
|
207
|
+
}>>;
|
|
208
|
+
role: z.ZodNullable<z.ZodEnum<{
|
|
209
|
+
moderator: "moderator";
|
|
210
|
+
member: "member";
|
|
211
|
+
admin: "admin";
|
|
212
|
+
}>>;
|
|
213
|
+
}, z.core.$strip>;
|
|
214
|
+
export type CommunityCardViewer = z.infer<typeof communityCardViewerSchema>;
|
|
215
|
+
/** A community on Discover and in "your communities". */
|
|
216
|
+
export declare const communityCardSchema: z.ZodObject<{
|
|
217
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
218
|
+
slug: z.ZodString;
|
|
219
|
+
name: z.ZodString;
|
|
220
|
+
description: z.ZodString;
|
|
221
|
+
icon: z.ZodOptional<z.ZodObject<{
|
|
222
|
+
id: z.ZodString;
|
|
223
|
+
url: z.ZodURL;
|
|
224
|
+
width: z.ZodNumber;
|
|
225
|
+
height: z.ZodNumber;
|
|
226
|
+
variants: z.ZodArray<z.ZodObject<{
|
|
227
|
+
width: z.ZodNumber;
|
|
228
|
+
height: z.ZodNumber;
|
|
229
|
+
url: z.ZodURL;
|
|
230
|
+
}, z.core.$strip>>;
|
|
231
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
232
|
+
}, z.core.$strip>>;
|
|
233
|
+
visibility: z.ZodEnum<{
|
|
234
|
+
public: "public";
|
|
235
|
+
private: "private";
|
|
236
|
+
hidden: "hidden";
|
|
237
|
+
}>;
|
|
238
|
+
status: z.ZodEnum<{
|
|
239
|
+
active: "active";
|
|
240
|
+
archived: "archived";
|
|
241
|
+
}>;
|
|
242
|
+
topics: z.ZodArray<z.ZodEnum<{
|
|
243
|
+
ai_ml: "ai_ml";
|
|
244
|
+
b2b_saas: "b2b_saas";
|
|
245
|
+
d2c: "d2c";
|
|
246
|
+
deeptech: "deeptech";
|
|
247
|
+
robotics: "robotics";
|
|
248
|
+
growth: "growth";
|
|
249
|
+
sales: "sales";
|
|
250
|
+
marketing: "marketing";
|
|
251
|
+
supply_chain: "supply_chain";
|
|
252
|
+
fundraising: "fundraising";
|
|
253
|
+
mentoring: "mentoring";
|
|
254
|
+
leadership: "leadership";
|
|
255
|
+
networking: "networking";
|
|
256
|
+
public_speaking: "public_speaking";
|
|
257
|
+
teaching: "teaching";
|
|
258
|
+
hiring_talent: "hiring_talent";
|
|
259
|
+
personal_branding: "personal_branding";
|
|
260
|
+
career_transition: "career_transition";
|
|
261
|
+
remote_work: "remote_work";
|
|
262
|
+
blockchain: "blockchain";
|
|
263
|
+
crypto_web3: "crypto_web3";
|
|
264
|
+
data_science: "data_science";
|
|
265
|
+
cybersecurity: "cybersecurity";
|
|
266
|
+
game_dev: "game_dev";
|
|
267
|
+
ux_design: "ux_design";
|
|
268
|
+
app_development: "app_development";
|
|
269
|
+
open_source: "open_source";
|
|
270
|
+
electronics: "electronics";
|
|
271
|
+
space_exploration: "space_exploration";
|
|
272
|
+
green_tech: "green_tech";
|
|
273
|
+
no_code: "no_code";
|
|
274
|
+
entrepreneurship: "entrepreneurship";
|
|
275
|
+
investing: "investing";
|
|
276
|
+
stock_trading: "stock_trading";
|
|
277
|
+
personal_finance: "personal_finance";
|
|
278
|
+
consulting: "consulting";
|
|
279
|
+
ecommerce: "ecommerce";
|
|
280
|
+
retail: "retail";
|
|
281
|
+
real_estate: "real_estate";
|
|
282
|
+
product_management: "product_management";
|
|
283
|
+
meditation: "meditation";
|
|
284
|
+
journaling: "journaling";
|
|
285
|
+
self_improvement: "self_improvement";
|
|
286
|
+
productivity: "productivity";
|
|
287
|
+
reading: "reading";
|
|
288
|
+
online_courses: "online_courses";
|
|
289
|
+
philosophy: "philosophy";
|
|
290
|
+
psychology: "psychology";
|
|
291
|
+
therapy: "therapy";
|
|
292
|
+
sleep_optimization: "sleep_optimization";
|
|
293
|
+
gym: "gym";
|
|
294
|
+
yoga: "yoga";
|
|
295
|
+
photography: "photography";
|
|
296
|
+
writing: "writing";
|
|
297
|
+
graphic_design: "graphic_design";
|
|
298
|
+
filmmaking: "filmmaking";
|
|
299
|
+
digital_art: "digital_art";
|
|
300
|
+
content_creation: "content_creation";
|
|
301
|
+
blogging: "blogging";
|
|
302
|
+
vlogging: "vlogging";
|
|
303
|
+
podcasts: "podcasts";
|
|
304
|
+
animation: "animation";
|
|
305
|
+
music_production: "music_production";
|
|
306
|
+
volunteering: "volunteering";
|
|
307
|
+
ngo_work: "ngo_work";
|
|
308
|
+
environmental: "environmental";
|
|
309
|
+
women_empowerment: "women_empowerment";
|
|
310
|
+
community_service: "community_service";
|
|
311
|
+
social_enterprise: "social_enterprise";
|
|
312
|
+
education_access: "education_access";
|
|
313
|
+
}>>;
|
|
314
|
+
memberCount: z.ZodNumber;
|
|
315
|
+
postCount: z.ZodNumber;
|
|
316
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
317
|
+
status: z.ZodNullable<z.ZodEnum<{
|
|
318
|
+
active: "active";
|
|
319
|
+
requested: "requested";
|
|
320
|
+
invited: "invited";
|
|
321
|
+
}>>;
|
|
322
|
+
role: z.ZodNullable<z.ZodEnum<{
|
|
323
|
+
moderator: "moderator";
|
|
324
|
+
member: "member";
|
|
325
|
+
admin: "admin";
|
|
326
|
+
}>>;
|
|
327
|
+
}, z.core.$strip>>;
|
|
328
|
+
}, z.core.$strip>;
|
|
329
|
+
export type CommunityCard = z.infer<typeof communityCardSchema>;
|
|
330
|
+
/**
|
|
331
|
+
* What THIS viewer may do on the community page, decided by the server and
|
|
332
|
+
* sent as plain answers (the rule of `viewerStateSchema` on a post): a client
|
|
333
|
+
* never derives a power from `role`.
|
|
334
|
+
*/
|
|
335
|
+
export declare const communityViewerSchema: z.ZodObject<{
|
|
336
|
+
status: z.ZodNullable<z.ZodEnum<{
|
|
337
|
+
active: "active";
|
|
338
|
+
requested: "requested";
|
|
339
|
+
invited: "invited";
|
|
340
|
+
}>>;
|
|
341
|
+
role: z.ZodNullable<z.ZodEnum<{
|
|
342
|
+
moderator: "moderator";
|
|
343
|
+
member: "member";
|
|
344
|
+
admin: "admin";
|
|
345
|
+
}>>;
|
|
346
|
+
canRead: z.ZodBoolean;
|
|
347
|
+
canSeeMembers: z.ZodBoolean;
|
|
348
|
+
canJoin: z.ZodBoolean;
|
|
349
|
+
canRequest: z.ZodBoolean;
|
|
350
|
+
canPost: z.ZodBoolean;
|
|
351
|
+
canLeave: z.ZodBoolean;
|
|
352
|
+
canModerate: z.ZodBoolean;
|
|
353
|
+
canManage: z.ZodBoolean;
|
|
354
|
+
canAnnounce: z.ZodBoolean;
|
|
355
|
+
canArchive: z.ZodBoolean;
|
|
356
|
+
}, z.core.$strip>;
|
|
357
|
+
export type CommunityViewer = z.infer<typeof communityViewerSchema>;
|
|
358
|
+
/**
|
|
359
|
+
* One person in a community, live-joined like every byline. In the member
|
|
360
|
+
* list, admins first, then moderators, then members, each by when they joined.
|
|
361
|
+
* `viewer` (0.9.0, on the member list only) is what THIS viewer may do to
|
|
362
|
+
* them, the server's own rules (who outranks whom, never oneself, never the
|
|
363
|
+
* last admin).
|
|
364
|
+
*/
|
|
365
|
+
export declare const communityMemberSchema: z.ZodObject<{
|
|
366
|
+
userId: z.ZodString;
|
|
367
|
+
username: z.ZodString;
|
|
368
|
+
displayName: z.ZodString;
|
|
369
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
370
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
371
|
+
role: z.ZodEnum<{
|
|
372
|
+
moderator: "moderator";
|
|
373
|
+
member: "member";
|
|
374
|
+
admin: "admin";
|
|
375
|
+
}>;
|
|
376
|
+
joinedAt: z.ZodISODateTime;
|
|
377
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
378
|
+
canSetRole: z.ZodBoolean;
|
|
379
|
+
canRemove: z.ZodBoolean;
|
|
380
|
+
canBan: z.ZodBoolean;
|
|
381
|
+
}, z.core.$strip>>;
|
|
382
|
+
}, z.core.$strip>;
|
|
383
|
+
export type CommunityMember = z.infer<typeof communityMemberSchema>;
|
|
384
|
+
/** The community page. The header is what a non-member of a private one may see too. */
|
|
385
|
+
export declare const communitySchema: z.ZodObject<{
|
|
386
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
387
|
+
slug: z.ZodString;
|
|
388
|
+
name: z.ZodString;
|
|
389
|
+
description: z.ZodString;
|
|
390
|
+
icon: z.ZodOptional<z.ZodObject<{
|
|
391
|
+
id: z.ZodString;
|
|
392
|
+
url: z.ZodURL;
|
|
393
|
+
width: z.ZodNumber;
|
|
394
|
+
height: z.ZodNumber;
|
|
395
|
+
variants: z.ZodArray<z.ZodObject<{
|
|
396
|
+
width: z.ZodNumber;
|
|
397
|
+
height: z.ZodNumber;
|
|
398
|
+
url: z.ZodURL;
|
|
399
|
+
}, z.core.$strip>>;
|
|
400
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
401
|
+
}, z.core.$strip>>;
|
|
402
|
+
visibility: z.ZodEnum<{
|
|
403
|
+
public: "public";
|
|
404
|
+
private: "private";
|
|
405
|
+
hidden: "hidden";
|
|
406
|
+
}>;
|
|
407
|
+
status: z.ZodEnum<{
|
|
408
|
+
active: "active";
|
|
409
|
+
archived: "archived";
|
|
410
|
+
}>;
|
|
411
|
+
topics: z.ZodArray<z.ZodEnum<{
|
|
412
|
+
ai_ml: "ai_ml";
|
|
413
|
+
b2b_saas: "b2b_saas";
|
|
414
|
+
d2c: "d2c";
|
|
415
|
+
deeptech: "deeptech";
|
|
416
|
+
robotics: "robotics";
|
|
417
|
+
growth: "growth";
|
|
418
|
+
sales: "sales";
|
|
419
|
+
marketing: "marketing";
|
|
420
|
+
supply_chain: "supply_chain";
|
|
421
|
+
fundraising: "fundraising";
|
|
422
|
+
mentoring: "mentoring";
|
|
423
|
+
leadership: "leadership";
|
|
424
|
+
networking: "networking";
|
|
425
|
+
public_speaking: "public_speaking";
|
|
426
|
+
teaching: "teaching";
|
|
427
|
+
hiring_talent: "hiring_talent";
|
|
428
|
+
personal_branding: "personal_branding";
|
|
429
|
+
career_transition: "career_transition";
|
|
430
|
+
remote_work: "remote_work";
|
|
431
|
+
blockchain: "blockchain";
|
|
432
|
+
crypto_web3: "crypto_web3";
|
|
433
|
+
data_science: "data_science";
|
|
434
|
+
cybersecurity: "cybersecurity";
|
|
435
|
+
game_dev: "game_dev";
|
|
436
|
+
ux_design: "ux_design";
|
|
437
|
+
app_development: "app_development";
|
|
438
|
+
open_source: "open_source";
|
|
439
|
+
electronics: "electronics";
|
|
440
|
+
space_exploration: "space_exploration";
|
|
441
|
+
green_tech: "green_tech";
|
|
442
|
+
no_code: "no_code";
|
|
443
|
+
entrepreneurship: "entrepreneurship";
|
|
444
|
+
investing: "investing";
|
|
445
|
+
stock_trading: "stock_trading";
|
|
446
|
+
personal_finance: "personal_finance";
|
|
447
|
+
consulting: "consulting";
|
|
448
|
+
ecommerce: "ecommerce";
|
|
449
|
+
retail: "retail";
|
|
450
|
+
real_estate: "real_estate";
|
|
451
|
+
product_management: "product_management";
|
|
452
|
+
meditation: "meditation";
|
|
453
|
+
journaling: "journaling";
|
|
454
|
+
self_improvement: "self_improvement";
|
|
455
|
+
productivity: "productivity";
|
|
456
|
+
reading: "reading";
|
|
457
|
+
online_courses: "online_courses";
|
|
458
|
+
philosophy: "philosophy";
|
|
459
|
+
psychology: "psychology";
|
|
460
|
+
therapy: "therapy";
|
|
461
|
+
sleep_optimization: "sleep_optimization";
|
|
462
|
+
gym: "gym";
|
|
463
|
+
yoga: "yoga";
|
|
464
|
+
photography: "photography";
|
|
465
|
+
writing: "writing";
|
|
466
|
+
graphic_design: "graphic_design";
|
|
467
|
+
filmmaking: "filmmaking";
|
|
468
|
+
digital_art: "digital_art";
|
|
469
|
+
content_creation: "content_creation";
|
|
470
|
+
blogging: "blogging";
|
|
471
|
+
vlogging: "vlogging";
|
|
472
|
+
podcasts: "podcasts";
|
|
473
|
+
animation: "animation";
|
|
474
|
+
music_production: "music_production";
|
|
475
|
+
volunteering: "volunteering";
|
|
476
|
+
ngo_work: "ngo_work";
|
|
477
|
+
environmental: "environmental";
|
|
478
|
+
women_empowerment: "women_empowerment";
|
|
479
|
+
community_service: "community_service";
|
|
480
|
+
social_enterprise: "social_enterprise";
|
|
481
|
+
education_access: "education_access";
|
|
482
|
+
}>>;
|
|
483
|
+
memberCount: z.ZodNumber;
|
|
484
|
+
postCount: z.ZodNumber;
|
|
485
|
+
rules: z.ZodArray<z.ZodString>;
|
|
486
|
+
team: z.ZodArray<z.ZodObject<{
|
|
487
|
+
userId: z.ZodString;
|
|
488
|
+
username: z.ZodString;
|
|
489
|
+
displayName: z.ZodString;
|
|
490
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
491
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
492
|
+
role: z.ZodEnum<{
|
|
493
|
+
moderator: "moderator";
|
|
494
|
+
member: "member";
|
|
495
|
+
admin: "admin";
|
|
496
|
+
}>;
|
|
497
|
+
joinedAt: z.ZodISODateTime;
|
|
498
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
499
|
+
canSetRole: z.ZodBoolean;
|
|
500
|
+
canRemove: z.ZodBoolean;
|
|
501
|
+
canBan: z.ZodBoolean;
|
|
502
|
+
}, z.core.$strip>>;
|
|
503
|
+
}, z.core.$strip>>;
|
|
504
|
+
createdAt: z.ZodISODateTime;
|
|
505
|
+
updatedAt: z.ZodISODateTime;
|
|
506
|
+
archivedAt: z.ZodNullable<z.ZodISODateTime>;
|
|
507
|
+
orphaned: z.ZodOptional<z.ZodBoolean>;
|
|
508
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
509
|
+
status: z.ZodNullable<z.ZodEnum<{
|
|
510
|
+
active: "active";
|
|
511
|
+
requested: "requested";
|
|
512
|
+
invited: "invited";
|
|
513
|
+
}>>;
|
|
514
|
+
role: z.ZodNullable<z.ZodEnum<{
|
|
515
|
+
moderator: "moderator";
|
|
516
|
+
member: "member";
|
|
517
|
+
admin: "admin";
|
|
518
|
+
}>>;
|
|
519
|
+
canRead: z.ZodBoolean;
|
|
520
|
+
canSeeMembers: z.ZodBoolean;
|
|
521
|
+
canJoin: z.ZodBoolean;
|
|
522
|
+
canRequest: z.ZodBoolean;
|
|
523
|
+
canPost: z.ZodBoolean;
|
|
524
|
+
canLeave: z.ZodBoolean;
|
|
525
|
+
canModerate: z.ZodBoolean;
|
|
526
|
+
canManage: z.ZodBoolean;
|
|
527
|
+
canAnnounce: z.ZodBoolean;
|
|
528
|
+
canArchive: z.ZodBoolean;
|
|
529
|
+
}, z.core.$strip>>;
|
|
530
|
+
}, z.core.$strip>;
|
|
531
|
+
export type Community = z.infer<typeof communitySchema>;
|
|
532
|
+
/** A request to join a private community, as its moderators see it. */
|
|
533
|
+
export declare const communityRequestSchema: z.ZodObject<{
|
|
534
|
+
member: z.ZodObject<{
|
|
535
|
+
userId: z.ZodString;
|
|
536
|
+
username: z.ZodString;
|
|
537
|
+
displayName: z.ZodString;
|
|
538
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
539
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
540
|
+
}, z.core.$strip>;
|
|
541
|
+
requestedAt: z.ZodISODateTime;
|
|
542
|
+
}, z.core.$strip>;
|
|
543
|
+
export type CommunityRequest = z.infer<typeof communityRequestSchema>;
|
|
544
|
+
/** An invitation nobody has answered yet, as its moderators see it. */
|
|
545
|
+
export declare const communityPendingInviteSchema: z.ZodObject<{
|
|
546
|
+
member: z.ZodObject<{
|
|
547
|
+
userId: z.ZodString;
|
|
548
|
+
username: z.ZodString;
|
|
549
|
+
displayName: z.ZodString;
|
|
550
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
551
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
552
|
+
}, z.core.$strip>;
|
|
553
|
+
invitedBy: z.ZodNullable<z.ZodObject<{
|
|
554
|
+
userId: z.ZodString;
|
|
555
|
+
username: z.ZodString;
|
|
556
|
+
displayName: z.ZodString;
|
|
557
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
558
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
559
|
+
}, z.core.$strip>>;
|
|
560
|
+
invitedAt: z.ZodISODateTime;
|
|
561
|
+
}, z.core.$strip>;
|
|
562
|
+
export type CommunityPendingInvite = z.infer<typeof communityPendingInviteSchema>;
|
|
563
|
+
/** An invitation waiting for the viewer's answer. */
|
|
564
|
+
export declare const communityInviteSchema: z.ZodObject<{
|
|
565
|
+
community: z.ZodObject<{
|
|
566
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
567
|
+
slug: z.ZodString;
|
|
568
|
+
name: z.ZodString;
|
|
569
|
+
iconUrl: z.ZodOptional<z.ZodURL>;
|
|
570
|
+
visibility: z.ZodEnum<{
|
|
571
|
+
public: "public";
|
|
572
|
+
private: "private";
|
|
573
|
+
hidden: "hidden";
|
|
574
|
+
}>;
|
|
575
|
+
archived: z.ZodOptional<z.ZodBoolean>;
|
|
576
|
+
description: z.ZodString;
|
|
577
|
+
}, z.core.$strip>;
|
|
578
|
+
invitedBy: z.ZodNullable<z.ZodObject<{
|
|
579
|
+
userId: z.ZodString;
|
|
580
|
+
username: z.ZodString;
|
|
581
|
+
displayName: z.ZodString;
|
|
582
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
583
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
584
|
+
}, z.core.$strip>>;
|
|
585
|
+
invitedAt: z.ZodISODateTime;
|
|
586
|
+
}, z.core.$strip>;
|
|
587
|
+
export type CommunityInvite = z.infer<typeof communityInviteSchema>;
|
|
588
|
+
/** `GET /communities/invites`. Never paged: invitations are few, and each needs an answer. */
|
|
589
|
+
export declare const communityInvitesSchema: z.ZodObject<{
|
|
590
|
+
items: z.ZodArray<z.ZodObject<{
|
|
591
|
+
community: z.ZodObject<{
|
|
592
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
593
|
+
slug: z.ZodString;
|
|
594
|
+
name: z.ZodString;
|
|
595
|
+
iconUrl: z.ZodOptional<z.ZodURL>;
|
|
596
|
+
visibility: z.ZodEnum<{
|
|
597
|
+
public: "public";
|
|
598
|
+
private: "private";
|
|
599
|
+
hidden: "hidden";
|
|
600
|
+
}>;
|
|
601
|
+
archived: z.ZodOptional<z.ZodBoolean>;
|
|
602
|
+
description: z.ZodString;
|
|
603
|
+
}, z.core.$strip>;
|
|
604
|
+
invitedBy: z.ZodNullable<z.ZodObject<{
|
|
605
|
+
userId: z.ZodString;
|
|
606
|
+
username: z.ZodString;
|
|
607
|
+
displayName: z.ZodString;
|
|
608
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
609
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
610
|
+
}, z.core.$strip>>;
|
|
611
|
+
invitedAt: z.ZodISODateTime;
|
|
612
|
+
}, z.core.$strip>>;
|
|
613
|
+
}, z.core.$strip>;
|
|
614
|
+
export type CommunityInvites = z.infer<typeof communityInvitesSchema>;
|
|
615
|
+
/** Someone banned from a community, as its admins see it. */
|
|
616
|
+
export declare const communityBanSchema: z.ZodObject<{
|
|
617
|
+
member: z.ZodObject<{
|
|
618
|
+
userId: z.ZodString;
|
|
619
|
+
username: z.ZodString;
|
|
620
|
+
displayName: z.ZodString;
|
|
621
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
622
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
623
|
+
}, z.core.$strip>;
|
|
624
|
+
bannedBy: z.ZodNullable<z.ZodObject<{
|
|
625
|
+
userId: z.ZodString;
|
|
626
|
+
username: z.ZodString;
|
|
627
|
+
displayName: z.ZodString;
|
|
628
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
629
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
630
|
+
}, z.core.$strip>>;
|
|
631
|
+
bannedAt: z.ZodISODateTime;
|
|
632
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
633
|
+
}, z.core.$strip>;
|
|
634
|
+
export type CommunityBan = z.infer<typeof communityBanSchema>;
|
|
635
|
+
/** A suggestion, as its author and the reviewers see it. */
|
|
636
|
+
export declare const communitySuggestionSchema: z.ZodObject<{
|
|
637
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
638
|
+
suggestedBy: z.ZodNullable<z.ZodObject<{
|
|
639
|
+
userId: z.ZodString;
|
|
640
|
+
username: z.ZodString;
|
|
641
|
+
displayName: z.ZodString;
|
|
642
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
643
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
644
|
+
}, z.core.$strip>>;
|
|
645
|
+
name: z.ZodString;
|
|
646
|
+
description: z.ZodString;
|
|
647
|
+
why: z.ZodOptional<z.ZodString>;
|
|
648
|
+
visibility: z.ZodEnum<{
|
|
649
|
+
public: "public";
|
|
650
|
+
private: "private";
|
|
651
|
+
hidden: "hidden";
|
|
652
|
+
}>;
|
|
653
|
+
topics: z.ZodArray<z.ZodEnum<{
|
|
654
|
+
ai_ml: "ai_ml";
|
|
655
|
+
b2b_saas: "b2b_saas";
|
|
656
|
+
d2c: "d2c";
|
|
657
|
+
deeptech: "deeptech";
|
|
658
|
+
robotics: "robotics";
|
|
659
|
+
growth: "growth";
|
|
660
|
+
sales: "sales";
|
|
661
|
+
marketing: "marketing";
|
|
662
|
+
supply_chain: "supply_chain";
|
|
663
|
+
fundraising: "fundraising";
|
|
664
|
+
mentoring: "mentoring";
|
|
665
|
+
leadership: "leadership";
|
|
666
|
+
networking: "networking";
|
|
667
|
+
public_speaking: "public_speaking";
|
|
668
|
+
teaching: "teaching";
|
|
669
|
+
hiring_talent: "hiring_talent";
|
|
670
|
+
personal_branding: "personal_branding";
|
|
671
|
+
career_transition: "career_transition";
|
|
672
|
+
remote_work: "remote_work";
|
|
673
|
+
blockchain: "blockchain";
|
|
674
|
+
crypto_web3: "crypto_web3";
|
|
675
|
+
data_science: "data_science";
|
|
676
|
+
cybersecurity: "cybersecurity";
|
|
677
|
+
game_dev: "game_dev";
|
|
678
|
+
ux_design: "ux_design";
|
|
679
|
+
app_development: "app_development";
|
|
680
|
+
open_source: "open_source";
|
|
681
|
+
electronics: "electronics";
|
|
682
|
+
space_exploration: "space_exploration";
|
|
683
|
+
green_tech: "green_tech";
|
|
684
|
+
no_code: "no_code";
|
|
685
|
+
entrepreneurship: "entrepreneurship";
|
|
686
|
+
investing: "investing";
|
|
687
|
+
stock_trading: "stock_trading";
|
|
688
|
+
personal_finance: "personal_finance";
|
|
689
|
+
consulting: "consulting";
|
|
690
|
+
ecommerce: "ecommerce";
|
|
691
|
+
retail: "retail";
|
|
692
|
+
real_estate: "real_estate";
|
|
693
|
+
product_management: "product_management";
|
|
694
|
+
meditation: "meditation";
|
|
695
|
+
journaling: "journaling";
|
|
696
|
+
self_improvement: "self_improvement";
|
|
697
|
+
productivity: "productivity";
|
|
698
|
+
reading: "reading";
|
|
699
|
+
online_courses: "online_courses";
|
|
700
|
+
philosophy: "philosophy";
|
|
701
|
+
psychology: "psychology";
|
|
702
|
+
therapy: "therapy";
|
|
703
|
+
sleep_optimization: "sleep_optimization";
|
|
704
|
+
gym: "gym";
|
|
705
|
+
yoga: "yoga";
|
|
706
|
+
photography: "photography";
|
|
707
|
+
writing: "writing";
|
|
708
|
+
graphic_design: "graphic_design";
|
|
709
|
+
filmmaking: "filmmaking";
|
|
710
|
+
digital_art: "digital_art";
|
|
711
|
+
content_creation: "content_creation";
|
|
712
|
+
blogging: "blogging";
|
|
713
|
+
vlogging: "vlogging";
|
|
714
|
+
podcasts: "podcasts";
|
|
715
|
+
animation: "animation";
|
|
716
|
+
music_production: "music_production";
|
|
717
|
+
volunteering: "volunteering";
|
|
718
|
+
ngo_work: "ngo_work";
|
|
719
|
+
environmental: "environmental";
|
|
720
|
+
women_empowerment: "women_empowerment";
|
|
721
|
+
community_service: "community_service";
|
|
722
|
+
social_enterprise: "social_enterprise";
|
|
723
|
+
education_access: "education_access";
|
|
724
|
+
}>>;
|
|
725
|
+
status: z.ZodEnum<{
|
|
726
|
+
open: "open";
|
|
727
|
+
approved: "approved";
|
|
728
|
+
declined: "declined";
|
|
729
|
+
}>;
|
|
730
|
+
decidedBy: z.ZodNullable<z.ZodObject<{
|
|
731
|
+
userId: z.ZodString;
|
|
732
|
+
username: z.ZodString;
|
|
733
|
+
displayName: z.ZodString;
|
|
734
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
735
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
736
|
+
}, z.core.$strip>>;
|
|
737
|
+
decidedAt: z.ZodNullable<z.ZodISODateTime>;
|
|
738
|
+
declineReason: z.ZodOptional<z.ZodString>;
|
|
739
|
+
community: z.ZodOptional<z.ZodObject<{
|
|
740
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
741
|
+
slug: z.ZodString;
|
|
742
|
+
name: z.ZodString;
|
|
743
|
+
iconUrl: z.ZodOptional<z.ZodURL>;
|
|
744
|
+
visibility: z.ZodEnum<{
|
|
745
|
+
public: "public";
|
|
746
|
+
private: "private";
|
|
747
|
+
hidden: "hidden";
|
|
748
|
+
}>;
|
|
749
|
+
archived: z.ZodOptional<z.ZodBoolean>;
|
|
750
|
+
}, z.core.$strip>>;
|
|
751
|
+
createdAt: z.ZodISODateTime;
|
|
752
|
+
}, z.core.$strip>;
|
|
753
|
+
export type CommunitySuggestion = z.infer<typeof communitySuggestionSchema>;
|
|
754
|
+
export declare const communityCardPageSchema: z.ZodObject<{
|
|
755
|
+
items: z.ZodArray<z.ZodObject<{
|
|
756
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
757
|
+
slug: z.ZodString;
|
|
758
|
+
name: z.ZodString;
|
|
759
|
+
description: z.ZodString;
|
|
760
|
+
icon: z.ZodOptional<z.ZodObject<{
|
|
761
|
+
id: z.ZodString;
|
|
762
|
+
url: z.ZodURL;
|
|
763
|
+
width: z.ZodNumber;
|
|
764
|
+
height: z.ZodNumber;
|
|
765
|
+
variants: z.ZodArray<z.ZodObject<{
|
|
766
|
+
width: z.ZodNumber;
|
|
767
|
+
height: z.ZodNumber;
|
|
768
|
+
url: z.ZodURL;
|
|
769
|
+
}, z.core.$strip>>;
|
|
770
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
771
|
+
}, z.core.$strip>>;
|
|
772
|
+
visibility: z.ZodEnum<{
|
|
773
|
+
public: "public";
|
|
774
|
+
private: "private";
|
|
775
|
+
hidden: "hidden";
|
|
776
|
+
}>;
|
|
777
|
+
status: z.ZodEnum<{
|
|
778
|
+
active: "active";
|
|
779
|
+
archived: "archived";
|
|
780
|
+
}>;
|
|
781
|
+
topics: z.ZodArray<z.ZodEnum<{
|
|
782
|
+
ai_ml: "ai_ml";
|
|
783
|
+
b2b_saas: "b2b_saas";
|
|
784
|
+
d2c: "d2c";
|
|
785
|
+
deeptech: "deeptech";
|
|
786
|
+
robotics: "robotics";
|
|
787
|
+
growth: "growth";
|
|
788
|
+
sales: "sales";
|
|
789
|
+
marketing: "marketing";
|
|
790
|
+
supply_chain: "supply_chain";
|
|
791
|
+
fundraising: "fundraising";
|
|
792
|
+
mentoring: "mentoring";
|
|
793
|
+
leadership: "leadership";
|
|
794
|
+
networking: "networking";
|
|
795
|
+
public_speaking: "public_speaking";
|
|
796
|
+
teaching: "teaching";
|
|
797
|
+
hiring_talent: "hiring_talent";
|
|
798
|
+
personal_branding: "personal_branding";
|
|
799
|
+
career_transition: "career_transition";
|
|
800
|
+
remote_work: "remote_work";
|
|
801
|
+
blockchain: "blockchain";
|
|
802
|
+
crypto_web3: "crypto_web3";
|
|
803
|
+
data_science: "data_science";
|
|
804
|
+
cybersecurity: "cybersecurity";
|
|
805
|
+
game_dev: "game_dev";
|
|
806
|
+
ux_design: "ux_design";
|
|
807
|
+
app_development: "app_development";
|
|
808
|
+
open_source: "open_source";
|
|
809
|
+
electronics: "electronics";
|
|
810
|
+
space_exploration: "space_exploration";
|
|
811
|
+
green_tech: "green_tech";
|
|
812
|
+
no_code: "no_code";
|
|
813
|
+
entrepreneurship: "entrepreneurship";
|
|
814
|
+
investing: "investing";
|
|
815
|
+
stock_trading: "stock_trading";
|
|
816
|
+
personal_finance: "personal_finance";
|
|
817
|
+
consulting: "consulting";
|
|
818
|
+
ecommerce: "ecommerce";
|
|
819
|
+
retail: "retail";
|
|
820
|
+
real_estate: "real_estate";
|
|
821
|
+
product_management: "product_management";
|
|
822
|
+
meditation: "meditation";
|
|
823
|
+
journaling: "journaling";
|
|
824
|
+
self_improvement: "self_improvement";
|
|
825
|
+
productivity: "productivity";
|
|
826
|
+
reading: "reading";
|
|
827
|
+
online_courses: "online_courses";
|
|
828
|
+
philosophy: "philosophy";
|
|
829
|
+
psychology: "psychology";
|
|
830
|
+
therapy: "therapy";
|
|
831
|
+
sleep_optimization: "sleep_optimization";
|
|
832
|
+
gym: "gym";
|
|
833
|
+
yoga: "yoga";
|
|
834
|
+
photography: "photography";
|
|
835
|
+
writing: "writing";
|
|
836
|
+
graphic_design: "graphic_design";
|
|
837
|
+
filmmaking: "filmmaking";
|
|
838
|
+
digital_art: "digital_art";
|
|
839
|
+
content_creation: "content_creation";
|
|
840
|
+
blogging: "blogging";
|
|
841
|
+
vlogging: "vlogging";
|
|
842
|
+
podcasts: "podcasts";
|
|
843
|
+
animation: "animation";
|
|
844
|
+
music_production: "music_production";
|
|
845
|
+
volunteering: "volunteering";
|
|
846
|
+
ngo_work: "ngo_work";
|
|
847
|
+
environmental: "environmental";
|
|
848
|
+
women_empowerment: "women_empowerment";
|
|
849
|
+
community_service: "community_service";
|
|
850
|
+
social_enterprise: "social_enterprise";
|
|
851
|
+
education_access: "education_access";
|
|
852
|
+
}>>;
|
|
853
|
+
memberCount: z.ZodNumber;
|
|
854
|
+
postCount: z.ZodNumber;
|
|
855
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
856
|
+
status: z.ZodNullable<z.ZodEnum<{
|
|
857
|
+
active: "active";
|
|
858
|
+
requested: "requested";
|
|
859
|
+
invited: "invited";
|
|
860
|
+
}>>;
|
|
861
|
+
role: z.ZodNullable<z.ZodEnum<{
|
|
862
|
+
moderator: "moderator";
|
|
863
|
+
member: "member";
|
|
864
|
+
admin: "admin";
|
|
865
|
+
}>>;
|
|
866
|
+
}, z.core.$strip>>;
|
|
867
|
+
}, z.core.$strip>>;
|
|
868
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
869
|
+
}, z.core.$strip>;
|
|
870
|
+
export type CommunityCardPage = z.infer<typeof communityCardPageSchema>;
|
|
871
|
+
export declare const communityMemberPageSchema: z.ZodObject<{
|
|
872
|
+
items: z.ZodArray<z.ZodObject<{
|
|
873
|
+
userId: z.ZodString;
|
|
874
|
+
username: z.ZodString;
|
|
875
|
+
displayName: z.ZodString;
|
|
876
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
877
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
878
|
+
role: z.ZodEnum<{
|
|
879
|
+
moderator: "moderator";
|
|
880
|
+
member: "member";
|
|
881
|
+
admin: "admin";
|
|
882
|
+
}>;
|
|
883
|
+
joinedAt: z.ZodISODateTime;
|
|
884
|
+
viewer: z.ZodOptional<z.ZodObject<{
|
|
885
|
+
canSetRole: z.ZodBoolean;
|
|
886
|
+
canRemove: z.ZodBoolean;
|
|
887
|
+
canBan: z.ZodBoolean;
|
|
888
|
+
}, z.core.$strip>>;
|
|
889
|
+
}, z.core.$strip>>;
|
|
890
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
891
|
+
}, z.core.$strip>;
|
|
892
|
+
export type CommunityMemberPage = z.infer<typeof communityMemberPageSchema>;
|
|
893
|
+
export declare const communityRequestPageSchema: z.ZodObject<{
|
|
894
|
+
items: z.ZodArray<z.ZodObject<{
|
|
895
|
+
member: z.ZodObject<{
|
|
896
|
+
userId: z.ZodString;
|
|
897
|
+
username: z.ZodString;
|
|
898
|
+
displayName: z.ZodString;
|
|
899
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
900
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
901
|
+
}, z.core.$strip>;
|
|
902
|
+
requestedAt: z.ZodISODateTime;
|
|
903
|
+
}, z.core.$strip>>;
|
|
904
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
905
|
+
}, z.core.$strip>;
|
|
906
|
+
export type CommunityRequestPage = z.infer<typeof communityRequestPageSchema>;
|
|
907
|
+
export declare const communityPendingInvitePageSchema: z.ZodObject<{
|
|
908
|
+
items: z.ZodArray<z.ZodObject<{
|
|
909
|
+
member: z.ZodObject<{
|
|
910
|
+
userId: z.ZodString;
|
|
911
|
+
username: z.ZodString;
|
|
912
|
+
displayName: z.ZodString;
|
|
913
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
914
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
915
|
+
}, z.core.$strip>;
|
|
916
|
+
invitedBy: z.ZodNullable<z.ZodObject<{
|
|
917
|
+
userId: z.ZodString;
|
|
918
|
+
username: z.ZodString;
|
|
919
|
+
displayName: z.ZodString;
|
|
920
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
921
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
922
|
+
}, z.core.$strip>>;
|
|
923
|
+
invitedAt: z.ZodISODateTime;
|
|
924
|
+
}, z.core.$strip>>;
|
|
925
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
926
|
+
}, z.core.$strip>;
|
|
927
|
+
export type CommunityPendingInvitePage = z.infer<typeof communityPendingInvitePageSchema>;
|
|
928
|
+
export declare const communityBanPageSchema: z.ZodObject<{
|
|
929
|
+
items: z.ZodArray<z.ZodObject<{
|
|
930
|
+
member: z.ZodObject<{
|
|
931
|
+
userId: z.ZodString;
|
|
932
|
+
username: z.ZodString;
|
|
933
|
+
displayName: z.ZodString;
|
|
934
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
935
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
936
|
+
}, z.core.$strip>;
|
|
937
|
+
bannedBy: z.ZodNullable<z.ZodObject<{
|
|
938
|
+
userId: z.ZodString;
|
|
939
|
+
username: z.ZodString;
|
|
940
|
+
displayName: z.ZodString;
|
|
941
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
942
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
943
|
+
}, z.core.$strip>>;
|
|
944
|
+
bannedAt: z.ZodISODateTime;
|
|
945
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
946
|
+
}, z.core.$strip>>;
|
|
947
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
948
|
+
}, z.core.$strip>;
|
|
949
|
+
export type CommunityBanPage = z.infer<typeof communityBanPageSchema>;
|
|
950
|
+
export declare const communitySuggestionPageSchema: z.ZodObject<{
|
|
951
|
+
items: z.ZodArray<z.ZodObject<{
|
|
952
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
953
|
+
suggestedBy: z.ZodNullable<z.ZodObject<{
|
|
954
|
+
userId: z.ZodString;
|
|
955
|
+
username: z.ZodString;
|
|
956
|
+
displayName: z.ZodString;
|
|
957
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
958
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
959
|
+
}, z.core.$strip>>;
|
|
960
|
+
name: z.ZodString;
|
|
961
|
+
description: z.ZodString;
|
|
962
|
+
why: z.ZodOptional<z.ZodString>;
|
|
963
|
+
visibility: z.ZodEnum<{
|
|
964
|
+
public: "public";
|
|
965
|
+
private: "private";
|
|
966
|
+
hidden: "hidden";
|
|
967
|
+
}>;
|
|
968
|
+
topics: z.ZodArray<z.ZodEnum<{
|
|
969
|
+
ai_ml: "ai_ml";
|
|
970
|
+
b2b_saas: "b2b_saas";
|
|
971
|
+
d2c: "d2c";
|
|
972
|
+
deeptech: "deeptech";
|
|
973
|
+
robotics: "robotics";
|
|
974
|
+
growth: "growth";
|
|
975
|
+
sales: "sales";
|
|
976
|
+
marketing: "marketing";
|
|
977
|
+
supply_chain: "supply_chain";
|
|
978
|
+
fundraising: "fundraising";
|
|
979
|
+
mentoring: "mentoring";
|
|
980
|
+
leadership: "leadership";
|
|
981
|
+
networking: "networking";
|
|
982
|
+
public_speaking: "public_speaking";
|
|
983
|
+
teaching: "teaching";
|
|
984
|
+
hiring_talent: "hiring_talent";
|
|
985
|
+
personal_branding: "personal_branding";
|
|
986
|
+
career_transition: "career_transition";
|
|
987
|
+
remote_work: "remote_work";
|
|
988
|
+
blockchain: "blockchain";
|
|
989
|
+
crypto_web3: "crypto_web3";
|
|
990
|
+
data_science: "data_science";
|
|
991
|
+
cybersecurity: "cybersecurity";
|
|
992
|
+
game_dev: "game_dev";
|
|
993
|
+
ux_design: "ux_design";
|
|
994
|
+
app_development: "app_development";
|
|
995
|
+
open_source: "open_source";
|
|
996
|
+
electronics: "electronics";
|
|
997
|
+
space_exploration: "space_exploration";
|
|
998
|
+
green_tech: "green_tech";
|
|
999
|
+
no_code: "no_code";
|
|
1000
|
+
entrepreneurship: "entrepreneurship";
|
|
1001
|
+
investing: "investing";
|
|
1002
|
+
stock_trading: "stock_trading";
|
|
1003
|
+
personal_finance: "personal_finance";
|
|
1004
|
+
consulting: "consulting";
|
|
1005
|
+
ecommerce: "ecommerce";
|
|
1006
|
+
retail: "retail";
|
|
1007
|
+
real_estate: "real_estate";
|
|
1008
|
+
product_management: "product_management";
|
|
1009
|
+
meditation: "meditation";
|
|
1010
|
+
journaling: "journaling";
|
|
1011
|
+
self_improvement: "self_improvement";
|
|
1012
|
+
productivity: "productivity";
|
|
1013
|
+
reading: "reading";
|
|
1014
|
+
online_courses: "online_courses";
|
|
1015
|
+
philosophy: "philosophy";
|
|
1016
|
+
psychology: "psychology";
|
|
1017
|
+
therapy: "therapy";
|
|
1018
|
+
sleep_optimization: "sleep_optimization";
|
|
1019
|
+
gym: "gym";
|
|
1020
|
+
yoga: "yoga";
|
|
1021
|
+
photography: "photography";
|
|
1022
|
+
writing: "writing";
|
|
1023
|
+
graphic_design: "graphic_design";
|
|
1024
|
+
filmmaking: "filmmaking";
|
|
1025
|
+
digital_art: "digital_art";
|
|
1026
|
+
content_creation: "content_creation";
|
|
1027
|
+
blogging: "blogging";
|
|
1028
|
+
vlogging: "vlogging";
|
|
1029
|
+
podcasts: "podcasts";
|
|
1030
|
+
animation: "animation";
|
|
1031
|
+
music_production: "music_production";
|
|
1032
|
+
volunteering: "volunteering";
|
|
1033
|
+
ngo_work: "ngo_work";
|
|
1034
|
+
environmental: "environmental";
|
|
1035
|
+
women_empowerment: "women_empowerment";
|
|
1036
|
+
community_service: "community_service";
|
|
1037
|
+
social_enterprise: "social_enterprise";
|
|
1038
|
+
education_access: "education_access";
|
|
1039
|
+
}>>;
|
|
1040
|
+
status: z.ZodEnum<{
|
|
1041
|
+
open: "open";
|
|
1042
|
+
approved: "approved";
|
|
1043
|
+
declined: "declined";
|
|
1044
|
+
}>;
|
|
1045
|
+
decidedBy: z.ZodNullable<z.ZodObject<{
|
|
1046
|
+
userId: z.ZodString;
|
|
1047
|
+
username: z.ZodString;
|
|
1048
|
+
displayName: z.ZodString;
|
|
1049
|
+
avatarUrl: z.ZodOptional<z.ZodURL>;
|
|
1050
|
+
headline: z.ZodOptional<z.ZodString>;
|
|
1051
|
+
}, z.core.$strip>>;
|
|
1052
|
+
decidedAt: z.ZodNullable<z.ZodISODateTime>;
|
|
1053
|
+
declineReason: z.ZodOptional<z.ZodString>;
|
|
1054
|
+
community: z.ZodOptional<z.ZodObject<{
|
|
1055
|
+
id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1056
|
+
slug: z.ZodString;
|
|
1057
|
+
name: z.ZodString;
|
|
1058
|
+
iconUrl: z.ZodOptional<z.ZodURL>;
|
|
1059
|
+
visibility: z.ZodEnum<{
|
|
1060
|
+
public: "public";
|
|
1061
|
+
private: "private";
|
|
1062
|
+
hidden: "hidden";
|
|
1063
|
+
}>;
|
|
1064
|
+
archived: z.ZodOptional<z.ZodBoolean>;
|
|
1065
|
+
}, z.core.$strip>>;
|
|
1066
|
+
createdAt: z.ZodISODateTime;
|
|
1067
|
+
}, z.core.$strip>>;
|
|
1068
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
1069
|
+
}, z.core.$strip>;
|
|
1070
|
+
export type CommunitySuggestionPage = z.infer<typeof communitySuggestionPageSchema>;
|
|
1071
|
+
/**
|
|
1072
|
+
* `GET /communities`: public and private communities that are not archived
|
|
1073
|
+
* (hidden ones never), most members first. `q` matches the start of the
|
|
1074
|
+
* name; an emptied box (`?q=`) is no search, never a 400. `topic` means "any of".
|
|
1075
|
+
*/
|
|
1076
|
+
export declare const communityDiscoverQuerySchema: z.ZodObject<{
|
|
1077
|
+
limit: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>, unknown>;
|
|
1078
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
1079
|
+
q: z.ZodPreprocess<z.ZodOptional<z.ZodString>, unknown>;
|
|
1080
|
+
topic: z.ZodPreprocess<z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1081
|
+
ai_ml: "ai_ml";
|
|
1082
|
+
b2b_saas: "b2b_saas";
|
|
1083
|
+
d2c: "d2c";
|
|
1084
|
+
deeptech: "deeptech";
|
|
1085
|
+
robotics: "robotics";
|
|
1086
|
+
growth: "growth";
|
|
1087
|
+
sales: "sales";
|
|
1088
|
+
marketing: "marketing";
|
|
1089
|
+
supply_chain: "supply_chain";
|
|
1090
|
+
fundraising: "fundraising";
|
|
1091
|
+
mentoring: "mentoring";
|
|
1092
|
+
leadership: "leadership";
|
|
1093
|
+
networking: "networking";
|
|
1094
|
+
public_speaking: "public_speaking";
|
|
1095
|
+
teaching: "teaching";
|
|
1096
|
+
hiring_talent: "hiring_talent";
|
|
1097
|
+
personal_branding: "personal_branding";
|
|
1098
|
+
career_transition: "career_transition";
|
|
1099
|
+
remote_work: "remote_work";
|
|
1100
|
+
blockchain: "blockchain";
|
|
1101
|
+
crypto_web3: "crypto_web3";
|
|
1102
|
+
data_science: "data_science";
|
|
1103
|
+
cybersecurity: "cybersecurity";
|
|
1104
|
+
game_dev: "game_dev";
|
|
1105
|
+
ux_design: "ux_design";
|
|
1106
|
+
app_development: "app_development";
|
|
1107
|
+
open_source: "open_source";
|
|
1108
|
+
electronics: "electronics";
|
|
1109
|
+
space_exploration: "space_exploration";
|
|
1110
|
+
green_tech: "green_tech";
|
|
1111
|
+
no_code: "no_code";
|
|
1112
|
+
entrepreneurship: "entrepreneurship";
|
|
1113
|
+
investing: "investing";
|
|
1114
|
+
stock_trading: "stock_trading";
|
|
1115
|
+
personal_finance: "personal_finance";
|
|
1116
|
+
consulting: "consulting";
|
|
1117
|
+
ecommerce: "ecommerce";
|
|
1118
|
+
retail: "retail";
|
|
1119
|
+
real_estate: "real_estate";
|
|
1120
|
+
product_management: "product_management";
|
|
1121
|
+
meditation: "meditation";
|
|
1122
|
+
journaling: "journaling";
|
|
1123
|
+
self_improvement: "self_improvement";
|
|
1124
|
+
productivity: "productivity";
|
|
1125
|
+
reading: "reading";
|
|
1126
|
+
online_courses: "online_courses";
|
|
1127
|
+
philosophy: "philosophy";
|
|
1128
|
+
psychology: "psychology";
|
|
1129
|
+
therapy: "therapy";
|
|
1130
|
+
sleep_optimization: "sleep_optimization";
|
|
1131
|
+
gym: "gym";
|
|
1132
|
+
yoga: "yoga";
|
|
1133
|
+
photography: "photography";
|
|
1134
|
+
writing: "writing";
|
|
1135
|
+
graphic_design: "graphic_design";
|
|
1136
|
+
filmmaking: "filmmaking";
|
|
1137
|
+
digital_art: "digital_art";
|
|
1138
|
+
content_creation: "content_creation";
|
|
1139
|
+
blogging: "blogging";
|
|
1140
|
+
vlogging: "vlogging";
|
|
1141
|
+
podcasts: "podcasts";
|
|
1142
|
+
animation: "animation";
|
|
1143
|
+
music_production: "music_production";
|
|
1144
|
+
volunteering: "volunteering";
|
|
1145
|
+
ngo_work: "ngo_work";
|
|
1146
|
+
environmental: "environmental";
|
|
1147
|
+
women_empowerment: "women_empowerment";
|
|
1148
|
+
community_service: "community_service";
|
|
1149
|
+
social_enterprise: "social_enterprise";
|
|
1150
|
+
education_access: "education_access";
|
|
1151
|
+
}>>>, unknown>;
|
|
1152
|
+
}, z.core.$strip>;
|
|
1153
|
+
export type CommunityDiscoverQuery = z.infer<typeof communityDiscoverQuerySchema>;
|
|
1154
|
+
export type CommunityDiscoverQueryInput = z.input<typeof communityDiscoverQuerySchema>;
|
|
1155
|
+
/** `GET /communities/:id/members`: everyone, or one role (`?role=admin`). */
|
|
1156
|
+
export declare const communityMembersQuerySchema: z.ZodObject<{
|
|
1157
|
+
limit: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>, unknown>;
|
|
1158
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
1159
|
+
role: z.ZodPreprocess<z.ZodOptional<z.ZodEnum<{
|
|
1160
|
+
moderator: "moderator";
|
|
1161
|
+
member: "member";
|
|
1162
|
+
admin: "admin";
|
|
1163
|
+
}>>, unknown>;
|
|
1164
|
+
}, z.core.$strip>;
|
|
1165
|
+
export type CommunityMembersQuery = z.infer<typeof communityMembersQuerySchema>;
|
|
1166
|
+
export type CommunityMembersQueryInput = z.input<typeof communityMembersQuerySchema>;
|
|
1167
|
+
/** `GET /community-suggestions` (staff): waiting ones by default, oldest first. */
|
|
1168
|
+
export declare const communitySuggestionsQuerySchema: z.ZodObject<{
|
|
1169
|
+
limit: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>, unknown>;
|
|
1170
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
1171
|
+
status: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
|
|
1172
|
+
open: "open";
|
|
1173
|
+
approved: "approved";
|
|
1174
|
+
declined: "declined";
|
|
1175
|
+
}>>, unknown>;
|
|
1176
|
+
}, z.core.$strip>;
|
|
1177
|
+
export type CommunitySuggestionsQuery = z.infer<typeof communitySuggestionsQuerySchema>;
|
|
1178
|
+
export type CommunitySuggestionsQueryInput = z.input<typeof communitySuggestionsQuerySchema>;
|
|
1179
|
+
export declare const communityParamsSchema: z.ZodObject<{
|
|
1180
|
+
communityId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1181
|
+
}, z.core.$strip>;
|
|
1182
|
+
export type CommunityParams = z.infer<typeof communityParamsSchema>;
|
|
1183
|
+
/** `/communities/:communityId/{members,requests,invites,bans}/:userId`. */
|
|
1184
|
+
export declare const communityMemberParamsSchema: z.ZodObject<{
|
|
1185
|
+
communityId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1186
|
+
userId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1187
|
+
}, z.core.$strip>;
|
|
1188
|
+
export type CommunityMemberParams = z.infer<typeof communityMemberParamsSchema>;
|
|
1189
|
+
/** `/communities/:communityId/{pins,content}/:contentId`. */
|
|
1190
|
+
export declare const communityContentParamsSchema: z.ZodObject<{
|
|
1191
|
+
communityId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1192
|
+
contentId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1193
|
+
}, z.core.$strip>;
|
|
1194
|
+
export type CommunityContentParams = z.infer<typeof communityContentParamsSchema>;
|
|
1195
|
+
/** `/communities/:communityId/comments/:commentId/hidden` (0.9.0). */
|
|
1196
|
+
export declare const communityCommentParamsSchema: z.ZodObject<{
|
|
1197
|
+
communityId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1198
|
+
commentId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1199
|
+
}, z.core.$strip>;
|
|
1200
|
+
export type CommunityCommentParams = z.infer<typeof communityCommentParamsSchema>;
|
|
1201
|
+
export declare const communitySuggestionParamsSchema: z.ZodObject<{
|
|
1202
|
+
suggestionId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1203
|
+
}, z.core.$strip>;
|
|
1204
|
+
export type CommunitySuggestionParams = z.infer<typeof communitySuggestionParamsSchema>;
|
|
1205
|
+
/**
|
|
1206
|
+
* `POST /communities` (managers, super admins and capability holders), and
|
|
1207
|
+
* the reviewer's edited version when approving a suggestion. The creator
|
|
1208
|
+
* becomes its first admin. A name a live PUBLIC or PRIVATE community has is
|
|
1209
|
+
* `COMMUNITY_NAME_TAKEN` (letter case ignored, runs of spaces read as one);
|
|
1210
|
+
* hidden communities' names are never compared, so no name probes for one.
|
|
1211
|
+
* Approving a private or hidden one invites its suggester. The icon is a
|
|
1212
|
+
* processed `community_icon` upload.
|
|
1213
|
+
*/
|
|
1214
|
+
export declare const createCommunityBodySchema: z.ZodObject<{
|
|
1215
|
+
name: z.ZodString;
|
|
1216
|
+
description: z.ZodString;
|
|
1217
|
+
visibility: z.ZodEnum<{
|
|
1218
|
+
public: "public";
|
|
1219
|
+
private: "private";
|
|
1220
|
+
hidden: "hidden";
|
|
1221
|
+
}>;
|
|
1222
|
+
rules: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1223
|
+
topics: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1224
|
+
ai_ml: "ai_ml";
|
|
1225
|
+
b2b_saas: "b2b_saas";
|
|
1226
|
+
d2c: "d2c";
|
|
1227
|
+
deeptech: "deeptech";
|
|
1228
|
+
robotics: "robotics";
|
|
1229
|
+
growth: "growth";
|
|
1230
|
+
sales: "sales";
|
|
1231
|
+
marketing: "marketing";
|
|
1232
|
+
supply_chain: "supply_chain";
|
|
1233
|
+
fundraising: "fundraising";
|
|
1234
|
+
mentoring: "mentoring";
|
|
1235
|
+
leadership: "leadership";
|
|
1236
|
+
networking: "networking";
|
|
1237
|
+
public_speaking: "public_speaking";
|
|
1238
|
+
teaching: "teaching";
|
|
1239
|
+
hiring_talent: "hiring_talent";
|
|
1240
|
+
personal_branding: "personal_branding";
|
|
1241
|
+
career_transition: "career_transition";
|
|
1242
|
+
remote_work: "remote_work";
|
|
1243
|
+
blockchain: "blockchain";
|
|
1244
|
+
crypto_web3: "crypto_web3";
|
|
1245
|
+
data_science: "data_science";
|
|
1246
|
+
cybersecurity: "cybersecurity";
|
|
1247
|
+
game_dev: "game_dev";
|
|
1248
|
+
ux_design: "ux_design";
|
|
1249
|
+
app_development: "app_development";
|
|
1250
|
+
open_source: "open_source";
|
|
1251
|
+
electronics: "electronics";
|
|
1252
|
+
space_exploration: "space_exploration";
|
|
1253
|
+
green_tech: "green_tech";
|
|
1254
|
+
no_code: "no_code";
|
|
1255
|
+
entrepreneurship: "entrepreneurship";
|
|
1256
|
+
investing: "investing";
|
|
1257
|
+
stock_trading: "stock_trading";
|
|
1258
|
+
personal_finance: "personal_finance";
|
|
1259
|
+
consulting: "consulting";
|
|
1260
|
+
ecommerce: "ecommerce";
|
|
1261
|
+
retail: "retail";
|
|
1262
|
+
real_estate: "real_estate";
|
|
1263
|
+
product_management: "product_management";
|
|
1264
|
+
meditation: "meditation";
|
|
1265
|
+
journaling: "journaling";
|
|
1266
|
+
self_improvement: "self_improvement";
|
|
1267
|
+
productivity: "productivity";
|
|
1268
|
+
reading: "reading";
|
|
1269
|
+
online_courses: "online_courses";
|
|
1270
|
+
philosophy: "philosophy";
|
|
1271
|
+
psychology: "psychology";
|
|
1272
|
+
therapy: "therapy";
|
|
1273
|
+
sleep_optimization: "sleep_optimization";
|
|
1274
|
+
gym: "gym";
|
|
1275
|
+
yoga: "yoga";
|
|
1276
|
+
photography: "photography";
|
|
1277
|
+
writing: "writing";
|
|
1278
|
+
graphic_design: "graphic_design";
|
|
1279
|
+
filmmaking: "filmmaking";
|
|
1280
|
+
digital_art: "digital_art";
|
|
1281
|
+
content_creation: "content_creation";
|
|
1282
|
+
blogging: "blogging";
|
|
1283
|
+
vlogging: "vlogging";
|
|
1284
|
+
podcasts: "podcasts";
|
|
1285
|
+
animation: "animation";
|
|
1286
|
+
music_production: "music_production";
|
|
1287
|
+
volunteering: "volunteering";
|
|
1288
|
+
ngo_work: "ngo_work";
|
|
1289
|
+
environmental: "environmental";
|
|
1290
|
+
women_empowerment: "women_empowerment";
|
|
1291
|
+
community_service: "community_service";
|
|
1292
|
+
social_enterprise: "social_enterprise";
|
|
1293
|
+
education_access: "education_access";
|
|
1294
|
+
}>>>;
|
|
1295
|
+
iconMediaId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
1296
|
+
}, z.core.$strip>;
|
|
1297
|
+
export type CreateCommunityBody = z.infer<typeof createCommunityBodySchema>;
|
|
1298
|
+
/** `PATCH /communities/:id` (admins): only the keys that changed. Type and icon have their own routes. */
|
|
1299
|
+
export declare const updateCommunityBodySchema: z.ZodObject<{
|
|
1300
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1301
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1302
|
+
rules: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1303
|
+
topics: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1304
|
+
ai_ml: "ai_ml";
|
|
1305
|
+
b2b_saas: "b2b_saas";
|
|
1306
|
+
d2c: "d2c";
|
|
1307
|
+
deeptech: "deeptech";
|
|
1308
|
+
robotics: "robotics";
|
|
1309
|
+
growth: "growth";
|
|
1310
|
+
sales: "sales";
|
|
1311
|
+
marketing: "marketing";
|
|
1312
|
+
supply_chain: "supply_chain";
|
|
1313
|
+
fundraising: "fundraising";
|
|
1314
|
+
mentoring: "mentoring";
|
|
1315
|
+
leadership: "leadership";
|
|
1316
|
+
networking: "networking";
|
|
1317
|
+
public_speaking: "public_speaking";
|
|
1318
|
+
teaching: "teaching";
|
|
1319
|
+
hiring_talent: "hiring_talent";
|
|
1320
|
+
personal_branding: "personal_branding";
|
|
1321
|
+
career_transition: "career_transition";
|
|
1322
|
+
remote_work: "remote_work";
|
|
1323
|
+
blockchain: "blockchain";
|
|
1324
|
+
crypto_web3: "crypto_web3";
|
|
1325
|
+
data_science: "data_science";
|
|
1326
|
+
cybersecurity: "cybersecurity";
|
|
1327
|
+
game_dev: "game_dev";
|
|
1328
|
+
ux_design: "ux_design";
|
|
1329
|
+
app_development: "app_development";
|
|
1330
|
+
open_source: "open_source";
|
|
1331
|
+
electronics: "electronics";
|
|
1332
|
+
space_exploration: "space_exploration";
|
|
1333
|
+
green_tech: "green_tech";
|
|
1334
|
+
no_code: "no_code";
|
|
1335
|
+
entrepreneurship: "entrepreneurship";
|
|
1336
|
+
investing: "investing";
|
|
1337
|
+
stock_trading: "stock_trading";
|
|
1338
|
+
personal_finance: "personal_finance";
|
|
1339
|
+
consulting: "consulting";
|
|
1340
|
+
ecommerce: "ecommerce";
|
|
1341
|
+
retail: "retail";
|
|
1342
|
+
real_estate: "real_estate";
|
|
1343
|
+
product_management: "product_management";
|
|
1344
|
+
meditation: "meditation";
|
|
1345
|
+
journaling: "journaling";
|
|
1346
|
+
self_improvement: "self_improvement";
|
|
1347
|
+
productivity: "productivity";
|
|
1348
|
+
reading: "reading";
|
|
1349
|
+
online_courses: "online_courses";
|
|
1350
|
+
philosophy: "philosophy";
|
|
1351
|
+
psychology: "psychology";
|
|
1352
|
+
therapy: "therapy";
|
|
1353
|
+
sleep_optimization: "sleep_optimization";
|
|
1354
|
+
gym: "gym";
|
|
1355
|
+
yoga: "yoga";
|
|
1356
|
+
photography: "photography";
|
|
1357
|
+
writing: "writing";
|
|
1358
|
+
graphic_design: "graphic_design";
|
|
1359
|
+
filmmaking: "filmmaking";
|
|
1360
|
+
digital_art: "digital_art";
|
|
1361
|
+
content_creation: "content_creation";
|
|
1362
|
+
blogging: "blogging";
|
|
1363
|
+
vlogging: "vlogging";
|
|
1364
|
+
podcasts: "podcasts";
|
|
1365
|
+
animation: "animation";
|
|
1366
|
+
music_production: "music_production";
|
|
1367
|
+
volunteering: "volunteering";
|
|
1368
|
+
ngo_work: "ngo_work";
|
|
1369
|
+
environmental: "environmental";
|
|
1370
|
+
women_empowerment: "women_empowerment";
|
|
1371
|
+
community_service: "community_service";
|
|
1372
|
+
social_enterprise: "social_enterprise";
|
|
1373
|
+
education_access: "education_access";
|
|
1374
|
+
}>>>;
|
|
1375
|
+
}, z.core.$strip>;
|
|
1376
|
+
export type UpdateCommunityBody = z.infer<typeof updateCommunityBodySchema>;
|
|
1377
|
+
/** `PUT /communities/:id/icon`: a processed `community_icon` upload. The old icon's files are deleted. */
|
|
1378
|
+
export declare const setCommunityIconBodySchema: z.ZodObject<{
|
|
1379
|
+
mediaId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1380
|
+
}, z.core.$strip>;
|
|
1381
|
+
export type SetCommunityIconBody = z.infer<typeof setCommunityIconBodySchema>;
|
|
1382
|
+
/**
|
|
1383
|
+
* `PUT /communities/:id/visibility` (admins). A change that exposes what was
|
|
1384
|
+
* already posted (`communityChangeExposes`: toward public, or hidden to
|
|
1385
|
+
* private) needs `confirmExposure: true`, else `COMMUNITY_EXPOSURE_UNCONFIRMED`:
|
|
1386
|
+
* the web asks first, and a client cannot skip the question. Audited.
|
|
1387
|
+
*/
|
|
1388
|
+
export declare const setCommunityVisibilityBodySchema: z.ZodObject<{
|
|
1389
|
+
visibility: z.ZodEnum<{
|
|
1390
|
+
public: "public";
|
|
1391
|
+
private: "private";
|
|
1392
|
+
hidden: "hidden";
|
|
1393
|
+
}>;
|
|
1394
|
+
confirmExposure: z.ZodOptional<z.ZodBoolean>;
|
|
1395
|
+
}, z.core.$strip>;
|
|
1396
|
+
export type SetCommunityVisibilityBody = z.infer<typeof setCommunityVisibilityBodySchema>;
|
|
1397
|
+
/** `PUT /communities/:id/status` (staff). Audited. */
|
|
1398
|
+
export declare const setCommunityStatusBodySchema: z.ZodObject<{
|
|
1399
|
+
status: z.ZodEnum<{
|
|
1400
|
+
active: "active";
|
|
1401
|
+
archived: "archived";
|
|
1402
|
+
}>;
|
|
1403
|
+
}, z.core.$strip>;
|
|
1404
|
+
export type SetCommunityStatusBody = z.infer<typeof setCommunityStatusBodySchema>;
|
|
1405
|
+
/**
|
|
1406
|
+
* `POST /communities/:id/invites` (moderators, private and hidden only;
|
|
1407
|
+
* a public community needs none: `COMMUNITY_INVITE_NOT_NEEDED`). Someone who
|
|
1408
|
+
* cannot join (not onboarded, paused, suspended, deleted) is
|
|
1409
|
+
* `COMMUNITY_MEMBER_NOT_INVITABLE`; banned, `COMMUNITY_MEMBER_BANNED`; already
|
|
1410
|
+
* a member, requested or invited, `COMMUNITY_ALREADY_MEMBER`.
|
|
1411
|
+
*/
|
|
1412
|
+
export declare const inviteCommunityMemberBodySchema: z.ZodObject<{
|
|
1413
|
+
userId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1414
|
+
}, z.core.$strip>;
|
|
1415
|
+
export type InviteCommunityMemberBody = z.infer<typeof inviteCommunityMemberBodySchema>;
|
|
1416
|
+
/** `PUT /communities/:id/members/:userId/role` (admins). Never the last admin's own step down. */
|
|
1417
|
+
export declare const setCommunityMemberRoleBodySchema: z.ZodObject<{
|
|
1418
|
+
role: z.ZodEnum<{
|
|
1419
|
+
moderator: "moderator";
|
|
1420
|
+
member: "member";
|
|
1421
|
+
admin: "admin";
|
|
1422
|
+
}>;
|
|
1423
|
+
}, z.core.$strip>;
|
|
1424
|
+
export type SetCommunityMemberRoleBody = z.infer<typeof setCommunityMemberRoleBodySchema>;
|
|
1425
|
+
/** `POST /communities/:id/bans` (admins): removes them if active, and keeps them out. */
|
|
1426
|
+
export declare const banCommunityMemberBodySchema: z.ZodObject<{
|
|
1427
|
+
userId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1428
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
1429
|
+
}, z.core.$strip>;
|
|
1430
|
+
export type BanCommunityMemberBody = z.infer<typeof banCommunityMemberBodySchema>;
|
|
1431
|
+
/**
|
|
1432
|
+
* `POST /communities/:id/pins` (moderators): pin one of the community's posts
|
|
1433
|
+
* or polls as an announcement (`COMMUNITY_PINS_FULL` past `COMMUNITY_PINS_MAX`).
|
|
1434
|
+
* `notifyMembers` (admins only) rings every active member's bell, at most once
|
|
1435
|
+
* per `COMMUNITY_ANNOUNCE_INTERVAL_MS` (`COMMUNITY_ANNOUNCE_TOO_SOON`).
|
|
1436
|
+
*/
|
|
1437
|
+
export declare const pinCommunityContentBodySchema: z.ZodObject<{
|
|
1438
|
+
contentId: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
1439
|
+
notifyMembers: z.ZodBoolean;
|
|
1440
|
+
}, z.core.$strip>;
|
|
1441
|
+
export type PinCommunityContentBody = z.infer<typeof pinCommunityContentBodySchema>;
|
|
1442
|
+
/**
|
|
1443
|
+
* `POST /community-suggestions`: any onboarded member, at most
|
|
1444
|
+
* `COMMUNITY_SUGGESTIONS_OPEN_MAX` waiting at once (`COMMUNITY_SUGGESTIONS_FULL`).
|
|
1445
|
+
*/
|
|
1446
|
+
export declare const createCommunitySuggestionBodySchema: z.ZodObject<{
|
|
1447
|
+
name: z.ZodString;
|
|
1448
|
+
description: z.ZodString;
|
|
1449
|
+
why: z.ZodOptional<z.ZodString>;
|
|
1450
|
+
visibility: z.ZodEnum<{
|
|
1451
|
+
public: "public";
|
|
1452
|
+
private: "private";
|
|
1453
|
+
hidden: "hidden";
|
|
1454
|
+
}>;
|
|
1455
|
+
topics: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1456
|
+
ai_ml: "ai_ml";
|
|
1457
|
+
b2b_saas: "b2b_saas";
|
|
1458
|
+
d2c: "d2c";
|
|
1459
|
+
deeptech: "deeptech";
|
|
1460
|
+
robotics: "robotics";
|
|
1461
|
+
growth: "growth";
|
|
1462
|
+
sales: "sales";
|
|
1463
|
+
marketing: "marketing";
|
|
1464
|
+
supply_chain: "supply_chain";
|
|
1465
|
+
fundraising: "fundraising";
|
|
1466
|
+
mentoring: "mentoring";
|
|
1467
|
+
leadership: "leadership";
|
|
1468
|
+
networking: "networking";
|
|
1469
|
+
public_speaking: "public_speaking";
|
|
1470
|
+
teaching: "teaching";
|
|
1471
|
+
hiring_talent: "hiring_talent";
|
|
1472
|
+
personal_branding: "personal_branding";
|
|
1473
|
+
career_transition: "career_transition";
|
|
1474
|
+
remote_work: "remote_work";
|
|
1475
|
+
blockchain: "blockchain";
|
|
1476
|
+
crypto_web3: "crypto_web3";
|
|
1477
|
+
data_science: "data_science";
|
|
1478
|
+
cybersecurity: "cybersecurity";
|
|
1479
|
+
game_dev: "game_dev";
|
|
1480
|
+
ux_design: "ux_design";
|
|
1481
|
+
app_development: "app_development";
|
|
1482
|
+
open_source: "open_source";
|
|
1483
|
+
electronics: "electronics";
|
|
1484
|
+
space_exploration: "space_exploration";
|
|
1485
|
+
green_tech: "green_tech";
|
|
1486
|
+
no_code: "no_code";
|
|
1487
|
+
entrepreneurship: "entrepreneurship";
|
|
1488
|
+
investing: "investing";
|
|
1489
|
+
stock_trading: "stock_trading";
|
|
1490
|
+
personal_finance: "personal_finance";
|
|
1491
|
+
consulting: "consulting";
|
|
1492
|
+
ecommerce: "ecommerce";
|
|
1493
|
+
retail: "retail";
|
|
1494
|
+
real_estate: "real_estate";
|
|
1495
|
+
product_management: "product_management";
|
|
1496
|
+
meditation: "meditation";
|
|
1497
|
+
journaling: "journaling";
|
|
1498
|
+
self_improvement: "self_improvement";
|
|
1499
|
+
productivity: "productivity";
|
|
1500
|
+
reading: "reading";
|
|
1501
|
+
online_courses: "online_courses";
|
|
1502
|
+
philosophy: "philosophy";
|
|
1503
|
+
psychology: "psychology";
|
|
1504
|
+
therapy: "therapy";
|
|
1505
|
+
sleep_optimization: "sleep_optimization";
|
|
1506
|
+
gym: "gym";
|
|
1507
|
+
yoga: "yoga";
|
|
1508
|
+
photography: "photography";
|
|
1509
|
+
writing: "writing";
|
|
1510
|
+
graphic_design: "graphic_design";
|
|
1511
|
+
filmmaking: "filmmaking";
|
|
1512
|
+
digital_art: "digital_art";
|
|
1513
|
+
content_creation: "content_creation";
|
|
1514
|
+
blogging: "blogging";
|
|
1515
|
+
vlogging: "vlogging";
|
|
1516
|
+
podcasts: "podcasts";
|
|
1517
|
+
animation: "animation";
|
|
1518
|
+
music_production: "music_production";
|
|
1519
|
+
volunteering: "volunteering";
|
|
1520
|
+
ngo_work: "ngo_work";
|
|
1521
|
+
environmental: "environmental";
|
|
1522
|
+
women_empowerment: "women_empowerment";
|
|
1523
|
+
community_service: "community_service";
|
|
1524
|
+
social_enterprise: "social_enterprise";
|
|
1525
|
+
education_access: "education_access";
|
|
1526
|
+
}>>>;
|
|
1527
|
+
}, z.core.$strip>;
|
|
1528
|
+
export type CreateCommunitySuggestionBody = z.infer<typeof createCommunitySuggestionBodySchema>;
|
|
1529
|
+
/**
|
|
1530
|
+
* `POST /community-suggestions/:id/decline` (staff): the reason is shown to the
|
|
1531
|
+
* suggester. A decided suggestion is `COMMUNITY_SUGGESTION_DECIDED`.
|
|
1532
|
+
*/
|
|
1533
|
+
export declare const declineCommunitySuggestionBodySchema: z.ZodObject<{
|
|
1534
|
+
reason: z.ZodString;
|
|
1535
|
+
}, z.core.$strip>;
|
|
1536
|
+
export type DeclineCommunitySuggestionBody = z.infer<typeof declineCommunitySuggestionBodySchema>;
|
|
1537
|
+
//# sourceMappingURL=communities.d.ts.map
|