founder-schema 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../src/domains/moderation/moderation.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * founder-schema: moderation\n *\n * GET /api/v1/moderation/queue ?limit&cursor\n * what members reported and nobody has decided on, oldest report first\n * GET /api/v1/moderation/content ?state&limit&cursor\n * by state, newest first: visible is posts and polls by when posted;\n * hidden and removed also hold comments (so a hidden comment can be\n * found and put back), by when hidden or removed\n * A decision that changes nothing (hiding what is already hidden, removing\n * what its author deleted) leaves the reports open and writes nothing: for\n * those, dismiss.\n * POST /api/v1/moderation/:contentKind/:contentId/decision { action, note? }\n * decide on one post, poll, comment, product or review; answers the\n * item as it now is\n *\n * PRODUCTS AND REVIEWS (0.6.0) are reported and decided here too. A product is\n * hidden or restored, never removed by staff (it is its team's work; hiding\n * takes it out of Discover and off every page but its team's). A review is\n * hidden, restored or removed like a comment. The hidden and removed lists\n * hold them too, so a hidden product can be found and put back.\n *\n * ONE ITEM PER THING, NOT PER REPORT. Five members reporting one post is one\n * row with five reports, so a moderator decides once. The queue's order is\n * the oldest open report first: whoever has waited longest is seen first, and\n * a pile-on cannot jump the line.\n *\n * THE DECISIONS\n * dismiss it stays up; its open reports close as dismissed\n * hide out of every feed and thread, kept, restorable; reports actioned\n * restore a hidden item goes back up\n * remove deleted as its author deleting it would (counts move), not\n * restorable from here; reports actioned\n * Every decision on someone else's content is written to the audit log, with\n * the note when there is one.\n *\n * A report's `note` was written by a member: untrusted text, shown as text.\n *\n * @module founder-schema/domains/moderation\n */\n\nimport { z } from 'zod';\nimport {\n emptyStringToUndefined,\n objectIdSchema,\n optionalTrimmedString,\n paginationQuerySchema,\n} from '../../core/common.js';\nimport { MODERATION_NOTE_MAX } from '../../core/limits.js';\nimport { paginatedSchema } from '../../core/responses.js';\nimport { type ReportTargetKind, reportReasonSchema, reportTargetKindSchema } from '../feed/feed.js';\n\n/**\n * Where something is read in the app: a post or poll, or a product page (for a\n * product, and for a review of it).\n */\nexport const MODERATION_CONTEXT_KIND_VALUES = ['post', 'poll', 'product'] as const;\nexport const moderationContextKindSchema = z.enum(MODERATION_CONTEXT_KIND_VALUES);\nexport type ModerationContextKind = z.infer<typeof moderationContextKindSchema>;\n\n/** Where a post, poll, comment, product or review stands. */\nexport const MODERATION_STATE_VALUES = ['visible', 'hidden', 'removed'] as const;\nexport const moderationStateSchema = z.enum(MODERATION_STATE_VALUES);\nexport type ModerationState = z.infer<typeof moderationStateSchema>;\n\nexport const MODERATION_ACTION_VALUES = ['dismiss', 'hide', 'restore', 'remove'] as const;\nexport const moderationActionSchema = z.enum(MODERATION_ACTION_VALUES);\nexport type ModerationAction = z.infer<typeof moderationActionSchema>;\n\n/**\n * Which decisions apply to which kind of thing: everything, except that a\n * product is never removed by staff (it is its team's work; hiding it takes it\n * out of Discover and off every page but its team's). The decision dialog\n * offers these, and the server refuses anything else with\n * `MODERATION_ACTION_INVALID`. Exhaustive by type.\n */\nexport const MODERATION_ACTIONS_BY_TARGET_KIND = {\n post: MODERATION_ACTION_VALUES,\n poll: MODERATION_ACTION_VALUES,\n comment: MODERATION_ACTION_VALUES,\n review: MODERATION_ACTION_VALUES,\n product: ['dismiss', 'hide', 'restore'],\n} as const satisfies Record<ReportTargetKind, readonly ModerationAction[]>;\n\nconst count = z.number().int().min(0);\n\n/** One post, poll, comment, product or review as moderation sees it. */\nexport const moderationItemSchema = z.object({\n target: z.object({ kind: reportTargetKindSchema, id: objectIdSchema }),\n /**\n * Where it is read in the app: the post or poll itself, or the one a comment\n * is on; the product page for a product or a review.\n */\n content: z.object({ kind: moderationContextKindSchema, id: objectIdSchema }),\n /**\n * Its first words, cut to `MODERATION_EXCERPT_MAX`: a poll's question, a\n * product's name and tagline, a review's stars and text.\n */\n excerpt: z.string(),\n /** Who wrote it; for a product, its owner. */\n author: z.object({\n id: objectIdSchema,\n displayName: z.string(),\n avatarUrl: z.url().nullable(),\n }),\n createdAt: z.iso.datetime(),\n state: moderationStateSchema,\n reports: z.object({\n /** Reports nobody has decided on. */\n open: count,\n /** Every report ever filed about it. */\n total: count,\n /** Why it was reported, among the open ones, most-given first. */\n reasons: z.array(z.object({ reason: reportReasonSchema, count })),\n /** The reporters' notes, among the open ones, newest first (a few, not all). */\n notes: z.array(z.string()),\n /** When the oldest open report was filed. Null when none is open. */\n oldestOpenAt: z.iso.datetime().nullable(),\n }),\n /** What the asking staff member may do to it now. */\n viewer: z.object({\n canDismiss: z.boolean(),\n canHide: z.boolean(),\n canRestore: z.boolean(),\n canRemove: z.boolean(),\n }),\n});\nexport type ModerationItem = z.infer<typeof moderationItemSchema>;\n\nexport const moderationPageSchema = paginatedSchema(moderationItemSchema);\nexport type ModerationPage = z.infer<typeof moderationPageSchema>;\n\n/** `GET /moderation/content`. Visible when not said. */\nexport const moderationContentQuerySchema = paginationQuerySchema.extend({\n state: z.preprocess(emptyStringToUndefined, moderationStateSchema.default('visible')),\n});\nexport type ModerationContentQuery = z.infer<typeof moderationContentQuerySchema>;\nexport type ModerationContentQueryInput = z.input<typeof moderationContentQuerySchema>;\n\n/** `POST /moderation/:contentKind/:contentId/decision`: what is decided on. */\nexport const moderationTargetParamsSchema = z.object({\n contentKind: reportTargetKindSchema,\n contentId: objectIdSchema,\n});\nexport type ModerationTargetParams = z.infer<typeof moderationTargetParamsSchema>;\n\n/** `POST /moderation/:contentKind/:contentId/decision`. */\nexport const moderationDecisionBodySchema = z.object({\n action: moderationActionSchema,\n /** Why, for the audit log. Optional: an obvious spam removal needs no essay. */\n note: optionalTrimmedString(MODERATION_NOTE_MAX),\n});\nexport type ModerationDecisionBody = z.infer<typeof moderationDecisionBodySchema>;\n"]}
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../../src/domains/moderation/moderation.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * founder-schema: moderation\n *\n * GET /api/v1/moderation/queue ?limit&cursor\n * what members reported and nobody has decided on, oldest report first\n * GET /api/v1/moderation/content ?state&limit&cursor\n * by state, newest first: visible is posts and polls by when posted;\n * hidden and removed also hold comments (so a hidden comment can be\n * found and put back), by when hidden or removed\n * A decision that changes nothing (hiding what is already hidden, removing\n * what its author deleted) leaves the reports open and writes nothing: for\n * those, dismiss.\n * POST /api/v1/moderation/:contentKind/:contentId/decision { action, note? }\n * decide on one post, poll, comment, product or review; answers the\n * item as it now is\n *\n * PRODUCTS AND REVIEWS (0.6.0) are reported and decided here too. A product is\n * hidden or restored, never removed by staff (it is its team's work; hiding\n * takes it out of Discover and off every page but its team's). A review is\n * hidden, restored or removed like a comment. The hidden and removed lists\n * hold them too, so a hidden product can be found and put back.\n *\n * ONE ITEM PER THING, NOT PER REPORT. Five members reporting one post is one\n * row with five reports, so a moderator decides once. The queue's order is\n * the oldest open report first: whoever has waited longest is seen first, and\n * a pile-on cannot jump the line.\n *\n * THE DECISIONS\n * dismiss it stays up; its open reports close as dismissed\n * hide out of every feed and thread, kept, restorable; reports actioned\n * restore a hidden item goes back up\n * remove deleted as its author deleting it would (counts move), not\n * restorable from here; reports actioned\n * Every decision on someone else's content is written to the audit log, with\n * the note when there is one.\n *\n * A report's `note` was written by a member: untrusted text, shown as text.\n *\n * @module founder-schema/domains/moderation\n */\n\nimport { z } from 'zod';\nimport {\n emptyStringToUndefined,\n objectIdSchema,\n optionalTrimmedString,\n paginationQuerySchema,\n} from '../../core/common.js';\nimport { MODERATION_NOTE_MAX } from '../../core/limits.js';\nimport { paginatedSchema } from '../../core/responses.js';\nimport { type ReportTargetKind, reportReasonSchema, reportTargetKindSchema } from '../feed/feed.js';\n\n/**\n * Where something is read in the app: a post or poll, or a product page (for a\n * product, and for a review of it).\n */\nexport const MODERATION_CONTEXT_KIND_VALUES = ['post', 'poll', 'product'] as const;\nexport const moderationContextKindSchema = z.enum(MODERATION_CONTEXT_KIND_VALUES);\nexport type ModerationContextKind = z.infer<typeof moderationContextKindSchema>;\n\n/** Where a post, poll, comment, product or review stands. */\nexport const MODERATION_STATE_VALUES = ['visible', 'hidden', 'removed'] as const;\nexport const moderationStateSchema = z.enum(MODERATION_STATE_VALUES);\nexport type ModerationState = z.infer<typeof moderationStateSchema>;\n\nexport const MODERATION_ACTION_VALUES = ['dismiss', 'hide', 'restore', 'remove'] as const;\nexport const moderationActionSchema = z.enum(MODERATION_ACTION_VALUES);\nexport type ModerationAction = z.infer<typeof moderationActionSchema>;\n\n/**\n * Which decisions apply to which kind of thing: everything, except that a\n * product is never removed by staff (it is its team's work; hiding it takes it\n * out of Discover and off every page but its team's). The decision dialog\n * offers these, and the server refuses anything else with\n * `MODERATION_ACTION_INVALID`. Exhaustive by type.\n */\nexport const MODERATION_ACTIONS_BY_TARGET_KIND = {\n post: MODERATION_ACTION_VALUES,\n poll: MODERATION_ACTION_VALUES,\n comment: MODERATION_ACTION_VALUES,\n review: MODERATION_ACTION_VALUES,\n product: ['dismiss', 'hide', 'restore'],\n} as const satisfies Record<ReportTargetKind, readonly ModerationAction[]>;\n\nconst count = z.number().int().min(0);\n\n/** One post, poll, comment, product or review as moderation sees it. */\nexport const moderationItemSchema = z.object({\n target: z.object({ kind: reportTargetKindSchema, id: objectIdSchema }),\n /**\n * Where it is read in the app: the post or poll itself, or the one a comment\n * is on; the product page for a product or a review.\n */\n content: z.object({ kind: moderationContextKindSchema, id: objectIdSchema }),\n /**\n * Its first words AS THEY ARE NOW, cut to `MODERATION_EXCERPT_MAX`: a poll's\n * question, a product's name and tagline, a review's stars and text.\n */\n excerpt: z.string(),\n /**\n * The words as they were when first reported, when the author has edited\n * them since (0.8.0): both are shown, so an edit can neither hide what was\n * reported nor slip new words past a moderator judging the old ones.\n * Absent when unedited since the report.\n */\n asReported: z.string().optional(),\n /** Who wrote it; for a product, its owner. */\n author: z.object({\n id: objectIdSchema,\n displayName: z.string(),\n avatarUrl: z.url().nullable(),\n }),\n createdAt: z.iso.datetime(),\n state: moderationStateSchema,\n reports: z.object({\n /** Reports nobody has decided on. */\n open: count,\n /** Every report ever filed about it. */\n total: count,\n /** Why it was reported, among the open ones, most-given first. */\n reasons: z.array(z.object({ reason: reportReasonSchema, count })),\n /** The reporters' notes, among the open ones, newest first (a few, not all). */\n notes: z.array(z.string()),\n /** When the oldest open report was filed. Null when none is open. */\n oldestOpenAt: z.iso.datetime().nullable(),\n }),\n /** What the asking staff member may do to it now. */\n viewer: z.object({\n canDismiss: z.boolean(),\n canHide: z.boolean(),\n canRestore: z.boolean(),\n canRemove: z.boolean(),\n }),\n});\nexport type ModerationItem = z.infer<typeof moderationItemSchema>;\n\nexport const moderationPageSchema = paginatedSchema(moderationItemSchema);\nexport type ModerationPage = z.infer<typeof moderationPageSchema>;\n\n/** `GET /moderation/content`. Visible when not said. */\nexport const moderationContentQuerySchema = paginationQuerySchema.extend({\n state: z.preprocess(emptyStringToUndefined, moderationStateSchema.default('visible')),\n});\nexport type ModerationContentQuery = z.infer<typeof moderationContentQuerySchema>;\nexport type ModerationContentQueryInput = z.input<typeof moderationContentQuerySchema>;\n\n/** `POST /moderation/:contentKind/:contentId/decision`: what is decided on. */\nexport const moderationTargetParamsSchema = z.object({\n contentKind: reportTargetKindSchema,\n contentId: objectIdSchema,\n});\nexport type ModerationTargetParams = z.infer<typeof moderationTargetParamsSchema>;\n\n/** `POST /moderation/:contentKind/:contentId/decision`. */\nexport const moderationDecisionBodySchema = z.object({\n action: moderationActionSchema,\n /** Why, for the audit log. Optional: an obvious spam removal needs no essay. */\n note: optionalTrimmedString(MODERATION_NOTE_MAX),\n});\nexport type ModerationDecisionBody = z.infer<typeof moderationDecisionBodySchema>;\n"]}
@@ -5,8 +5,9 @@
5
5
  *
6
6
  * - ONE ROW PER RECIPIENT, written when the event happens.
7
7
  * - REPEATS MERGE: a second comment on your post updates the same row
8
- * ("Asha and 2 others commented"), it never adds one. `count` is how many
9
- * events it holds and `actor` the latest.
8
+ * ("2 new comments, latest from Asha"), it never adds one. `count` is how
9
+ * many events it holds and `actor` the latest. A member repeating the same
10
+ * act (reacting, taking it back, reacting again) does not ring it again.
10
11
  * - THE ACTOR IS LOOKED UP WHEN READ, never copied in: a renamed member shows
11
12
  * their new name, and a deleted one shows as null ("A former member").
12
13
  * - PREFERENCES ARE CHECKED before writing (Jansathi stores them and never
@@ -39,8 +40,15 @@ import { z } from 'zod';
39
40
  * review_reply a product's team answered your review
40
41
  * feedback_helpful a team marked your feedback as having helped
41
42
  * tester_confirmed a team confirmed you tested their product
43
+ * post_reaction someone reacted to your post or poll (0.8.0)
44
+ * comment_reaction someone reacted to your comment (0.8.0)
45
+ * repost someone reposted your post or poll (0.8.0)
46
+ *
47
+ * The three 0.8.0 kinds merge per target like the others. A reaction counts
48
+ * once: changing it to another type is not a new event, and taking it back
49
+ * does not take the event back.
42
50
  */
43
- export declare const NOTIFICATION_KIND_VALUES: readonly ["comment_on_post", "reply_to_comment", "product_invite", "product_invite_accepted", "product_review", "review_reply", "feedback_helpful", "tester_confirmed"];
51
+ export declare const NOTIFICATION_KIND_VALUES: readonly ["comment_on_post", "reply_to_comment", "product_invite", "product_invite_accepted", "product_review", "review_reply", "feedback_helpful", "tester_confirmed", "post_reaction", "comment_reaction", "repost"];
44
52
  export declare const notificationKindSchema: z.ZodEnum<{
45
53
  feedback_helpful: "feedback_helpful";
46
54
  tester_confirmed: "tester_confirmed";
@@ -50,15 +58,20 @@ export declare const notificationKindSchema: z.ZodEnum<{
50
58
  product_invite_accepted: "product_invite_accepted";
51
59
  product_review: "product_review";
52
60
  review_reply: "review_reply";
61
+ post_reaction: "post_reaction";
62
+ comment_reaction: "comment_reaction";
63
+ repost: "repost";
53
64
  }>;
54
65
  export type NotificationKind = z.infer<typeof notificationKindSchema>;
55
66
  /** The switches a member has, each covering one or more kinds. */
56
- export declare const NOTIFICATION_PREFERENCE_VALUES: readonly ["comments", "replies", "productActivity", "recognition"];
67
+ export declare const NOTIFICATION_PREFERENCE_VALUES: readonly ["comments", "replies", "productActivity", "recognition", "reactions", "reposts"];
57
68
  export declare const notificationPreferenceSchema: z.ZodEnum<{
58
69
  comments: "comments";
59
70
  replies: "replies";
60
71
  productActivity: "productActivity";
61
72
  recognition: "recognition";
73
+ reactions: "reactions";
74
+ reposts: "reposts";
62
75
  }>;
63
76
  export type NotificationPreference = z.infer<typeof notificationPreferenceSchema>;
64
77
  /**
@@ -74,6 +87,9 @@ export declare const NOTIFICATION_PREFERENCE_OF: {
74
87
  readonly review_reply: "productActivity";
75
88
  readonly feedback_helpful: "recognition";
76
89
  readonly tester_confirmed: "recognition";
90
+ readonly post_reaction: "reactions";
91
+ readonly comment_reaction: "reactions";
92
+ readonly repost: "reposts";
77
93
  };
78
94
  /**
79
95
  * One row of the bell. Which of the optional targets are present depends on
@@ -87,6 +103,9 @@ export declare const NOTIFICATION_PREFERENCE_OF: {
87
103
  * review_reply product, reviewId
88
104
  * feedback_helpful product, content, commentId
89
105
  * tester_confirmed product
106
+ * post_reaction content, reaction
107
+ * comment_reaction content, commentId, reaction, excerpt (your comment)
108
+ * repost content (yours, the one reposted), repostId (the latest repost, to read their words)
90
109
  *
91
110
  * A target that no longer exists (a deleted post, product or review) is
92
111
  * absent rather than pointing at a 404; the row still says what happened.
@@ -102,6 +121,9 @@ export declare const notificationSchema: z.ZodObject<{
102
121
  product_invite_accepted: "product_invite_accepted";
103
122
  product_review: "product_review";
104
123
  review_reply: "review_reply";
124
+ post_reaction: "post_reaction";
125
+ comment_reaction: "comment_reaction";
126
+ repost: "repost";
105
127
  }>;
106
128
  actor: z.ZodNullable<z.ZodObject<{
107
129
  userId: z.ZodString;
@@ -126,10 +148,20 @@ export declare const notificationSchema: z.ZodObject<{
126
148
  logoUrl: z.ZodOptional<z.ZodURL>;
127
149
  }, z.core.$strip>>;
128
150
  reviewId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
151
+ repostId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
129
152
  role: z.ZodOptional<z.ZodEnum<{
130
153
  team: "team";
131
154
  cofounder: "cofounder";
132
155
  }>>;
156
+ reaction: z.ZodOptional<z.ZodEnum<{
157
+ support: "support";
158
+ like: "like";
159
+ celebrate: "celebrate";
160
+ insightful: "insightful";
161
+ curious: "curious";
162
+ love: "love";
163
+ haha: "haha";
164
+ }>>;
133
165
  excerpt: z.ZodOptional<z.ZodString>;
134
166
  readAt: z.ZodNullable<z.ZodISODateTime>;
135
167
  lastAt: z.ZodISODateTime;
@@ -148,6 +180,9 @@ export declare const notificationPageSchema: z.ZodObject<{
148
180
  product_invite_accepted: "product_invite_accepted";
149
181
  product_review: "product_review";
150
182
  review_reply: "review_reply";
183
+ post_reaction: "post_reaction";
184
+ comment_reaction: "comment_reaction";
185
+ repost: "repost";
151
186
  }>;
152
187
  actor: z.ZodNullable<z.ZodObject<{
153
188
  userId: z.ZodString;
@@ -172,10 +207,20 @@ export declare const notificationPageSchema: z.ZodObject<{
172
207
  logoUrl: z.ZodOptional<z.ZodURL>;
173
208
  }, z.core.$strip>>;
174
209
  reviewId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
210
+ repostId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
175
211
  role: z.ZodOptional<z.ZodEnum<{
176
212
  team: "team";
177
213
  cofounder: "cofounder";
178
214
  }>>;
215
+ reaction: z.ZodOptional<z.ZodEnum<{
216
+ support: "support";
217
+ like: "like";
218
+ celebrate: "celebrate";
219
+ insightful: "insightful";
220
+ curious: "curious";
221
+ love: "love";
222
+ haha: "haha";
223
+ }>>;
179
224
  excerpt: z.ZodOptional<z.ZodString>;
180
225
  readAt: z.ZodNullable<z.ZodISODateTime>;
181
226
  lastAt: z.ZodISODateTime;
@@ -199,6 +244,8 @@ export declare const notificationPreferencesSchema: z.ZodObject<{
199
244
  replies: z.ZodBoolean;
200
245
  productActivity: z.ZodBoolean;
201
246
  recognition: z.ZodBoolean;
247
+ reactions: z.ZodBoolean;
248
+ reposts: z.ZodBoolean;
202
249
  }, z.core.$strip>;
203
250
  export type NotificationPreferences = z.infer<typeof notificationPreferencesSchema>;
204
251
  /** Only the switches that changed; no defaults (a patch states what was sent). */
@@ -207,6 +254,8 @@ export declare const updateNotificationPreferencesBodySchema: z.ZodObject<{
207
254
  replies: z.ZodOptional<z.ZodBoolean>;
208
255
  productActivity: z.ZodOptional<z.ZodBoolean>;
209
256
  recognition: z.ZodOptional<z.ZodBoolean>;
257
+ reactions: z.ZodOptional<z.ZodBoolean>;
258
+ reposts: z.ZodOptional<z.ZodBoolean>;
210
259
  }, z.core.$strip>;
211
260
  export type UpdateNotificationPreferencesBody = z.infer<typeof updateNotificationPreferencesBodySchema>;
212
261
  //# sourceMappingURL=notifications.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/domains/notifications/notifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,yKAS3B,CAAC;AACX,eAAO,MAAM,sBAAsB;;;;;;;;;EAAmC,CAAC;AACvE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,kEAAkE;AAClE,eAAO,MAAM,8BAA8B,oEAKjC,CAAC;AACX,eAAO,MAAM,4BAA4B;;;;;EAAyC,CAAC;AACnF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;CASqC,CAAC;AAE7E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6B7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAsC,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,iBAAiB;AACjB,eAAO,MAAM,6BAA6B;;iBAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,wBAAwB;;iBAA+C,CAAC;AACrF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,+CAA+C;AAC/C,eAAO,MAAM,6BAA6B;;;;;iBAKxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,kFAAkF;AAClF,eAAO,MAAM,uCAAuC;;;;;iBAKlD,CAAC;AACH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,uCAAuC,CAC/C,CAAC"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/domains/notifications/notifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,wBAAwB,wNAY3B,CAAC;AACX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAAmC,CAAC;AACvE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,kEAAkE;AAClE,eAAO,MAAM,8BAA8B,4FAOjC,CAAC;AACX,eAAO,MAAM,4BAA4B;;;;;;;EAAyC,CAAC;AACnF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;CAYqC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoC7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAsC,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,iBAAiB;AACjB,eAAO,MAAM,6BAA6B;;iBAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,wBAAwB;;iBAA+C,CAAC;AACrF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,+CAA+C;AAC/C,eAAO,MAAM,6BAA6B;;;;;;;iBASxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,kFAAkF;AAClF,eAAO,MAAM,uCAAuC;;;;;;;iBAOlD,CAAC;AACH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,uCAAuC,CAC/C,CAAC"}
@@ -5,8 +5,9 @@
5
5
  *
6
6
  * - ONE ROW PER RECIPIENT, written when the event happens.
7
7
  * - REPEATS MERGE: a second comment on your post updates the same row
8
- * ("Asha and 2 others commented"), it never adds one. `count` is how many
9
- * events it holds and `actor` the latest.
8
+ * ("2 new comments, latest from Asha"), it never adds one. `count` is how
9
+ * many events it holds and `actor` the latest. A member repeating the same
10
+ * act (reacting, taking it back, reacting again) does not ring it again.
10
11
  * - THE ACTOR IS LOOKED UP WHEN READ, never copied in: a renamed member shows
11
12
  * their new name, and a deleted one shows as null ("A former member").
12
13
  * - PREFERENCES ARE CHECKED before writing (Jansathi stores them and never
@@ -31,7 +32,7 @@ import { z } from 'zod';
31
32
  import { objectIdSchema } from '../../core/common.js';
32
33
  import { NOTIFICATION_EXCERPT_MAX } from '../../core/limits.js';
33
34
  import { paginatedSchema } from '../../core/responses.js';
34
- import { contentKindSchema } from '../feed/feed.js';
35
+ import { contentKindSchema, reactionTypeSchema } from '../feed/feed.js';
35
36
  import { productChipSchema, productInvitableRoleSchema } from '../products/products.js';
36
37
  import { memberBylineSchema } from '../profile/founder-profile.js';
37
38
  /**
@@ -45,6 +46,13 @@ import { memberBylineSchema } from '../profile/founder-profile.js';
45
46
  * review_reply a product's team answered your review
46
47
  * feedback_helpful a team marked your feedback as having helped
47
48
  * tester_confirmed a team confirmed you tested their product
49
+ * post_reaction someone reacted to your post or poll (0.8.0)
50
+ * comment_reaction someone reacted to your comment (0.8.0)
51
+ * repost someone reposted your post or poll (0.8.0)
52
+ *
53
+ * The three 0.8.0 kinds merge per target like the others. A reaction counts
54
+ * once: changing it to another type is not a new event, and taking it back
55
+ * does not take the event back.
48
56
  */
49
57
  export const NOTIFICATION_KIND_VALUES = [
50
58
  'comment_on_post',
@@ -55,6 +63,9 @@ export const NOTIFICATION_KIND_VALUES = [
55
63
  'review_reply',
56
64
  'feedback_helpful',
57
65
  'tester_confirmed',
66
+ 'post_reaction',
67
+ 'comment_reaction',
68
+ 'repost',
58
69
  ];
59
70
  export const notificationKindSchema = z.enum(NOTIFICATION_KIND_VALUES);
60
71
  /** The switches a member has, each covering one or more kinds. */
@@ -63,6 +74,8 @@ export const NOTIFICATION_PREFERENCE_VALUES = [
63
74
  'replies',
64
75
  'productActivity',
65
76
  'recognition',
77
+ 'reactions',
78
+ 'reposts',
66
79
  ];
67
80
  export const notificationPreferenceSchema = z.enum(NOTIFICATION_PREFERENCE_VALUES);
68
81
  /**
@@ -78,6 +91,9 @@ export const NOTIFICATION_PREFERENCE_OF = {
78
91
  review_reply: 'productActivity',
79
92
  feedback_helpful: 'recognition',
80
93
  tester_confirmed: 'recognition',
94
+ post_reaction: 'reactions',
95
+ comment_reaction: 'reactions',
96
+ repost: 'reposts',
81
97
  };
82
98
  /**
83
99
  * One row of the bell. Which of the optional targets are present depends on
@@ -91,6 +107,9 @@ export const NOTIFICATION_PREFERENCE_OF = {
91
107
  * review_reply product, reviewId
92
108
  * feedback_helpful product, content, commentId
93
109
  * tester_confirmed product
110
+ * post_reaction content, reaction
111
+ * comment_reaction content, commentId, reaction, excerpt (your comment)
112
+ * repost content (yours, the one reposted), repostId (the latest repost, to read their words)
94
113
  *
95
114
  * A target that no longer exists (a deleted post, product or review) is
96
115
  * absent rather than pointing at a 404; the row still says what happened.
@@ -110,8 +129,15 @@ export const notificationSchema = z.object({
110
129
  commentId: objectIdSchema.optional(),
111
130
  product: productChipSchema.optional(),
112
131
  reviewId: objectIdSchema.optional(),
132
+ /**
133
+ * For `repost` (0.8.0): the latest repost itself, so the row opens the
134
+ * reposter's words above your post. Gone once that repost is.
135
+ */
136
+ repostId: objectIdSchema.optional(),
113
137
  /** For `product_invite`: the role offered. */
114
138
  role: productInvitableRoleSchema.optional(),
139
+ /** For the reaction kinds: the latest reaction, as it is now (0.8.0). */
140
+ reaction: reactionTypeSchema.optional(),
115
141
  /**
116
142
  * The first words of what was written, for the comment and review kinds
117
143
  * (the latest one, on a merged row), cut to `NOTIFICATION_EXCERPT_MAX`. Gone
@@ -137,6 +163,10 @@ export const notificationPreferencesSchema = z.object({
137
163
  replies: z.boolean(),
138
164
  productActivity: z.boolean(),
139
165
  recognition: z.boolean(),
166
+ /** Reactions to your posts, polls and comments (0.8.0). */
167
+ reactions: z.boolean(),
168
+ /** Reposts of your posts and polls (0.8.0). */
169
+ reposts: z.boolean(),
140
170
  });
141
171
  /** Only the switches that changed; no defaults (a patch states what was sent). */
142
172
  export const updateNotificationPreferencesBodySchema = z.object({
@@ -144,5 +174,7 @@ export const updateNotificationPreferencesBodySchema = z.object({
144
174
  replies: z.boolean().optional(),
145
175
  productActivity: z.boolean().optional(),
146
176
  recognition: z.boolean().optional(),
177
+ reactions: z.boolean().optional(),
178
+ reposts: z.boolean().optional(),
147
179
  });
148
180
  //# sourceMappingURL=notifications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/domains/notifications/notifications.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * founder-schema — Notifications: the bell\n *\n * The design the user approved on 2026-10-05 (\"Founder Circle Schema Review\"):\n *\n * - ONE ROW PER RECIPIENT, written when the event happens.\n * - REPEATS MERGE: a second comment on your post updates the same row\n * (\"Asha and 2 others commented\"), it never adds one. `count` is how many\n * events it holds and `actor` the latest.\n * - THE ACTOR IS LOOKED UP WHEN READ, never copied in: a renamed member shows\n * their new name, and a deleted one shows as null (\"A former member\").\n * - PREFERENCES ARE CHECKED before writing (Jansathi stores them and never\n * reads them). A team invitation is always delivered: it needs an answer.\n * - KEPT `NOTIFICATION_RETENTION_DAYS`, then deleted.\n * - Nobody is notified of their own action.\n *\n * In-app only. Push stays chat's (async-service) until a channel is designed:\n * a client polls the unread count (on focus, and every minute while visible).\n *\n * Routes (all signed in):\n * GET /api/v1/notifications paginationQuerySchema -> notificationPageSchema\n * GET /api/v1/notifications/unread-count -> notificationUnreadCountSchema\n * POST /api/v1/notifications/read mark every one read -> notificationUnreadCountSchema\n * PUT /api/v1/notifications/:notificationId/read -> notificationSchema\n * GET /api/v1/notifications/preferences -> notificationPreferencesSchema\n * PUT /api/v1/notifications/preferences updateNotificationPreferencesBodySchema -> notificationPreferencesSchema\n *\n * @module founder-schema/domains/notifications\n */\n\nimport { z } from 'zod';\nimport { objectIdSchema } from '../../core/common.js';\nimport { NOTIFICATION_EXCERPT_MAX } from '../../core/limits.js';\nimport { paginatedSchema } from '../../core/responses.js';\nimport { contentKindSchema } from '../feed/feed.js';\nimport { productChipSchema, productInvitableRoleSchema } from '../products/products.js';\nimport { memberBylineSchema } from '../profile/founder-profile.js';\n\n/**\n * What happened. ⚠ Stored per row: append only.\n *\n * comment_on_post someone commented on your post or poll\n * reply_to_comment someone replied to your comment\n * product_invite a team invited you (always delivered)\n * product_invite_accepted someone accepted your team's invitation\n * product_review someone reviewed a product you are on the team of\n * review_reply a product's team answered your review\n * feedback_helpful a team marked your feedback as having helped\n * tester_confirmed a team confirmed you tested their product\n */\nexport const NOTIFICATION_KIND_VALUES = [\n 'comment_on_post',\n 'reply_to_comment',\n 'product_invite',\n 'product_invite_accepted',\n 'product_review',\n 'review_reply',\n 'feedback_helpful',\n 'tester_confirmed',\n] as const;\nexport const notificationKindSchema = z.enum(NOTIFICATION_KIND_VALUES);\nexport type NotificationKind = z.infer<typeof notificationKindSchema>;\n\n/** The switches a member has, each covering one or more kinds. */\nexport const NOTIFICATION_PREFERENCE_VALUES = [\n 'comments',\n 'replies',\n 'productActivity',\n 'recognition',\n] as const;\nexport const notificationPreferenceSchema = z.enum(NOTIFICATION_PREFERENCE_VALUES);\nexport type NotificationPreference = z.infer<typeof notificationPreferenceSchema>;\n\n/**\n * Which switch silences which kind. Null: always delivered. Exhaustive by\n * type, so a kind added without a decision here does not compile.\n */\nexport const NOTIFICATION_PREFERENCE_OF = {\n comment_on_post: 'comments',\n reply_to_comment: 'replies',\n product_invite: null,\n product_invite_accepted: 'productActivity',\n product_review: 'productActivity',\n review_reply: 'productActivity',\n feedback_helpful: 'recognition',\n tester_confirmed: 'recognition',\n} as const satisfies Record<NotificationKind, NotificationPreference | null>;\n\n/**\n * One row of the bell. Which of the optional targets are present depends on\n * `kind`:\n *\n * comment_on_post content, commentId\n * reply_to_comment content, commentId (the reply)\n * product_invite product, role\n * product_invite_accepted product\n * product_review product, reviewId\n * review_reply product, reviewId\n * feedback_helpful product, content, commentId\n * tester_confirmed product\n *\n * A target that no longer exists (a deleted post, product or review) is\n * absent rather than pointing at a 404; the row still says what happened.\n */\nexport const notificationSchema = z.object({\n id: objectIdSchema,\n kind: notificationKindSchema,\n /** The latest person to do it, live; null for a deleted account. */\n actor: memberBylineSchema.nullable(),\n /**\n * How many EVENTS this row merges, at least 1: three comments by one person\n * are 3. Word it as events (\"3 new comments, latest from Asha\"), never as\n * people (\"Asha and 2 others\"), which this count does not know.\n */\n count: z.number().int().positive(),\n content: z.object({ kind: contentKindSchema, id: objectIdSchema }).optional(),\n commentId: objectIdSchema.optional(),\n product: productChipSchema.optional(),\n reviewId: objectIdSchema.optional(),\n /** For `product_invite`: the role offered. */\n role: productInvitableRoleSchema.optional(),\n /**\n * The first words of what was written, for the comment and review kinds\n * (the latest one, on a merged row), cut to `NOTIFICATION_EXCERPT_MAX`. Gone\n * when that comment or review is deleted or hidden, and when its writer's\n * account is.\n */\n excerpt: z.string().max(NOTIFICATION_EXCERPT_MAX).optional(),\n /** Null until opened (or until \"mark all read\"). A merged repeat makes it unread again. */\n readAt: z.iso.datetime().nullable(),\n /** When it last happened: the list's order. */\n lastAt: z.iso.datetime(),\n createdAt: z.iso.datetime(),\n});\nexport type Notification = z.infer<typeof notificationSchema>;\n\nexport const notificationPageSchema = paginatedSchema(notificationSchema);\nexport type NotificationPage = z.infer<typeof notificationPageSchema>;\n\n/** The badge. */\nexport const notificationUnreadCountSchema = z.object({\n unread: z.number().int().nonnegative(),\n});\nexport type NotificationUnreadCount = z.infer<typeof notificationUnreadCountSchema>;\n\nexport const notificationParamsSchema = z.object({ notificationId: objectIdSchema });\nexport type NotificationParams = z.infer<typeof notificationParamsSchema>;\n\n/** Every switch, as stored (on by default). */\nexport const notificationPreferencesSchema = z.object({\n comments: z.boolean(),\n replies: z.boolean(),\n productActivity: z.boolean(),\n recognition: z.boolean(),\n});\nexport type NotificationPreferences = z.infer<typeof notificationPreferencesSchema>;\n\n/** Only the switches that changed; no defaults (a patch states what was sent). */\nexport const updateNotificationPreferencesBodySchema = z.object({\n comments: z.boolean().optional(),\n replies: z.boolean().optional(),\n productActivity: z.boolean().optional(),\n recognition: z.boolean().optional(),\n});\nexport type UpdateNotificationPreferencesBody = z.infer<\n typeof updateNotificationPreferencesBodySchema\n>;\n"]}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/domains/notifications/notifications.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * founder-schema — Notifications: the bell\n *\n * The design the user approved on 2026-10-05 (\"Founder Circle Schema Review\"):\n *\n * - ONE ROW PER RECIPIENT, written when the event happens.\n * - REPEATS MERGE: a second comment on your post updates the same row\n * (\"2 new comments, latest from Asha\"), it never adds one. `count` is how\n * many events it holds and `actor` the latest. A member repeating the same\n * act (reacting, taking it back, reacting again) does not ring it again.\n * - THE ACTOR IS LOOKED UP WHEN READ, never copied in: a renamed member shows\n * their new name, and a deleted one shows as null (\"A former member\").\n * - PREFERENCES ARE CHECKED before writing (Jansathi stores them and never\n * reads them). A team invitation is always delivered: it needs an answer.\n * - KEPT `NOTIFICATION_RETENTION_DAYS`, then deleted.\n * - Nobody is notified of their own action.\n *\n * In-app only. Push stays chat's (async-service) until a channel is designed:\n * a client polls the unread count (on focus, and every minute while visible).\n *\n * Routes (all signed in):\n * GET /api/v1/notifications paginationQuerySchema -> notificationPageSchema\n * GET /api/v1/notifications/unread-count -> notificationUnreadCountSchema\n * POST /api/v1/notifications/read mark every one read -> notificationUnreadCountSchema\n * PUT /api/v1/notifications/:notificationId/read -> notificationSchema\n * GET /api/v1/notifications/preferences -> notificationPreferencesSchema\n * PUT /api/v1/notifications/preferences updateNotificationPreferencesBodySchema -> notificationPreferencesSchema\n *\n * @module founder-schema/domains/notifications\n */\n\nimport { z } from 'zod';\nimport { objectIdSchema } from '../../core/common.js';\nimport { NOTIFICATION_EXCERPT_MAX } from '../../core/limits.js';\nimport { paginatedSchema } from '../../core/responses.js';\nimport { contentKindSchema, reactionTypeSchema } from '../feed/feed.js';\nimport { productChipSchema, productInvitableRoleSchema } from '../products/products.js';\nimport { memberBylineSchema } from '../profile/founder-profile.js';\n\n/**\n * What happened. ⚠ Stored per row: append only.\n *\n * comment_on_post someone commented on your post or poll\n * reply_to_comment someone replied to your comment\n * product_invite a team invited you (always delivered)\n * product_invite_accepted someone accepted your team's invitation\n * product_review someone reviewed a product you are on the team of\n * review_reply a product's team answered your review\n * feedback_helpful a team marked your feedback as having helped\n * tester_confirmed a team confirmed you tested their product\n * post_reaction someone reacted to your post or poll (0.8.0)\n * comment_reaction someone reacted to your comment (0.8.0)\n * repost someone reposted your post or poll (0.8.0)\n *\n * The three 0.8.0 kinds merge per target like the others. A reaction counts\n * once: changing it to another type is not a new event, and taking it back\n * does not take the event back.\n */\nexport const NOTIFICATION_KIND_VALUES = [\n 'comment_on_post',\n 'reply_to_comment',\n 'product_invite',\n 'product_invite_accepted',\n 'product_review',\n 'review_reply',\n 'feedback_helpful',\n 'tester_confirmed',\n 'post_reaction',\n 'comment_reaction',\n 'repost',\n] as const;\nexport const notificationKindSchema = z.enum(NOTIFICATION_KIND_VALUES);\nexport type NotificationKind = z.infer<typeof notificationKindSchema>;\n\n/** The switches a member has, each covering one or more kinds. */\nexport const NOTIFICATION_PREFERENCE_VALUES = [\n 'comments',\n 'replies',\n 'productActivity',\n 'recognition',\n 'reactions',\n 'reposts',\n] as const;\nexport const notificationPreferenceSchema = z.enum(NOTIFICATION_PREFERENCE_VALUES);\nexport type NotificationPreference = z.infer<typeof notificationPreferenceSchema>;\n\n/**\n * Which switch silences which kind. Null: always delivered. Exhaustive by\n * type, so a kind added without a decision here does not compile.\n */\nexport const NOTIFICATION_PREFERENCE_OF = {\n comment_on_post: 'comments',\n reply_to_comment: 'replies',\n product_invite: null,\n product_invite_accepted: 'productActivity',\n product_review: 'productActivity',\n review_reply: 'productActivity',\n feedback_helpful: 'recognition',\n tester_confirmed: 'recognition',\n post_reaction: 'reactions',\n comment_reaction: 'reactions',\n repost: 'reposts',\n} as const satisfies Record<NotificationKind, NotificationPreference | null>;\n\n/**\n * One row of the bell. Which of the optional targets are present depends on\n * `kind`:\n *\n * comment_on_post content, commentId\n * reply_to_comment content, commentId (the reply)\n * product_invite product, role\n * product_invite_accepted product\n * product_review product, reviewId\n * review_reply product, reviewId\n * feedback_helpful product, content, commentId\n * tester_confirmed product\n * post_reaction content, reaction\n * comment_reaction content, commentId, reaction, excerpt (your comment)\n * repost content (yours, the one reposted), repostId (the latest repost, to read their words)\n *\n * A target that no longer exists (a deleted post, product or review) is\n * absent rather than pointing at a 404; the row still says what happened.\n */\nexport const notificationSchema = z.object({\n id: objectIdSchema,\n kind: notificationKindSchema,\n /** The latest person to do it, live; null for a deleted account. */\n actor: memberBylineSchema.nullable(),\n /**\n * How many EVENTS this row merges, at least 1: three comments by one person\n * are 3. Word it as events (\"3 new comments, latest from Asha\"), never as\n * people (\"Asha and 2 others\"), which this count does not know.\n */\n count: z.number().int().positive(),\n content: z.object({ kind: contentKindSchema, id: objectIdSchema }).optional(),\n commentId: objectIdSchema.optional(),\n product: productChipSchema.optional(),\n reviewId: objectIdSchema.optional(),\n /**\n * For `repost` (0.8.0): the latest repost itself, so the row opens the\n * reposter's words above your post. Gone once that repost is.\n */\n repostId: objectIdSchema.optional(),\n /** For `product_invite`: the role offered. */\n role: productInvitableRoleSchema.optional(),\n /** For the reaction kinds: the latest reaction, as it is now (0.8.0). */\n reaction: reactionTypeSchema.optional(),\n /**\n * The first words of what was written, for the comment and review kinds\n * (the latest one, on a merged row), cut to `NOTIFICATION_EXCERPT_MAX`. Gone\n * when that comment or review is deleted or hidden, and when its writer's\n * account is.\n */\n excerpt: z.string().max(NOTIFICATION_EXCERPT_MAX).optional(),\n /** Null until opened (or until \"mark all read\"). A merged repeat makes it unread again. */\n readAt: z.iso.datetime().nullable(),\n /** When it last happened: the list's order. */\n lastAt: z.iso.datetime(),\n createdAt: z.iso.datetime(),\n});\nexport type Notification = z.infer<typeof notificationSchema>;\n\nexport const notificationPageSchema = paginatedSchema(notificationSchema);\nexport type NotificationPage = z.infer<typeof notificationPageSchema>;\n\n/** The badge. */\nexport const notificationUnreadCountSchema = z.object({\n unread: z.number().int().nonnegative(),\n});\nexport type NotificationUnreadCount = z.infer<typeof notificationUnreadCountSchema>;\n\nexport const notificationParamsSchema = z.object({ notificationId: objectIdSchema });\nexport type NotificationParams = z.infer<typeof notificationParamsSchema>;\n\n/** Every switch, as stored (on by default). */\nexport const notificationPreferencesSchema = z.object({\n comments: z.boolean(),\n replies: z.boolean(),\n productActivity: z.boolean(),\n recognition: z.boolean(),\n /** Reactions to your posts, polls and comments (0.8.0). */\n reactions: z.boolean(),\n /** Reposts of your posts and polls (0.8.0). */\n reposts: z.boolean(),\n});\nexport type NotificationPreferences = z.infer<typeof notificationPreferencesSchema>;\n\n/** Only the switches that changed; no defaults (a patch states what was sent). */\nexport const updateNotificationPreferencesBodySchema = z.object({\n comments: z.boolean().optional(),\n replies: z.boolean().optional(),\n productActivity: z.boolean().optional(),\n recognition: z.boolean().optional(),\n reactions: z.boolean().optional(),\n reposts: z.boolean().optional(),\n});\nexport type UpdateNotificationPreferencesBody = z.infer<\n typeof updateNotificationPreferencesBodySchema\n>;\n"]}
package/dist/index.d.ts CHANGED
@@ -22,7 +22,7 @@ export { CHAT_PRODUCT_ID, CHAT_SOCKET_REAUTH_SECONDS, CHAT_TOKEN_REFRESH_MARGIN_
22
22
  export { CONTRIBUTION_AWARDED_KIND_VALUES, CONTRIBUTION_KIND_VALUES, CONTRIBUTION_POINTS, type ContributionEntry, type ContributionKind, type ContributionLeaderboard, type ContributionLeaderEntry, type ContributionPage, contributionEntrySchema, contributionKindSchema, contributionLeaderboardSchema, contributionLeaderEntrySchema, contributionPageSchema, } from './domains/contributions/contributions.js';
23
23
  export { type Dashboard, dashboardSchema } from './domains/dashboard/dashboard.js';
24
24
  export { type DiscoverFacets, type DiscoverPage, type DiscoverQuery, type DiscoverQueryInput, discoverFacetsSchema, discoverPageSchema, discoverQuerySchema, } from './domains/discover/discover.js';
25
- export { type AttachedMedia, type AuthorParams, attachedMediaSchema, authorParamsSchema, type CastVoteBody, type CastVoteResponse, COMMENT_MAX_BODY_CHARS, CONTENT_KIND_VALUES, type CommentHelpfulResponse, type CommentPage, type CommentParams, type CommentsQuery, type CommentsQueryInput, type ContentKind, type ContentParams, type ContentTargetParams, type CreateCommentBody, type CreatePollBody, type CreatePostBody, type CreateReportBody, type CreateReportResponse, castVoteBodySchema, castVoteResponseSchema, commentHelpfulResponseSchema, commentPageSchema, commentParamsSchema, commentsQuerySchema, contentKindSchema, contentParamsSchema, contentTargetParamsSchema, createCommentBodySchema, createPollBodySchema, createPostBodySchema, createReportBodySchema, createReportResponseSchema, EDIT_WINDOW_MS, ENGAGEMENT_TARGET_KIND_VALUES, type EngagementTargetKind, type EngagementTargetParams, engagementTargetKindSchema, engagementTargetParamsSchema, FEED_SORT_VALUES, type FeedAuthor, type FeedComment, type FeedImage, type FeedItem, type FeedItemParams, type FeedMedia, type FeedPage, type FeedPoll, type FeedPost, type FeedQuery, type FeedQueryInput, type FeedSort, type FeedVideo, feedAuthorSchema, feedCommentSchema, feedImageSchema, feedItemParamsSchema, feedItemSchema, feedMediaSchema, feedPageSchema, feedPollSchema, feedPostSchema, feedQuerySchema, feedSortSchema, feedVideoSchema, type LinkPreview, linkPreviewSchema, MAX_TOPICS, POLL_MAX_DURATION_MS, POLL_MAX_OPTIONS, POLL_MIN_DURATION_MS, POLL_MIN_OPTIONS, POLL_OPTION_MAX_CHARS, POLL_QUESTION_MAX_CHARS, POST_MAX_BODY_CHARS, POST_MAX_MEDIA, type PollOption, type PollParams, type ProductFeedbackItem, type ProductFeedbackPage, pollOptionSchema, pollParamsSchema, productFeedbackItemSchema, productFeedbackPageSchema, REACTION_TYPE_VALUES, REPORT_REASON_VALUES, REPORT_TARGET_KIND_VALUES, type ReactionCounts, type ReactionType, type ReportReason, type ReportTargetKind, reactionCountsSchema, reactionTypeSchema, reportReasonSchema, reportTargetKindSchema, type SetReactionBody, type SetReactionResponse, setReactionBodySchema, setReactionResponseSchema, type ToggleBookmarkResponse, toggleBookmarkResponseSchema, type UpdateCommentBody, type UpdatePostBody, updateCommentBodySchema, updatePostBodySchema, type ViewerState, viewerStateSchema, } from './domains/feed/feed.js';
25
+ export { type AttachedMedia, type AuthorParams, attachedMediaSchema, authorParamsSchema, type CastVoteBody, type CastVoteResponse, COMMENT_MAX_BODY_CHARS, CONTENT_KIND_VALUES, type CommentHelpfulResponse, type CommentPage, type CommentParams, type CommentsQuery, type CommentsQueryInput, type ContentKind, type ContentParams, type ContentTargetParams, type ContentViewerState, type CreateCommentBody, type CreatePollBody, type CreatePostBody, type CreateReportBody, type CreateReportResponse, type CreateRepostBody, castVoteBodySchema, castVoteResponseSchema, commentHelpfulResponseSchema, commentPageSchema, commentParamsSchema, commentsQuerySchema, contentKindSchema, contentParamsSchema, contentTargetParamsSchema, contentViewerStateSchema, createCommentBodySchema, createPollBodySchema, createPostBodySchema, createReportBodySchema, createReportResponseSchema, createRepostBodySchema, EDIT_WINDOW_MS, ENGAGEMENT_TARGET_KIND_VALUES, type EngagementTargetKind, type EngagementTargetParams, engagementTargetKindSchema, engagementTargetParamsSchema, FEED_SORT_VALUES, type FeedAuthor, type FeedComment, type FeedImage, type FeedItem, type FeedItemParams, type FeedMedia, type FeedPage, type FeedPoll, type FeedPost, type FeedQuery, type FeedQueryInput, type FeedSort, type FeedVideo, feedAuthorSchema, feedCommentSchema, feedImageSchema, feedItemParamsSchema, feedItemSchema, feedMediaSchema, feedPageSchema, feedPollSchema, feedPostSchema, feedQuerySchema, feedSortSchema, feedVideoSchema, type LinkPreview, linkPreviewSchema, MAX_TOPICS, type PickableReaction, POLL_MAX_DURATION_MS, POLL_MAX_OPTIONS, POLL_MIN_DURATION_MS, POLL_MIN_OPTIONS, POLL_OPTION_MAX_CHARS, POLL_QUESTION_MAX_CHARS, POST_MAX_BODY_CHARS, POST_MAX_MEDIA, type PollOption, type PollParams, type ProductFeedbackItem, type ProductFeedbackPage, pickableReactionSchema, pollOptionSchema, pollParamsSchema, productFeedbackItemSchema, productFeedbackPageSchema, REACTION_PICKER_VALUES, REACTION_TYPE_VALUES, REPORT_REASON_VALUES, REPORT_TARGET_KIND_VALUES, type ReactionCounts, type ReactionsQuery, type ReactionsQueryInput, type ReactionType, type Reactor, type ReactorPage, type ReportReason, type ReportTargetKind, type RepostedSource, reactionCountsSchema, reactionsQuerySchema, reactionTypeSchema, reactorPageSchema, reactorSchema, reportReasonSchema, reportTargetKindSchema, repostedSourceSchema, type SetReactionBody, type SetReactionResponse, setReactionBodySchema, setReactionResponseSchema, type ToggleBookmarkResponse, toggleBookmarkResponseSchema, type UpdateCommentBody, type UpdatePostBody, updateCommentBodySchema, updatePostBodySchema, type ViewerState, viewerStateSchema, } from './domains/feed/feed.js';
26
26
  export { MEDIA_PURPOSE_VALUES, MEDIA_SIZES, MEDIA_UPLOAD_CONTENT_TYPES, MEDIA_VARIANTS_MAX, type MediaImage, type MediaPurpose, type MediaUploadContentType, type MediaVariant, mediaImageSchema, mediaPurposeSchema, mediaUploadContentTypeSchema, mediaVariantSchema, type UploadedMedia, uploadedMediaSchema, } from './domains/media/media.js';
27
27
  export { MEMBER_STATUS_VALUES, type MemberDetail, type MemberDirectoryPage, type MemberDirectoryQuery, type MemberDirectoryQueryInput, type MemberParams, type MemberStatus, type MemberSummary, memberDetailSchema, memberDirectoryPageSchema, memberDirectoryQuerySchema, memberParamsSchema, memberStatusSchema, memberSummarySchema, type SuspendMemberBody, type Suspension, suspendMemberBodySchema, suspensionSchema, } from './domains/members/members.js';
28
28
  export { MODERATION_ACTION_VALUES, MODERATION_ACTIONS_BY_TARGET_KIND, MODERATION_CONTEXT_KIND_VALUES, MODERATION_STATE_VALUES, type ModerationAction, type ModerationContentQuery, type ModerationContentQueryInput, type ModerationContextKind, type ModerationDecisionBody, type ModerationItem, type ModerationPage, type ModerationState, type ModerationTargetParams, moderationActionSchema, moderationContentQuerySchema, moderationContextKindSchema, moderationDecisionBodySchema, moderationItemSchema, moderationPageSchema, moderationStateSchema, moderationTargetParamsSchema, } from './domains/moderation/moderation.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -34,7 +34,7 @@ export { dashboardSchema } from './domains/dashboard/dashboard.js';
34
34
  // ─── Discover ────────────────────────────────────────────────────────────────
35
35
  export { discoverFacetsSchema, discoverPageSchema, discoverQuerySchema, } from './domains/discover/discover.js';
36
36
  // ─── Feed: post, poll, comment, reaction ─────────────────────────────────────
37
- export { attachedMediaSchema, authorParamsSchema, COMMENT_MAX_BODY_CHARS, CONTENT_KIND_VALUES, castVoteBodySchema, castVoteResponseSchema, commentHelpfulResponseSchema, commentPageSchema, commentParamsSchema, commentsQuerySchema, contentKindSchema, contentParamsSchema, contentTargetParamsSchema, createCommentBodySchema, createPollBodySchema, createPostBodySchema, createReportBodySchema, createReportResponseSchema, EDIT_WINDOW_MS, ENGAGEMENT_TARGET_KIND_VALUES, engagementTargetKindSchema, engagementTargetParamsSchema, FEED_SORT_VALUES, feedAuthorSchema, feedCommentSchema, feedImageSchema, feedItemParamsSchema, feedItemSchema, feedMediaSchema, feedPageSchema, feedPollSchema, feedPostSchema, feedQuerySchema, feedSortSchema, feedVideoSchema, linkPreviewSchema, MAX_TOPICS, POLL_MAX_DURATION_MS, POLL_MAX_OPTIONS, POLL_MIN_DURATION_MS, POLL_MIN_OPTIONS, POLL_OPTION_MAX_CHARS, POLL_QUESTION_MAX_CHARS, POST_MAX_BODY_CHARS, POST_MAX_MEDIA, pollOptionSchema, pollParamsSchema, productFeedbackItemSchema, productFeedbackPageSchema, REACTION_TYPE_VALUES, REPORT_REASON_VALUES, REPORT_TARGET_KIND_VALUES, reactionCountsSchema, reactionTypeSchema, reportReasonSchema, reportTargetKindSchema, setReactionBodySchema, setReactionResponseSchema, toggleBookmarkResponseSchema, updateCommentBodySchema, updatePostBodySchema, viewerStateSchema, } from './domains/feed/feed.js';
37
+ export { attachedMediaSchema, authorParamsSchema, COMMENT_MAX_BODY_CHARS, CONTENT_KIND_VALUES, castVoteBodySchema, castVoteResponseSchema, commentHelpfulResponseSchema, commentPageSchema, commentParamsSchema, commentsQuerySchema, contentKindSchema, contentParamsSchema, contentTargetParamsSchema, contentViewerStateSchema, createCommentBodySchema, createPollBodySchema, createPostBodySchema, createReportBodySchema, createReportResponseSchema, createRepostBodySchema, EDIT_WINDOW_MS, ENGAGEMENT_TARGET_KIND_VALUES, engagementTargetKindSchema, engagementTargetParamsSchema, FEED_SORT_VALUES, feedAuthorSchema, feedCommentSchema, feedImageSchema, feedItemParamsSchema, feedItemSchema, feedMediaSchema, feedPageSchema, feedPollSchema, feedPostSchema, feedQuerySchema, feedSortSchema, feedVideoSchema, linkPreviewSchema, MAX_TOPICS, POLL_MAX_DURATION_MS, POLL_MAX_OPTIONS, POLL_MIN_DURATION_MS, POLL_MIN_OPTIONS, POLL_OPTION_MAX_CHARS, POLL_QUESTION_MAX_CHARS, POST_MAX_BODY_CHARS, POST_MAX_MEDIA, pickableReactionSchema, pollOptionSchema, pollParamsSchema, productFeedbackItemSchema, productFeedbackPageSchema, REACTION_PICKER_VALUES, REACTION_TYPE_VALUES, REPORT_REASON_VALUES, REPORT_TARGET_KIND_VALUES, reactionCountsSchema, reactionsQuerySchema, reactionTypeSchema, reactorPageSchema, reactorSchema, reportReasonSchema, reportTargetKindSchema, repostedSourceSchema, setReactionBodySchema, setReactionResponseSchema, toggleBookmarkResponseSchema, updateCommentBodySchema, updatePostBodySchema, viewerStateSchema, } from './domains/feed/feed.js';
38
38
  // ─── Media: what an uploaded image becomes ──────────────────────────────────
39
39
  export { MEDIA_PURPOSE_VALUES, MEDIA_SIZES, MEDIA_UPLOAD_CONTENT_TYPES, MEDIA_VARIANTS_MAX, mediaImageSchema, mediaPurposeSchema, mediaUploadContentTypeSchema, mediaVariantSchema, uploadedMediaSchema, } from './domains/media/media.js';
40
40
  export { MEMBER_STATUS_VALUES, memberDetailSchema, memberDirectoryPageSchema, memberDirectoryQuerySchema, memberParamsSchema, memberStatusSchema, memberSummarySchema, suspendMemberBodySchema, suspensionSchema, } from './domains/members/members.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * founder-schema — Shared Zod schemas for Founder Circle\n *\n * The single source of truth consumed by founder-circle-backend, the web\n * client and the app client: every request, every response, every limit,\n * every error code. Publishing rule (TEAM.md 5a): the version only ever moves\n * on `dev`, never on a feat branch.\n *\n * @module founder-schema\n */\n\n// ─── Access: roles, permissions (CASL), the MPIN and the active role ────────\nexport {\n type ChangeMpinBody,\n changeMpinBodySchema,\n type MeAccessResponse,\n MPIN_LENGTH,\n MPIN_LOCK_MS,\n MPIN_MAX_ATTEMPTS,\n meAccessResponseSchema,\n mpinSchema,\n type SetMpinBody,\n type SwitchRoleBody,\n setMpinBodySchema,\n switchRoleBodySchema,\n} from './access/access.js';\nexport {\n ACTION_VALUES,\n type Action,\n type AppAbility,\n actionSchema,\n type PackedRules,\n packedRulesSchema,\n SUBJECT_VALUES,\n type Subject,\n type SubjectFields,\n type SubjectInstance,\n subjectSchema,\n} from './access/permissions.js';\nexport {\n ACTIVE_ROLE_TTL_MS,\n canGrantRole,\n isPlatformRole,\n MEMBER_ROLE,\n PLATFORM_ROLE_VALUES,\n type PlatformRole,\n platformRoleSchema,\n ROLE_GRANTED_BY,\n ROLE_VALUES,\n type Role,\n roleSchema,\n} from './access/roles.js';\n// ─── Common helpers and enums ────────────────────────────────────────────────\nexport {\n type CoordinatesQuery,\n type CoordinatesQueryInput,\n chosenUsernameSchema,\n coordinatesQuerySchema,\n emptyStringToUndefined,\n type FounderLocation,\n GENDER_VALUES,\n type Gender,\n GOAL_VALUES,\n type Goal,\n genderSchema,\n goalSchema,\n type HttpUrl,\n httpUrlOnHosts,\n httpUrlSchema,\n INDUSTRY_VALUES,\n type Industry,\n industrySchema,\n isReservedUsername,\n isUrlOnHost,\n locationSchema,\n multiValueQuery,\n type ObjectIdString,\n objectIdSchema,\n optionalTrimmedString,\n type PaginationQuery,\n type PaginationQueryInput,\n type Phone,\n paginationQuerySchema,\n phoneSchema,\n RESERVED_USERNAMES,\n type SafeUrl,\n SKILL_VALUES,\n type Skill,\n STARTUP_STAGE_VALUES,\n type StartupStage,\n type SuggestedLocation,\n safeUrlSchema,\n skillSchema,\n startupStageSchema,\n suggestedLocationSchema,\n USERNAME_MAX,\n USERNAME_MIN,\n type Username,\n usernameSchema,\n YOUTUBE_HOSTS,\n youtubeVideoId,\n} from './core/common.js';\n// ─── Error codes ─────────────────────────────────────────────────────────────\nexport {\n API_ERROR_CODE,\n API_ERROR_CODE_VALUES,\n type ApiErrorCode,\n apiErrorCodeSchema,\n} from './core/errors.js';\n// ─── Limits: every length, size and count, by name ──────────────────────────\nexport {\n ABOUT_MAX,\n CHAT_PARTICIPANTS_MAX,\n CITY_MAX,\n CONTRIBUTION_LEADERBOARD_SIZE,\n CONTRIBUTION_PAIR_POINTS_MAX,\n CONTRIBUTION_RECENT_DAYS,\n COUNTRY_MAX,\n DISCOVER_FILTER_VALUES_MAX,\n DISCOVER_TEXT_MAX,\n DISPLAY_NAME_MAX,\n FOUNDED_YEAR_MIN,\n GOALS_MIN,\n HEADLINE_MAX,\n LINK_PREVIEW_DESCRIPTION_MAX,\n LINK_PREVIEW_TITLE_MAX,\n LINK_URL_MAX,\n MEDIA_ALT_MAX,\n MEDIA_MAX_INPUT_PIXELS,\n MEDIA_PENDING_MAX,\n MEDIA_PLACEHOLDER_MAX,\n MEDIA_UNATTACHED_TTL_HOURS,\n MEMBER_SEARCH_MAX,\n MODERATION_EXCERPT_MAX,\n MODERATION_NOTE_MAX,\n NOTIFICATION_EXCERPT_MAX,\n NOTIFICATION_RETENTION_DAYS,\n PAGE_SIZE_DEFAULT,\n PAGE_SIZE_MAX,\n PRODUCT_ASK_OPEN_DAYS,\n PRODUCT_CAPTION_MAX,\n PRODUCT_DESCRIPTION_MAX,\n PRODUCT_NAME_MAX,\n PRODUCT_SCREENSHOTS_MAX,\n PRODUCT_TAGLINE_MAX,\n PRODUCT_TEAM_SHOWN,\n PRODUCTS_OWNED_MAX,\n REPORT_NOTE_MAX,\n REVIEW_AVERAGE_MIN_COUNT,\n REVIEW_HELPFUL_POINTS_MAX,\n REVIEW_REPLY_MAX,\n REVIEW_TEXT_MAX,\n REVIEW_TEXT_MIN,\n REVIEWS_REWARDED_PER_DAY,\n SAVED_REPLIES_MAX,\n SAVED_REPLY_BODY_MAX,\n SAVED_REPLY_TITLE_MAX,\n SKILLS_MAX,\n STATE_MAX,\n SUSPENSION_REASON_MAX,\n SUSPENSION_REASON_MIN,\n TEAM_SIZE_MAX,\n TEAM_SIZE_MIN,\n TICKET_MESSAGE_MAX,\n TICKET_MESSAGES_MAX,\n TICKET_SUBJECT_MAX,\n TICKET_SUBJECT_MIN,\n UPLOAD_MAX_BYTES,\n VENTURE_NAME_MAX,\n VENTURE_TAGLINE_MAX,\n} from './core/limits.js';\n// ─── Response envelopes ──────────────────────────────────────────────────────\nexport {\n type ApiError,\n type ApiErrorDetails,\n apiErrorDetailsSchema,\n apiErrorSchema,\n type ErrorResponse,\n errorResponseSchema,\n type IdResponse,\n idResponseSchema,\n paginatedSchema,\n successResponseSchema,\n} from './core/responses.js';\n// ─── Validation: message keys and the wire shape of a failure ───────────────\nexport {\n REQUEST_PART_VALUES,\n type RequestPart,\n requestPartSchema,\n toValidationIssues,\n VALIDATION_MESSAGE,\n type ValidationIssue,\n type ValidationMessageKey,\n validationIssueSchema,\n} from './core/validation.js';\n// ─── Account ─────────────────────────────────────────────────────────────────\nexport {\n type DeleteAccountResponse,\n deleteAccountResponseSchema,\n} from './domains/account/account.js';\nexport {\n AUDIT_ACTION_VALUES,\n type AuditAction,\n type AuditActor,\n type AuditEntry,\n type AuditPage,\n auditActionSchema,\n auditActorSchema,\n auditEntrySchema,\n auditPageSchema,\n} from './domains/audit/audit.js';\n// ─── Chat ────────────────────────────────────────────────────────────────────\nexport {\n CHAT_PRODUCT_ID,\n CHAT_SOCKET_REAUTH_SECONDS,\n CHAT_TOKEN_REFRESH_MARGIN_SECONDS,\n type ChatAuthToken,\n type ChatConfig,\n type ChatInvitation,\n type ChatInvitationBody,\n type ChatParticipant,\n type ChatParticipantsBody,\n type ChatParticipantsResponse,\n type ChatProductId,\n chatAuthTokenSchema,\n chatConfigSchema,\n chatInvitationBodySchema,\n chatInvitationSchema,\n chatParticipantSchema,\n chatParticipantsBodySchema,\n chatParticipantsResponseSchema,\n chatProductIdSchema,\n type OpenChatBody,\n type OpenChatResponse,\n openChatBodySchema,\n openChatResponseSchema,\n} from './domains/chat/chat.js';\n// ─── Contribution: the help a member gives, recognised ───────────────────────\nexport {\n CONTRIBUTION_AWARDED_KIND_VALUES,\n CONTRIBUTION_KIND_VALUES,\n CONTRIBUTION_POINTS,\n type ContributionEntry,\n type ContributionKind,\n type ContributionLeaderboard,\n type ContributionLeaderEntry,\n type ContributionPage,\n contributionEntrySchema,\n contributionKindSchema,\n contributionLeaderboardSchema,\n contributionLeaderEntrySchema,\n contributionPageSchema,\n} from './domains/contributions/contributions.js';\n// ─── Staff: overview, members, moderation, support, the team, the audit log ─\nexport { type Dashboard, dashboardSchema } from './domains/dashboard/dashboard.js';\n// ─── Discover ────────────────────────────────────────────────────────────────\nexport {\n type DiscoverFacets,\n type DiscoverPage,\n type DiscoverQuery,\n type DiscoverQueryInput,\n discoverFacetsSchema,\n discoverPageSchema,\n discoverQuerySchema,\n} from './domains/discover/discover.js';\n// ─── Feed: post, poll, comment, reaction ─────────────────────────────────────\nexport {\n type AttachedMedia,\n type AuthorParams,\n attachedMediaSchema,\n authorParamsSchema,\n type CastVoteBody,\n type CastVoteResponse,\n COMMENT_MAX_BODY_CHARS,\n CONTENT_KIND_VALUES,\n type CommentHelpfulResponse,\n type CommentPage,\n type CommentParams,\n type CommentsQuery,\n type CommentsQueryInput,\n type ContentKind,\n type ContentParams,\n type ContentTargetParams,\n type CreateCommentBody,\n type CreatePollBody,\n type CreatePostBody,\n type CreateReportBody,\n type CreateReportResponse,\n castVoteBodySchema,\n castVoteResponseSchema,\n commentHelpfulResponseSchema,\n commentPageSchema,\n commentParamsSchema,\n commentsQuerySchema,\n contentKindSchema,\n contentParamsSchema,\n contentTargetParamsSchema,\n createCommentBodySchema,\n createPollBodySchema,\n createPostBodySchema,\n createReportBodySchema,\n createReportResponseSchema,\n EDIT_WINDOW_MS,\n ENGAGEMENT_TARGET_KIND_VALUES,\n type EngagementTargetKind,\n type EngagementTargetParams,\n engagementTargetKindSchema,\n engagementTargetParamsSchema,\n FEED_SORT_VALUES,\n type FeedAuthor,\n type FeedComment,\n type FeedImage,\n type FeedItem,\n type FeedItemParams,\n type FeedMedia,\n type FeedPage,\n type FeedPoll,\n type FeedPost,\n type FeedQuery,\n type FeedQueryInput,\n type FeedSort,\n type FeedVideo,\n feedAuthorSchema,\n feedCommentSchema,\n feedImageSchema,\n feedItemParamsSchema,\n feedItemSchema,\n feedMediaSchema,\n feedPageSchema,\n feedPollSchema,\n feedPostSchema,\n feedQuerySchema,\n feedSortSchema,\n feedVideoSchema,\n type LinkPreview,\n linkPreviewSchema,\n MAX_TOPICS,\n POLL_MAX_DURATION_MS,\n POLL_MAX_OPTIONS,\n POLL_MIN_DURATION_MS,\n POLL_MIN_OPTIONS,\n POLL_OPTION_MAX_CHARS,\n POLL_QUESTION_MAX_CHARS,\n POST_MAX_BODY_CHARS,\n POST_MAX_MEDIA,\n type PollOption,\n type PollParams,\n type ProductFeedbackItem,\n type ProductFeedbackPage,\n pollOptionSchema,\n pollParamsSchema,\n productFeedbackItemSchema,\n productFeedbackPageSchema,\n REACTION_TYPE_VALUES,\n REPORT_REASON_VALUES,\n REPORT_TARGET_KIND_VALUES,\n type ReactionCounts,\n type ReactionType,\n type ReportReason,\n type ReportTargetKind,\n reactionCountsSchema,\n reactionTypeSchema,\n reportReasonSchema,\n reportTargetKindSchema,\n type SetReactionBody,\n type SetReactionResponse,\n setReactionBodySchema,\n setReactionResponseSchema,\n type ToggleBookmarkResponse,\n toggleBookmarkResponseSchema,\n type UpdateCommentBody,\n type UpdatePostBody,\n updateCommentBodySchema,\n updatePostBodySchema,\n type ViewerState,\n viewerStateSchema,\n} from './domains/feed/feed.js';\n// ─── Media: what an uploaded image becomes ──────────────────────────────────\nexport {\n MEDIA_PURPOSE_VALUES,\n MEDIA_SIZES,\n MEDIA_UPLOAD_CONTENT_TYPES,\n MEDIA_VARIANTS_MAX,\n type MediaImage,\n type MediaPurpose,\n type MediaUploadContentType,\n type MediaVariant,\n mediaImageSchema,\n mediaPurposeSchema,\n mediaUploadContentTypeSchema,\n mediaVariantSchema,\n type UploadedMedia,\n uploadedMediaSchema,\n} from './domains/media/media.js';\nexport {\n MEMBER_STATUS_VALUES,\n type MemberDetail,\n type MemberDirectoryPage,\n type MemberDirectoryQuery,\n type MemberDirectoryQueryInput,\n type MemberParams,\n type MemberStatus,\n type MemberSummary,\n memberDetailSchema,\n memberDirectoryPageSchema,\n memberDirectoryQuerySchema,\n memberParamsSchema,\n memberStatusSchema,\n memberSummarySchema,\n type SuspendMemberBody,\n type Suspension,\n suspendMemberBodySchema,\n suspensionSchema,\n} from './domains/members/members.js';\nexport {\n MODERATION_ACTION_VALUES,\n MODERATION_ACTIONS_BY_TARGET_KIND,\n MODERATION_CONTEXT_KIND_VALUES,\n MODERATION_STATE_VALUES,\n type ModerationAction,\n type ModerationContentQuery,\n type ModerationContentQueryInput,\n type ModerationContextKind,\n type ModerationDecisionBody,\n type ModerationItem,\n type ModerationPage,\n type ModerationState,\n type ModerationTargetParams,\n moderationActionSchema,\n moderationContentQuerySchema,\n moderationContextKindSchema,\n moderationDecisionBodySchema,\n moderationItemSchema,\n moderationPageSchema,\n moderationStateSchema,\n moderationTargetParamsSchema,\n} from './domains/moderation/moderation.js';\n// ─── Notifications: the bell ─────────────────────────────────────────────────\nexport {\n NOTIFICATION_KIND_VALUES,\n NOTIFICATION_PREFERENCE_OF,\n NOTIFICATION_PREFERENCE_VALUES,\n type Notification,\n type NotificationKind,\n type NotificationPage,\n type NotificationParams,\n type NotificationPreference,\n type NotificationPreferences,\n type NotificationUnreadCount,\n notificationKindSchema,\n notificationPageSchema,\n notificationParamsSchema,\n notificationPreferenceSchema,\n notificationPreferencesSchema,\n notificationSchema,\n notificationUnreadCountSchema,\n type UpdateNotificationPreferencesBody,\n updateNotificationPreferencesBodySchema,\n} from './domains/notifications/notifications.js';\n// ─── Onboarding ──────────────────────────────────────────────────────────────\nexport {\n ageInYears,\n BUSINESS_TYPE_VALUES,\n type BusinessType,\n businessTypeSchema,\n type CompleteOnboardingBody,\n type CompleteOnboardingBodyInput,\n type CompleteOnboardingResponse,\n type ContactLinks,\n completeOnboardingBodySchema,\n completeOnboardingResponseSchema,\n contactLinksSchema,\n type DateOfBirth,\n dateOfBirthSchema,\n EMPTY_ONBOARDING_VENTURE,\n FOUNDER_ONBOARDING_STEPS,\n GUIDELINES_VERSION,\n guidelinesVersionSchema,\n INTERESTS_MAX,\n INTERESTS_MIN,\n type IsoDate,\n isoDateSchema,\n MAX_AGE_YEARS,\n MIN_AGE_YEARS,\n ONBOARDING_DRAFT_KEYS,\n ONBOARDING_STEP_FIELDS,\n ONBOARDING_STEP_KEYS,\n ONBOARDING_STEP_SCHEMAS,\n ONBOARDING_TOTAL_STEPS,\n type OnboardingDraft,\n type OnboardingDraftKey,\n type OnboardingField,\n type OnboardingForm,\n type OnboardingProgress,\n type OnboardingProgressUpdate,\n type OnboardingStatus,\n type OnboardingStepBody,\n type OnboardingStepConfig,\n type OnboardingStepKey,\n onboardingDraftKeySchema,\n onboardingDraftSchema,\n onboardingFormSchema,\n onboardingProgressSchema,\n onboardingProgressUpdateSchema,\n onboardingStatusSchema,\n readOnboardingDraft,\n TEAM_SIZE_DIGITS_MAX,\n TOPIC_CATEGORIES,\n TOPIC_CATEGORY_KEYS,\n TOPIC_VALUES,\n type Topic,\n type TopicCategory,\n type TopicCategoryKey,\n topicSchema,\n} from './domains/onboarding/onboarding.js';\n// ─── Products: what founders build, and the help around it ───────────────────\nexport {\n type CreateProductBody,\n createProductBodySchema,\n type InviteProductMemberBody,\n inviteProductMemberBodySchema,\n type MyProducts,\n myProductsSchema,\n PRODUCT_ASK_VALUES,\n PRODUCT_INVITABLE_ROLE_VALUES,\n PRODUCT_LISTING_REQUIREMENT_VALUES,\n PRODUCT_PLATFORM_VALUES,\n PRODUCT_SORT_VALUES,\n PRODUCT_STAGE_VALUES,\n PRODUCT_STATUS_VALUES,\n PRODUCT_TEAM_ROLE_VALUES,\n PRODUCT_TOPICS_MAX,\n PRODUCT_VISIBILITY_VALUES,\n type Product,\n type ProductAsk,\n type ProductCard,\n type ProductCardPage,\n type ProductChip,\n type ProductDiscoverQuery,\n type ProductDiscoverQueryInput,\n type ProductFacets,\n type ProductFeedbackQuery,\n type ProductFeedbackQueryInput,\n type ProductInvitableRole,\n type ProductInvite,\n type ProductInvites,\n type ProductLinks,\n type ProductListingRequirement,\n type ProductMemberParams,\n type ProductParams,\n type ProductPendingInvite,\n type ProductPendingInvitePage,\n type ProductPlatform,\n type ProductRating,\n type ProductScreenshot,\n type ProductScreenshotInput,\n type ProductSort,\n type ProductStage,\n type ProductStatus,\n type ProductsByMemberParams,\n type ProductTeamMember,\n type ProductTeamPage,\n type ProductTeamRole,\n type ProductTester,\n type ProductTesterPage,\n type ProductUpvoteResponse,\n type ProductViewer,\n type ProductVisibility,\n productAskSchema,\n productCardPageSchema,\n productCardSchema,\n productCardViewerSchema,\n productChipSchema,\n productDiscoverQuerySchema,\n productFacetsSchema,\n productFeedbackQuerySchema,\n productInvitableRoleSchema,\n productInviteSchema,\n productInvitesSchema,\n productLinksSchema,\n productListingRequirementSchema,\n productMemberParamsSchema,\n productParamsSchema,\n productPendingInvitePageSchema,\n productPendingInviteSchema,\n productPlatformSchema,\n productRatingSchema,\n productSchema,\n productScreenshotInputSchema,\n productScreenshotSchema,\n productSortSchema,\n productStageSchema,\n productStatusSchema,\n productsByMemberParamsSchema,\n productTeamMemberSchema,\n productTeamPageSchema,\n productTeamRoleSchema,\n productTesterPageSchema,\n productTesterSchema,\n productUpvoteResponseSchema,\n productVideoUrlSchema,\n productViewerSchema,\n productVisibilitySchema,\n type SetProductLogoBody,\n type SetProductMemberRoleBody,\n type SetProductScreenshotsBody,\n type SetProductStatusBody,\n type SetProductVisibilityBody,\n setProductLogoBodySchema,\n setProductMemberRoleBodySchema,\n setProductScreenshotsBodySchema,\n setProductStatusBodySchema,\n setProductVisibilityBodySchema,\n type TransferProductBody,\n transferProductBodySchema,\n type UpdateProductBody,\n updateProductBodySchema,\n} from './domains/products/products.js';\n// ─── Founder profile ─────────────────────────────────────────────────────────\nexport {\n type ContributionSummary,\n contributionSummarySchema,\n type FounderCard,\n type FounderLinks,\n type FounderProfile,\n founderCardSchema,\n founderLinksSchema,\n founderProfileSchema,\n type MemberByline,\n memberBylineSchema,\n type SetAvatarBody,\n setAvatarBodySchema,\n type UpdateFounderProfileBody,\n type UpdateUsernameBody,\n type UsernameAvailability,\n updateFounderProfileBodySchema,\n updateUsernameBodySchema,\n usernameAvailabilitySchema,\n type Venture,\n ventureSchema,\n} from './domains/profile/founder-profile.js';\n// ─── Reviews: stars and words on a product ───────────────────────────────────\nexport {\n type CreateReviewBody,\n createReviewBodySchema,\n type ProductReview,\n productReviewSchema,\n REVIEW_SORT_VALUES,\n type ReviewHelpfulResponse,\n type ReviewPage,\n type ReviewParams,\n type ReviewRating,\n type ReviewReply,\n type ReviewReplyBody,\n type ReviewSort,\n type ReviewsQuery,\n type ReviewsQueryInput,\n type ReviewViewer,\n reviewHelpfulResponseSchema,\n reviewPageSchema,\n reviewParamsSchema,\n reviewRatingSchema,\n reviewReplyBodySchema,\n reviewReplySchema,\n reviewSortSchema,\n reviewsQuerySchema,\n reviewViewerSchema,\n type UpdateReviewBody,\n updateReviewBodySchema,\n} from './domains/reviews/reviews.js';\nexport {\n type CreateTicketBody,\n createTicketBodySchema,\n type ReplyTicketBody,\n replyTicketBodySchema,\n type SavedReply,\n type SavedReplyBody,\n type SavedReplyList,\n type SavedReplyParams,\n savedReplyBodySchema,\n savedReplyListSchema,\n savedReplyParamsSchema,\n savedReplySchema,\n TICKET_ASSIGNEE_FILTER_VALUES,\n TICKET_CATEGORY_VALUES,\n TICKET_SCOPE_VALUES,\n TICKET_STATUS_VALUES,\n type TicketAssigneeFilter,\n type TicketCategory,\n type TicketDetail,\n type TicketListQuery,\n type TicketListQueryInput,\n type TicketMessage,\n type TicketPage,\n type TicketParams,\n type TicketScope,\n type TicketStatus,\n type TicketSummary,\n ticketAssigneeFilterSchema,\n ticketCategorySchema,\n ticketDetailSchema,\n ticketListQuerySchema,\n ticketMessageSchema,\n ticketPageSchema,\n ticketParamsSchema,\n ticketScopeSchema,\n ticketStatusSchema,\n ticketSummarySchema,\n} from './domains/support/support.js';\nexport {\n type SetMemberRolesBody,\n type SetMemberRolesResponse,\n setMemberRolesBodySchema,\n setMemberRolesResponseSchema,\n type TeamMember,\n type TeamMemberParams,\n type TeamPage,\n teamMemberParamsSchema,\n teamMemberSchema,\n teamPageSchema,\n} from './domains/team/team.js';\n// ─── Uploads: asking for a slot, completing it, discarding it ───────────────\nexport {\n UPLOAD_CONTENT_TYPES,\n UPLOAD_KEY_EXTENSIONS,\n UPLOAD_KEY_MAX_CHARS,\n UPLOAD_KEY_PATTERN,\n type UploadKey,\n type UploadKeyExtension,\n type UploadParams,\n type UploadPresignBody,\n type UploadPresignResponse,\n uploadKeyExtensionSchema,\n uploadKeySchema,\n uploadParamsSchema,\n uploadPresignBodySchema,\n uploadPresignResponseSchema,\n} from './domains/uploads/uploads.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * founder-schema — Shared Zod schemas for Founder Circle\n *\n * The single source of truth consumed by founder-circle-backend, the web\n * client and the app client: every request, every response, every limit,\n * every error code. Publishing rule (TEAM.md 5a): the version only ever moves\n * on `dev`, never on a feat branch.\n *\n * @module founder-schema\n */\n\n// ─── Access: roles, permissions (CASL), the MPIN and the active role ────────\nexport {\n type ChangeMpinBody,\n changeMpinBodySchema,\n type MeAccessResponse,\n MPIN_LENGTH,\n MPIN_LOCK_MS,\n MPIN_MAX_ATTEMPTS,\n meAccessResponseSchema,\n mpinSchema,\n type SetMpinBody,\n type SwitchRoleBody,\n setMpinBodySchema,\n switchRoleBodySchema,\n} from './access/access.js';\nexport {\n ACTION_VALUES,\n type Action,\n type AppAbility,\n actionSchema,\n type PackedRules,\n packedRulesSchema,\n SUBJECT_VALUES,\n type Subject,\n type SubjectFields,\n type SubjectInstance,\n subjectSchema,\n} from './access/permissions.js';\nexport {\n ACTIVE_ROLE_TTL_MS,\n canGrantRole,\n isPlatformRole,\n MEMBER_ROLE,\n PLATFORM_ROLE_VALUES,\n type PlatformRole,\n platformRoleSchema,\n ROLE_GRANTED_BY,\n ROLE_VALUES,\n type Role,\n roleSchema,\n} from './access/roles.js';\n// ─── Common helpers and enums ────────────────────────────────────────────────\nexport {\n type CoordinatesQuery,\n type CoordinatesQueryInput,\n chosenUsernameSchema,\n coordinatesQuerySchema,\n emptyStringToUndefined,\n type FounderLocation,\n GENDER_VALUES,\n type Gender,\n GOAL_VALUES,\n type Goal,\n genderSchema,\n goalSchema,\n type HttpUrl,\n httpUrlOnHosts,\n httpUrlSchema,\n INDUSTRY_VALUES,\n type Industry,\n industrySchema,\n isReservedUsername,\n isUrlOnHost,\n locationSchema,\n multiValueQuery,\n type ObjectIdString,\n objectIdSchema,\n optionalTrimmedString,\n type PaginationQuery,\n type PaginationQueryInput,\n type Phone,\n paginationQuerySchema,\n phoneSchema,\n RESERVED_USERNAMES,\n type SafeUrl,\n SKILL_VALUES,\n type Skill,\n STARTUP_STAGE_VALUES,\n type StartupStage,\n type SuggestedLocation,\n safeUrlSchema,\n skillSchema,\n startupStageSchema,\n suggestedLocationSchema,\n USERNAME_MAX,\n USERNAME_MIN,\n type Username,\n usernameSchema,\n YOUTUBE_HOSTS,\n youtubeVideoId,\n} from './core/common.js';\n// ─── Error codes ─────────────────────────────────────────────────────────────\nexport {\n API_ERROR_CODE,\n API_ERROR_CODE_VALUES,\n type ApiErrorCode,\n apiErrorCodeSchema,\n} from './core/errors.js';\n// ─── Limits: every length, size and count, by name ──────────────────────────\nexport {\n ABOUT_MAX,\n CHAT_PARTICIPANTS_MAX,\n CITY_MAX,\n CONTRIBUTION_LEADERBOARD_SIZE,\n CONTRIBUTION_PAIR_POINTS_MAX,\n CONTRIBUTION_RECENT_DAYS,\n COUNTRY_MAX,\n DISCOVER_FILTER_VALUES_MAX,\n DISCOVER_TEXT_MAX,\n DISPLAY_NAME_MAX,\n FOUNDED_YEAR_MIN,\n GOALS_MIN,\n HEADLINE_MAX,\n LINK_PREVIEW_DESCRIPTION_MAX,\n LINK_PREVIEW_TITLE_MAX,\n LINK_URL_MAX,\n MEDIA_ALT_MAX,\n MEDIA_MAX_INPUT_PIXELS,\n MEDIA_PENDING_MAX,\n MEDIA_PLACEHOLDER_MAX,\n MEDIA_UNATTACHED_TTL_HOURS,\n MEMBER_SEARCH_MAX,\n MODERATION_EXCERPT_MAX,\n MODERATION_NOTE_MAX,\n NOTIFICATION_EXCERPT_MAX,\n NOTIFICATION_RETENTION_DAYS,\n PAGE_SIZE_DEFAULT,\n PAGE_SIZE_MAX,\n PRODUCT_ASK_OPEN_DAYS,\n PRODUCT_CAPTION_MAX,\n PRODUCT_DESCRIPTION_MAX,\n PRODUCT_NAME_MAX,\n PRODUCT_SCREENSHOTS_MAX,\n PRODUCT_TAGLINE_MAX,\n PRODUCT_TEAM_SHOWN,\n PRODUCTS_OWNED_MAX,\n REPORT_NOTE_MAX,\n REVIEW_AVERAGE_MIN_COUNT,\n REVIEW_HELPFUL_POINTS_MAX,\n REVIEW_REPLY_MAX,\n REVIEW_TEXT_MAX,\n REVIEW_TEXT_MIN,\n REVIEWS_REWARDED_PER_DAY,\n SAVED_REPLIES_MAX,\n SAVED_REPLY_BODY_MAX,\n SAVED_REPLY_TITLE_MAX,\n SKILLS_MAX,\n STATE_MAX,\n SUSPENSION_REASON_MAX,\n SUSPENSION_REASON_MIN,\n TEAM_SIZE_MAX,\n TEAM_SIZE_MIN,\n TICKET_MESSAGE_MAX,\n TICKET_MESSAGES_MAX,\n TICKET_SUBJECT_MAX,\n TICKET_SUBJECT_MIN,\n UPLOAD_MAX_BYTES,\n VENTURE_NAME_MAX,\n VENTURE_TAGLINE_MAX,\n} from './core/limits.js';\n// ─── Response envelopes ──────────────────────────────────────────────────────\nexport {\n type ApiError,\n type ApiErrorDetails,\n apiErrorDetailsSchema,\n apiErrorSchema,\n type ErrorResponse,\n errorResponseSchema,\n type IdResponse,\n idResponseSchema,\n paginatedSchema,\n successResponseSchema,\n} from './core/responses.js';\n// ─── Validation: message keys and the wire shape of a failure ───────────────\nexport {\n REQUEST_PART_VALUES,\n type RequestPart,\n requestPartSchema,\n toValidationIssues,\n VALIDATION_MESSAGE,\n type ValidationIssue,\n type ValidationMessageKey,\n validationIssueSchema,\n} from './core/validation.js';\n// ─── Account ─────────────────────────────────────────────────────────────────\nexport {\n type DeleteAccountResponse,\n deleteAccountResponseSchema,\n} from './domains/account/account.js';\nexport {\n AUDIT_ACTION_VALUES,\n type AuditAction,\n type AuditActor,\n type AuditEntry,\n type AuditPage,\n auditActionSchema,\n auditActorSchema,\n auditEntrySchema,\n auditPageSchema,\n} from './domains/audit/audit.js';\n// ─── Chat ────────────────────────────────────────────────────────────────────\nexport {\n CHAT_PRODUCT_ID,\n CHAT_SOCKET_REAUTH_SECONDS,\n CHAT_TOKEN_REFRESH_MARGIN_SECONDS,\n type ChatAuthToken,\n type ChatConfig,\n type ChatInvitation,\n type ChatInvitationBody,\n type ChatParticipant,\n type ChatParticipantsBody,\n type ChatParticipantsResponse,\n type ChatProductId,\n chatAuthTokenSchema,\n chatConfigSchema,\n chatInvitationBodySchema,\n chatInvitationSchema,\n chatParticipantSchema,\n chatParticipantsBodySchema,\n chatParticipantsResponseSchema,\n chatProductIdSchema,\n type OpenChatBody,\n type OpenChatResponse,\n openChatBodySchema,\n openChatResponseSchema,\n} from './domains/chat/chat.js';\n// ─── Contribution: the help a member gives, recognised ───────────────────────\nexport {\n CONTRIBUTION_AWARDED_KIND_VALUES,\n CONTRIBUTION_KIND_VALUES,\n CONTRIBUTION_POINTS,\n type ContributionEntry,\n type ContributionKind,\n type ContributionLeaderboard,\n type ContributionLeaderEntry,\n type ContributionPage,\n contributionEntrySchema,\n contributionKindSchema,\n contributionLeaderboardSchema,\n contributionLeaderEntrySchema,\n contributionPageSchema,\n} from './domains/contributions/contributions.js';\n// ─── Staff: overview, members, moderation, support, the team, the audit log ─\nexport { type Dashboard, dashboardSchema } from './domains/dashboard/dashboard.js';\n// ─── Discover ────────────────────────────────────────────────────────────────\nexport {\n type DiscoverFacets,\n type DiscoverPage,\n type DiscoverQuery,\n type DiscoverQueryInput,\n discoverFacetsSchema,\n discoverPageSchema,\n discoverQuerySchema,\n} from './domains/discover/discover.js';\n// ─── Feed: post, poll, comment, reaction ─────────────────────────────────────\nexport {\n type AttachedMedia,\n type AuthorParams,\n attachedMediaSchema,\n authorParamsSchema,\n type CastVoteBody,\n type CastVoteResponse,\n COMMENT_MAX_BODY_CHARS,\n CONTENT_KIND_VALUES,\n type CommentHelpfulResponse,\n type CommentPage,\n type CommentParams,\n type CommentsQuery,\n type CommentsQueryInput,\n type ContentKind,\n type ContentParams,\n type ContentTargetParams,\n type ContentViewerState,\n type CreateCommentBody,\n type CreatePollBody,\n type CreatePostBody,\n type CreateReportBody,\n type CreateReportResponse,\n type CreateRepostBody,\n castVoteBodySchema,\n castVoteResponseSchema,\n commentHelpfulResponseSchema,\n commentPageSchema,\n commentParamsSchema,\n commentsQuerySchema,\n contentKindSchema,\n contentParamsSchema,\n contentTargetParamsSchema,\n contentViewerStateSchema,\n createCommentBodySchema,\n createPollBodySchema,\n createPostBodySchema,\n createReportBodySchema,\n createReportResponseSchema,\n createRepostBodySchema,\n EDIT_WINDOW_MS,\n ENGAGEMENT_TARGET_KIND_VALUES,\n type EngagementTargetKind,\n type EngagementTargetParams,\n engagementTargetKindSchema,\n engagementTargetParamsSchema,\n FEED_SORT_VALUES,\n type FeedAuthor,\n type FeedComment,\n type FeedImage,\n type FeedItem,\n type FeedItemParams,\n type FeedMedia,\n type FeedPage,\n type FeedPoll,\n type FeedPost,\n type FeedQuery,\n type FeedQueryInput,\n type FeedSort,\n type FeedVideo,\n feedAuthorSchema,\n feedCommentSchema,\n feedImageSchema,\n feedItemParamsSchema,\n feedItemSchema,\n feedMediaSchema,\n feedPageSchema,\n feedPollSchema,\n feedPostSchema,\n feedQuerySchema,\n feedSortSchema,\n feedVideoSchema,\n type LinkPreview,\n linkPreviewSchema,\n MAX_TOPICS,\n type PickableReaction,\n POLL_MAX_DURATION_MS,\n POLL_MAX_OPTIONS,\n POLL_MIN_DURATION_MS,\n POLL_MIN_OPTIONS,\n POLL_OPTION_MAX_CHARS,\n POLL_QUESTION_MAX_CHARS,\n POST_MAX_BODY_CHARS,\n POST_MAX_MEDIA,\n type PollOption,\n type PollParams,\n type ProductFeedbackItem,\n type ProductFeedbackPage,\n pickableReactionSchema,\n pollOptionSchema,\n pollParamsSchema,\n productFeedbackItemSchema,\n productFeedbackPageSchema,\n REACTION_PICKER_VALUES,\n REACTION_TYPE_VALUES,\n REPORT_REASON_VALUES,\n REPORT_TARGET_KIND_VALUES,\n type ReactionCounts,\n type ReactionsQuery,\n type ReactionsQueryInput,\n type ReactionType,\n type Reactor,\n type ReactorPage,\n type ReportReason,\n type ReportTargetKind,\n type RepostedSource,\n reactionCountsSchema,\n reactionsQuerySchema,\n reactionTypeSchema,\n reactorPageSchema,\n reactorSchema,\n reportReasonSchema,\n reportTargetKindSchema,\n repostedSourceSchema,\n type SetReactionBody,\n type SetReactionResponse,\n setReactionBodySchema,\n setReactionResponseSchema,\n type ToggleBookmarkResponse,\n toggleBookmarkResponseSchema,\n type UpdateCommentBody,\n type UpdatePostBody,\n updateCommentBodySchema,\n updatePostBodySchema,\n type ViewerState,\n viewerStateSchema,\n} from './domains/feed/feed.js';\n// ─── Media: what an uploaded image becomes ──────────────────────────────────\nexport {\n MEDIA_PURPOSE_VALUES,\n MEDIA_SIZES,\n MEDIA_UPLOAD_CONTENT_TYPES,\n MEDIA_VARIANTS_MAX,\n type MediaImage,\n type MediaPurpose,\n type MediaUploadContentType,\n type MediaVariant,\n mediaImageSchema,\n mediaPurposeSchema,\n mediaUploadContentTypeSchema,\n mediaVariantSchema,\n type UploadedMedia,\n uploadedMediaSchema,\n} from './domains/media/media.js';\nexport {\n MEMBER_STATUS_VALUES,\n type MemberDetail,\n type MemberDirectoryPage,\n type MemberDirectoryQuery,\n type MemberDirectoryQueryInput,\n type MemberParams,\n type MemberStatus,\n type MemberSummary,\n memberDetailSchema,\n memberDirectoryPageSchema,\n memberDirectoryQuerySchema,\n memberParamsSchema,\n memberStatusSchema,\n memberSummarySchema,\n type SuspendMemberBody,\n type Suspension,\n suspendMemberBodySchema,\n suspensionSchema,\n} from './domains/members/members.js';\nexport {\n MODERATION_ACTION_VALUES,\n MODERATION_ACTIONS_BY_TARGET_KIND,\n MODERATION_CONTEXT_KIND_VALUES,\n MODERATION_STATE_VALUES,\n type ModerationAction,\n type ModerationContentQuery,\n type ModerationContentQueryInput,\n type ModerationContextKind,\n type ModerationDecisionBody,\n type ModerationItem,\n type ModerationPage,\n type ModerationState,\n type ModerationTargetParams,\n moderationActionSchema,\n moderationContentQuerySchema,\n moderationContextKindSchema,\n moderationDecisionBodySchema,\n moderationItemSchema,\n moderationPageSchema,\n moderationStateSchema,\n moderationTargetParamsSchema,\n} from './domains/moderation/moderation.js';\n// ─── Notifications: the bell ─────────────────────────────────────────────────\nexport {\n NOTIFICATION_KIND_VALUES,\n NOTIFICATION_PREFERENCE_OF,\n NOTIFICATION_PREFERENCE_VALUES,\n type Notification,\n type NotificationKind,\n type NotificationPage,\n type NotificationParams,\n type NotificationPreference,\n type NotificationPreferences,\n type NotificationUnreadCount,\n notificationKindSchema,\n notificationPageSchema,\n notificationParamsSchema,\n notificationPreferenceSchema,\n notificationPreferencesSchema,\n notificationSchema,\n notificationUnreadCountSchema,\n type UpdateNotificationPreferencesBody,\n updateNotificationPreferencesBodySchema,\n} from './domains/notifications/notifications.js';\n// ─── Onboarding ──────────────────────────────────────────────────────────────\nexport {\n ageInYears,\n BUSINESS_TYPE_VALUES,\n type BusinessType,\n businessTypeSchema,\n type CompleteOnboardingBody,\n type CompleteOnboardingBodyInput,\n type CompleteOnboardingResponse,\n type ContactLinks,\n completeOnboardingBodySchema,\n completeOnboardingResponseSchema,\n contactLinksSchema,\n type DateOfBirth,\n dateOfBirthSchema,\n EMPTY_ONBOARDING_VENTURE,\n FOUNDER_ONBOARDING_STEPS,\n GUIDELINES_VERSION,\n guidelinesVersionSchema,\n INTERESTS_MAX,\n INTERESTS_MIN,\n type IsoDate,\n isoDateSchema,\n MAX_AGE_YEARS,\n MIN_AGE_YEARS,\n ONBOARDING_DRAFT_KEYS,\n ONBOARDING_STEP_FIELDS,\n ONBOARDING_STEP_KEYS,\n ONBOARDING_STEP_SCHEMAS,\n ONBOARDING_TOTAL_STEPS,\n type OnboardingDraft,\n type OnboardingDraftKey,\n type OnboardingField,\n type OnboardingForm,\n type OnboardingProgress,\n type OnboardingProgressUpdate,\n type OnboardingStatus,\n type OnboardingStepBody,\n type OnboardingStepConfig,\n type OnboardingStepKey,\n onboardingDraftKeySchema,\n onboardingDraftSchema,\n onboardingFormSchema,\n onboardingProgressSchema,\n onboardingProgressUpdateSchema,\n onboardingStatusSchema,\n readOnboardingDraft,\n TEAM_SIZE_DIGITS_MAX,\n TOPIC_CATEGORIES,\n TOPIC_CATEGORY_KEYS,\n TOPIC_VALUES,\n type Topic,\n type TopicCategory,\n type TopicCategoryKey,\n topicSchema,\n} from './domains/onboarding/onboarding.js';\n// ─── Products: what founders build, and the help around it ───────────────────\nexport {\n type CreateProductBody,\n createProductBodySchema,\n type InviteProductMemberBody,\n inviteProductMemberBodySchema,\n type MyProducts,\n myProductsSchema,\n PRODUCT_ASK_VALUES,\n PRODUCT_INVITABLE_ROLE_VALUES,\n PRODUCT_LISTING_REQUIREMENT_VALUES,\n PRODUCT_PLATFORM_VALUES,\n PRODUCT_SORT_VALUES,\n PRODUCT_STAGE_VALUES,\n PRODUCT_STATUS_VALUES,\n PRODUCT_TEAM_ROLE_VALUES,\n PRODUCT_TOPICS_MAX,\n PRODUCT_VISIBILITY_VALUES,\n type Product,\n type ProductAsk,\n type ProductCard,\n type ProductCardPage,\n type ProductChip,\n type ProductDiscoverQuery,\n type ProductDiscoverQueryInput,\n type ProductFacets,\n type ProductFeedbackQuery,\n type ProductFeedbackQueryInput,\n type ProductInvitableRole,\n type ProductInvite,\n type ProductInvites,\n type ProductLinks,\n type ProductListingRequirement,\n type ProductMemberParams,\n type ProductParams,\n type ProductPendingInvite,\n type ProductPendingInvitePage,\n type ProductPlatform,\n type ProductRating,\n type ProductScreenshot,\n type ProductScreenshotInput,\n type ProductSort,\n type ProductStage,\n type ProductStatus,\n type ProductsByMemberParams,\n type ProductTeamMember,\n type ProductTeamPage,\n type ProductTeamRole,\n type ProductTester,\n type ProductTesterPage,\n type ProductUpvoteResponse,\n type ProductViewer,\n type ProductVisibility,\n productAskSchema,\n productCardPageSchema,\n productCardSchema,\n productCardViewerSchema,\n productChipSchema,\n productDiscoverQuerySchema,\n productFacetsSchema,\n productFeedbackQuerySchema,\n productInvitableRoleSchema,\n productInviteSchema,\n productInvitesSchema,\n productLinksSchema,\n productListingRequirementSchema,\n productMemberParamsSchema,\n productParamsSchema,\n productPendingInvitePageSchema,\n productPendingInviteSchema,\n productPlatformSchema,\n productRatingSchema,\n productSchema,\n productScreenshotInputSchema,\n productScreenshotSchema,\n productSortSchema,\n productStageSchema,\n productStatusSchema,\n productsByMemberParamsSchema,\n productTeamMemberSchema,\n productTeamPageSchema,\n productTeamRoleSchema,\n productTesterPageSchema,\n productTesterSchema,\n productUpvoteResponseSchema,\n productVideoUrlSchema,\n productViewerSchema,\n productVisibilitySchema,\n type SetProductLogoBody,\n type SetProductMemberRoleBody,\n type SetProductScreenshotsBody,\n type SetProductStatusBody,\n type SetProductVisibilityBody,\n setProductLogoBodySchema,\n setProductMemberRoleBodySchema,\n setProductScreenshotsBodySchema,\n setProductStatusBodySchema,\n setProductVisibilityBodySchema,\n type TransferProductBody,\n transferProductBodySchema,\n type UpdateProductBody,\n updateProductBodySchema,\n} from './domains/products/products.js';\n// ─── Founder profile ─────────────────────────────────────────────────────────\nexport {\n type ContributionSummary,\n contributionSummarySchema,\n type FounderCard,\n type FounderLinks,\n type FounderProfile,\n founderCardSchema,\n founderLinksSchema,\n founderProfileSchema,\n type MemberByline,\n memberBylineSchema,\n type SetAvatarBody,\n setAvatarBodySchema,\n type UpdateFounderProfileBody,\n type UpdateUsernameBody,\n type UsernameAvailability,\n updateFounderProfileBodySchema,\n updateUsernameBodySchema,\n usernameAvailabilitySchema,\n type Venture,\n ventureSchema,\n} from './domains/profile/founder-profile.js';\n// ─── Reviews: stars and words on a product ───────────────────────────────────\nexport {\n type CreateReviewBody,\n createReviewBodySchema,\n type ProductReview,\n productReviewSchema,\n REVIEW_SORT_VALUES,\n type ReviewHelpfulResponse,\n type ReviewPage,\n type ReviewParams,\n type ReviewRating,\n type ReviewReply,\n type ReviewReplyBody,\n type ReviewSort,\n type ReviewsQuery,\n type ReviewsQueryInput,\n type ReviewViewer,\n reviewHelpfulResponseSchema,\n reviewPageSchema,\n reviewParamsSchema,\n reviewRatingSchema,\n reviewReplyBodySchema,\n reviewReplySchema,\n reviewSortSchema,\n reviewsQuerySchema,\n reviewViewerSchema,\n type UpdateReviewBody,\n updateReviewBodySchema,\n} from './domains/reviews/reviews.js';\nexport {\n type CreateTicketBody,\n createTicketBodySchema,\n type ReplyTicketBody,\n replyTicketBodySchema,\n type SavedReply,\n type SavedReplyBody,\n type SavedReplyList,\n type SavedReplyParams,\n savedReplyBodySchema,\n savedReplyListSchema,\n savedReplyParamsSchema,\n savedReplySchema,\n TICKET_ASSIGNEE_FILTER_VALUES,\n TICKET_CATEGORY_VALUES,\n TICKET_SCOPE_VALUES,\n TICKET_STATUS_VALUES,\n type TicketAssigneeFilter,\n type TicketCategory,\n type TicketDetail,\n type TicketListQuery,\n type TicketListQueryInput,\n type TicketMessage,\n type TicketPage,\n type TicketParams,\n type TicketScope,\n type TicketStatus,\n type TicketSummary,\n ticketAssigneeFilterSchema,\n ticketCategorySchema,\n ticketDetailSchema,\n ticketListQuerySchema,\n ticketMessageSchema,\n ticketPageSchema,\n ticketParamsSchema,\n ticketScopeSchema,\n ticketStatusSchema,\n ticketSummarySchema,\n} from './domains/support/support.js';\nexport {\n type SetMemberRolesBody,\n type SetMemberRolesResponse,\n setMemberRolesBodySchema,\n setMemberRolesResponseSchema,\n type TeamMember,\n type TeamMemberParams,\n type TeamPage,\n teamMemberParamsSchema,\n teamMemberSchema,\n teamPageSchema,\n} from './domains/team/team.js';\n// ─── Uploads: asking for a slot, completing it, discarding it ───────────────\nexport {\n UPLOAD_CONTENT_TYPES,\n UPLOAD_KEY_EXTENSIONS,\n UPLOAD_KEY_MAX_CHARS,\n UPLOAD_KEY_PATTERN,\n type UploadKey,\n type UploadKeyExtension,\n type UploadParams,\n type UploadPresignBody,\n type UploadPresignResponse,\n uploadKeyExtensionSchema,\n uploadKeySchema,\n uploadParamsSchema,\n uploadPresignBodySchema,\n uploadPresignResponseSchema,\n} from './domains/uploads/uploads.js';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "founder-schema",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Shared Zod schemas for Founder Circle — single source of truth for API contracts, validation, and TypeScript types (backend + web client + app client).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",