@headless-lms/server 0.4.0 → 0.6.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.
Files changed (222) hide show
  1. package/README.md +14 -0
  2. package/dist/app/community-mail.d.ts +5 -3
  3. package/dist/app/community-mail.js +60 -12
  4. package/dist/app/community-mail.js.map +1 -1
  5. package/dist/app/container.d.ts +24 -3
  6. package/dist/app/container.js +102 -38
  7. package/dist/app/container.js.map +1 -1
  8. package/dist/app/notification-channels.js +1 -0
  9. package/dist/app/notification-channels.js.map +1 -1
  10. package/dist/app/notification-reads.d.ts +3 -3
  11. package/dist/app/notification-reads.js +7 -28
  12. package/dist/app/notification-reads.js.map +1 -1
  13. package/dist/app/platform.d.ts +14 -0
  14. package/dist/app/platform.js +14 -0
  15. package/dist/app/platform.js.map +1 -0
  16. package/dist/http/config.d.ts +4 -0
  17. package/dist/http/errors.js +9 -4
  18. package/dist/http/errors.js.map +1 -1
  19. package/dist/http/fastify.d.ts +8 -0
  20. package/dist/http/mcp/catalogue.d.ts +11 -9
  21. package/dist/http/mcp/catalogue.js +15 -21
  22. package/dist/http/mcp/catalogue.js.map +1 -1
  23. package/dist/http/mcp/challenge.js +3 -3
  24. package/dist/http/mcp/challenge.js.map +1 -1
  25. package/dist/http/mcp/route.js +7 -7
  26. package/dist/http/mcp/route.js.map +1 -1
  27. package/dist/http/mcp/test-support.d.ts +6 -5
  28. package/dist/http/mcp/test-support.js +32 -11
  29. package/dist/http/mcp/test-support.js.map +1 -1
  30. package/dist/http/mcp/tool.d.ts +3 -9
  31. package/dist/http/mcp/tool.js +14 -6
  32. package/dist/http/mcp/tool.js.map +1 -1
  33. package/dist/http/mcp/tools/automations.js +10 -20
  34. package/dist/http/mcp/tools/automations.js.map +1 -1
  35. package/dist/http/mcp/tools/catalog.js +25 -42
  36. package/dist/http/mcp/tools/catalog.js.map +1 -1
  37. package/dist/http/mcp/tools/comments.js +9 -19
  38. package/dist/http/mcp/tools/comments.js.map +1 -1
  39. package/dist/http/mcp/tools/communities.js +17 -32
  40. package/dist/http/mcp/tools/communities.js.map +1 -1
  41. package/dist/http/mcp/tools/community-members.js +9 -16
  42. package/dist/http/mcp/tools/community-members.js.map +1 -1
  43. package/dist/http/mcp/tools/community-moderation.js +13 -25
  44. package/dist/http/mcp/tools/community-moderation.js.map +1 -1
  45. package/dist/http/mcp/tools/courses.js +11 -21
  46. package/dist/http/mcp/tools/courses.js.map +1 -1
  47. package/dist/http/mcp/tools/events.d.ts +6 -0
  48. package/dist/http/mcp/tools/events.js +170 -0
  49. package/dist/http/mcp/tools/events.js.map +1 -0
  50. package/dist/http/mcp/tools/index.d.ts +5 -1
  51. package/dist/http/mcp/tools/index.js +45 -10
  52. package/dist/http/mcp/tools/index.js.map +1 -1
  53. package/dist/http/mcp/tools/organization.d.ts +6 -0
  54. package/dist/http/mcp/tools/organization.js +214 -0
  55. package/dist/http/mcp/tools/organization.js.map +1 -0
  56. package/dist/http/mcp/tools/people.js +30 -49
  57. package/dist/http/mcp/tools/people.js.map +1 -1
  58. package/dist/http/plugins/auth.js +37 -8
  59. package/dist/http/plugins/auth.js.map +1 -1
  60. package/dist/http/plugins/error-handler.d.ts +5 -1
  61. package/dist/http/plugins/error-handler.js +10 -2
  62. package/dist/http/plugins/error-handler.js.map +1 -1
  63. package/dist/http/plugins/openapi.js +18 -2
  64. package/dist/http/plugins/openapi.js.map +1 -1
  65. package/dist/http/plugins/platform.d.ts +7 -0
  66. package/dist/http/plugins/platform.js +13 -0
  67. package/dist/http/plugins/platform.js.map +1 -0
  68. package/dist/http/routes/access.js +54 -36
  69. package/dist/http/routes/access.js.map +1 -1
  70. package/dist/http/routes/activities.js +45 -45
  71. package/dist/http/routes/activities.js.map +1 -1
  72. package/dist/http/routes/assets.js +30 -65
  73. package/dist/http/routes/assets.js.map +1 -1
  74. package/dist/http/routes/automations.js +37 -42
  75. package/dist/http/routes/automations.js.map +1 -1
  76. package/dist/http/routes/bundles.js +33 -36
  77. package/dist/http/routes/bundles.js.map +1 -1
  78. package/dist/http/routes/communities.js +93 -145
  79. package/dist/http/routes/communities.js.map +1 -1
  80. package/dist/http/routes/community-moderation.js +83 -137
  81. package/dist/http/routes/community-moderation.js.map +1 -1
  82. package/dist/http/routes/course-analytics.js +32 -15
  83. package/dist/http/routes/course-analytics.js.map +1 -1
  84. package/dist/http/routes/courses.js +25 -32
  85. package/dist/http/routes/courses.js.map +1 -1
  86. package/dist/http/routes/dashboard.js +9 -9
  87. package/dist/http/routes/dashboard.js.map +1 -1
  88. package/dist/http/routes/discussion.js +21 -39
  89. package/dist/http/routes/discussion.js.map +1 -1
  90. package/dist/http/routes/downloads.js +41 -47
  91. package/dist/http/routes/downloads.js.map +1 -1
  92. package/dist/http/routes/entitlements.js +19 -23
  93. package/dist/http/routes/entitlements.js.map +1 -1
  94. package/dist/http/routes/events.d.ts +7 -0
  95. package/dist/http/routes/events.js +333 -0
  96. package/dist/http/routes/events.js.map +1 -0
  97. package/dist/http/routes/integrations.js +40 -73
  98. package/dist/http/routes/integrations.js.map +1 -1
  99. package/dist/http/routes/member/assets.js +10 -13
  100. package/dist/http/routes/member/assets.js.map +1 -1
  101. package/dist/http/routes/member/chats.js +170 -47
  102. package/dist/http/routes/member/chats.js.map +1 -1
  103. package/dist/http/routes/member/comments.js +65 -26
  104. package/dist/http/routes/member/comments.js.map +1 -1
  105. package/dist/http/routes/member/community.js +45 -52
  106. package/dist/http/routes/member/community.js.map +1 -1
  107. package/dist/http/routes/member/courses.js +12 -19
  108. package/dist/http/routes/member/courses.js.map +1 -1
  109. package/dist/http/routes/member/devices.js +9 -10
  110. package/dist/http/routes/member/devices.js.map +1 -1
  111. package/dist/http/routes/member/downloads.js +6 -9
  112. package/dist/http/routes/member/downloads.js.map +1 -1
  113. package/dist/http/routes/member/events.d.ts +7 -0
  114. package/dist/http/routes/member/events.js +386 -0
  115. package/dist/http/routes/member/events.js.map +1 -0
  116. package/dist/http/routes/member/files.js +88 -46
  117. package/dist/http/routes/member/files.js.map +1 -1
  118. package/dist/http/routes/member/index.js +2 -0
  119. package/dist/http/routes/member/index.js.map +1 -1
  120. package/dist/http/routes/member/notification-settings.js +15 -23
  121. package/dist/http/routes/member/notification-settings.js.map +1 -1
  122. package/dist/http/routes/member/notifications.js +16 -16
  123. package/dist/http/routes/member/notifications.js.map +1 -1
  124. package/dist/http/routes/member/org.js +5 -15
  125. package/dist/http/routes/member/org.js.map +1 -1
  126. package/dist/http/routes/member/posts.js +67 -68
  127. package/dist/http/routes/member/posts.js.map +1 -1
  128. package/dist/http/routes/member/profile.js +15 -6
  129. package/dist/http/routes/member/profile.js.map +1 -1
  130. package/dist/http/routes/member/progress.js +7 -11
  131. package/dist/http/routes/member/progress.js.map +1 -1
  132. package/dist/http/routes/organizations.js +319 -135
  133. package/dist/http/routes/organizations.js.map +1 -1
  134. package/dist/http/routes/platform.d.ts +7 -0
  135. package/dist/http/routes/platform.js +61 -0
  136. package/dist/http/routes/platform.js.map +1 -0
  137. package/dist/http/routes/students.js +12 -75
  138. package/dist/http/routes/students.js.map +1 -1
  139. package/dist/http/routes/webhooks.js +30 -39
  140. package/dist/http/routes/webhooks.js.map +1 -1
  141. package/dist/http/routes.js +9 -0
  142. package/dist/http/routes.js.map +1 -1
  143. package/dist/http/schemas/access.d.ts +346 -64
  144. package/dist/http/schemas/access.js +39 -12
  145. package/dist/http/schemas/access.js.map +1 -1
  146. package/dist/http/schemas/assets.d.ts +8 -3
  147. package/dist/http/schemas/assets.js +6 -5
  148. package/dist/http/schemas/assets.js.map +1 -1
  149. package/dist/http/schemas/automations.d.ts +4 -4
  150. package/dist/http/schemas/chats.d.ts +216 -37
  151. package/dist/http/schemas/chats.js +13 -4
  152. package/dist/http/schemas/chats.js.map +1 -1
  153. package/dist/http/schemas/community.d.ts +105 -31
  154. package/dist/http/schemas/community.js +25 -9
  155. package/dist/http/schemas/community.js.map +1 -1
  156. package/dist/http/schemas/course-analytics.d.ts +51 -1
  157. package/dist/http/schemas/course-analytics.js +19 -1
  158. package/dist/http/schemas/course-analytics.js.map +1 -1
  159. package/dist/http/schemas/dashboard.d.ts +1 -0
  160. package/dist/http/schemas/dashboard.js +2 -1
  161. package/dist/http/schemas/dashboard.js.map +1 -1
  162. package/dist/http/schemas/discussion.d.ts +22 -72
  163. package/dist/http/schemas/discussion.js +2 -2
  164. package/dist/http/schemas/discussion.js.map +1 -1
  165. package/dist/http/schemas/entitlements.d.ts +9 -12
  166. package/dist/http/schemas/entitlements.js +11 -5
  167. package/dist/http/schemas/entitlements.js.map +1 -1
  168. package/dist/http/schemas/events.d.ts +527 -0
  169. package/dist/http/schemas/events.js +64 -0
  170. package/dist/http/schemas/events.js.map +1 -0
  171. package/dist/http/schemas/files.d.ts +24 -5
  172. package/dist/http/schemas/files.js +15 -2
  173. package/dist/http/schemas/files.js.map +1 -1
  174. package/dist/http/schemas/index.d.ts +11 -9
  175. package/dist/http/schemas/index.js +11 -9
  176. package/dist/http/schemas/invites.d.ts +3 -47
  177. package/dist/http/schemas/invites.js +4 -25
  178. package/dist/http/schemas/invites.js.map +1 -1
  179. package/dist/http/schemas/member.d.ts +94 -7
  180. package/dist/http/schemas/member.js +7 -3
  181. package/dist/http/schemas/member.js.map +1 -1
  182. package/dist/http/schemas/members.d.ts +329 -65
  183. package/dist/http/schemas/members.js +67 -25
  184. package/dist/http/schemas/members.js.map +1 -1
  185. package/dist/http/schemas/notifications.d.ts +58 -54
  186. package/dist/http/schemas/platform.d.ts +38 -0
  187. package/dist/http/schemas/platform.js +19 -0
  188. package/dist/http/schemas/platform.js.map +1 -0
  189. package/dist/http/schemas/posts.d.ts +55 -35
  190. package/dist/http/schemas/posts.js +4 -4
  191. package/dist/http/schemas/posts.js.map +1 -1
  192. package/dist/http/schemas/profile.d.ts +1 -1
  193. package/dist/http/schemas/shared.d.ts +1 -11
  194. package/dist/http/schemas/shared.js +1 -10
  195. package/dist/http/schemas/shared.js.map +1 -1
  196. package/dist/http/schemas/students.d.ts +22 -0
  197. package/dist/http/schemas/students.js +3 -1
  198. package/dist/http/schemas/students.js.map +1 -1
  199. package/dist/http/scope.d.ts +9 -13
  200. package/dist/http/scope.js +29 -40
  201. package/dist/http/scope.js.map +1 -1
  202. package/dist/http/server.js +9 -0
  203. package/dist/http/server.js.map +1 -1
  204. package/dist/http/shutdown.d.ts +11 -0
  205. package/dist/http/shutdown.js +40 -0
  206. package/dist/http/shutdown.js.map +1 -0
  207. package/dist/http/sse.d.ts +19 -0
  208. package/dist/http/sse.js +104 -0
  209. package/dist/http/sse.js.map +1 -0
  210. package/dist/http/test-caller.d.ts +13 -0
  211. package/dist/http/test-caller.js +14 -0
  212. package/dist/http/test-caller.js.map +1 -0
  213. package/dist/http/well-known.js +2 -2
  214. package/dist/http/well-known.js.map +1 -1
  215. package/dist/index.d.ts +4 -2
  216. package/dist/index.js +4 -2
  217. package/dist/index.js.map +1 -1
  218. package/dist/packages/server/package.js +1 -1
  219. package/package.json +7 -6
  220. package/dist/http/routes/member/actor.d.ts +0 -14
  221. package/dist/http/routes/member/actor.js +0 -11
  222. package/dist/http/routes/member/actor.js.map +0 -1
@@ -11,7 +11,7 @@ declare const NotificationFilterQuery: z.ZodObject<{
11
11
  communityId: z.ZodOptional<z.ZodString>;
12
12
  includeOrg: z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
13
13
  category: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>>>;
14
- reason: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodType<"moderator" | "subject" | "post_author" | "comment_author" | "message_author" | "follower" | "thread_participant" | "mentioned" | "participant" | "space_member" | "community_member" | "course_member" | "staff", string, z.core.$ZodTypeInternals<"moderator" | "subject" | "post_author" | "comment_author" | "message_author" | "follower" | "thread_participant" | "mentioned" | "participant" | "space_member" | "community_member" | "course_member" | "staff", string>>>>>;
14
+ reason: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodType<"subject" | "post_author" | "comment_author" | "message_author" | "follower" | "thread_participant" | "mentioned" | "participant" | "space_member" | "community_member" | "course_member" | "event_member" | "moderator", string, z.core.$ZodTypeInternals<"subject" | "post_author" | "comment_author" | "message_author" | "follower" | "thread_participant" | "mentioned" | "participant" | "space_member" | "community_member" | "course_member" | "event_member" | "moderator", string>>>>>;
15
15
  type: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>>>;
16
16
  unread: z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
17
17
  }, z.core.$strict>;
@@ -25,7 +25,7 @@ declare const NotificationListQuery: z.ZodObject<{
25
25
  communityId: z.ZodOptional<z.ZodString>;
26
26
  includeOrg: z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
27
27
  category: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>>>;
28
- reason: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodType<"moderator" | "subject" | "post_author" | "comment_author" | "message_author" | "follower" | "thread_participant" | "mentioned" | "participant" | "space_member" | "community_member" | "course_member" | "staff", string, z.core.$ZodTypeInternals<"moderator" | "subject" | "post_author" | "comment_author" | "message_author" | "follower" | "thread_participant" | "mentioned" | "participant" | "space_member" | "community_member" | "course_member" | "staff", string>>>>>;
28
+ reason: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodType<"subject" | "post_author" | "comment_author" | "message_author" | "follower" | "thread_participant" | "mentioned" | "participant" | "space_member" | "community_member" | "course_member" | "event_member" | "moderator", string, z.core.$ZodTypeInternals<"subject" | "post_author" | "comment_author" | "message_author" | "follower" | "thread_participant" | "mentioned" | "participant" | "space_member" | "community_member" | "course_member" | "event_member" | "moderator", string>>>>>;
29
29
  type: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>, z.ZodArray<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>>>;
30
30
  unread: z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
31
31
  }, z.core.$strict>;
@@ -35,11 +35,10 @@ declare const NotificationView: z.ZodObject<{
35
35
  scope: z.ZodEnum<{
36
36
  org: "org";
37
37
  community: "community";
38
- space: "space";
39
38
  chat: "chat";
39
+ space: "space";
40
40
  }>;
41
41
  reasons: z.ZodArray<z.ZodEnum<{
42
- moderator: "moderator";
43
42
  subject: "subject";
44
43
  post_author: "post_author";
45
44
  comment_author: "comment_author";
@@ -51,10 +50,10 @@ declare const NotificationView: z.ZodObject<{
51
50
  space_member: "space_member";
52
51
  community_member: "community_member";
53
52
  course_member: "course_member";
54
- staff: "staff";
53
+ event_member: "event_member";
54
+ moderator: "moderator";
55
55
  }>>;
56
56
  matchedReason: z.ZodEnum<{
57
- moderator: "moderator";
58
57
  subject: "subject";
59
58
  post_author: "post_author";
60
59
  comment_author: "comment_author";
@@ -66,7 +65,8 @@ declare const NotificationView: z.ZodObject<{
66
65
  space_member: "space_member";
67
66
  community_member: "community_member";
68
67
  course_member: "course_member";
69
- staff: "staff";
68
+ event_member: "event_member";
69
+ moderator: "moderator";
70
70
  }>;
71
71
  category: z.ZodString;
72
72
  display: z.ZodRecord<z.ZodString, z.ZodType<import("@headless-lms/core/types").JsonValue, unknown, z.core.$ZodTypeInternals<import("@headless-lms/core/types").JsonValue, unknown>>>;
@@ -85,16 +85,17 @@ declare const NotificationView: z.ZodObject<{
85
85
  }, z.core.$strip>>;
86
86
  subject: z.ZodNullable<z.ZodObject<{
87
87
  type: z.ZodEnum<{
88
- message: "message";
89
- community: "community";
90
- space: "space";
91
- chat: "chat";
92
- post: "post";
93
- comment: "comment";
94
88
  course: "course";
95
89
  download: "download";
90
+ community: "community";
91
+ event: "event";
92
+ message: "message";
93
+ chat: "chat";
96
94
  bundle: "bundle";
97
95
  activity: "activity";
96
+ space: "space";
97
+ post: "post";
98
+ comment: "comment";
98
99
  }>;
99
100
  id: z.ZodString;
100
101
  title: z.ZodOptional<z.ZodString>;
@@ -102,16 +103,17 @@ declare const NotificationView: z.ZodObject<{
102
103
  }, z.core.$strip>>;
103
104
  parent: z.ZodNullable<z.ZodObject<{
104
105
  type: z.ZodEnum<{
105
- message: "message";
106
- community: "community";
107
- space: "space";
108
- chat: "chat";
109
- post: "post";
110
- comment: "comment";
111
106
  course: "course";
112
107
  download: "download";
108
+ community: "community";
109
+ event: "event";
110
+ message: "message";
111
+ chat: "chat";
113
112
  bundle: "bundle";
114
113
  activity: "activity";
114
+ space: "space";
115
+ post: "post";
116
+ comment: "comment";
115
117
  }>;
116
118
  id: z.ZodString;
117
119
  title: z.ZodOptional<z.ZodString>;
@@ -127,11 +129,10 @@ declare const NotificationsPage: z.ZodObject<{
127
129
  scope: z.ZodEnum<{
128
130
  org: "org";
129
131
  community: "community";
130
- space: "space";
131
132
  chat: "chat";
133
+ space: "space";
132
134
  }>;
133
135
  reasons: z.ZodArray<z.ZodEnum<{
134
- moderator: "moderator";
135
136
  subject: "subject";
136
137
  post_author: "post_author";
137
138
  comment_author: "comment_author";
@@ -143,10 +144,10 @@ declare const NotificationsPage: z.ZodObject<{
143
144
  space_member: "space_member";
144
145
  community_member: "community_member";
145
146
  course_member: "course_member";
146
- staff: "staff";
147
+ event_member: "event_member";
148
+ moderator: "moderator";
147
149
  }>>;
148
150
  matchedReason: z.ZodEnum<{
149
- moderator: "moderator";
150
151
  subject: "subject";
151
152
  post_author: "post_author";
152
153
  comment_author: "comment_author";
@@ -158,7 +159,8 @@ declare const NotificationsPage: z.ZodObject<{
158
159
  space_member: "space_member";
159
160
  community_member: "community_member";
160
161
  course_member: "course_member";
161
- staff: "staff";
162
+ event_member: "event_member";
163
+ moderator: "moderator";
162
164
  }>;
163
165
  category: z.ZodString;
164
166
  display: z.ZodRecord<z.ZodString, z.ZodType<import("@headless-lms/core/types").JsonValue, unknown, z.core.$ZodTypeInternals<import("@headless-lms/core/types").JsonValue, unknown>>>;
@@ -177,16 +179,17 @@ declare const NotificationsPage: z.ZodObject<{
177
179
  }, z.core.$strip>>;
178
180
  subject: z.ZodNullable<z.ZodObject<{
179
181
  type: z.ZodEnum<{
180
- message: "message";
181
- community: "community";
182
- space: "space";
183
- chat: "chat";
184
- post: "post";
185
- comment: "comment";
186
182
  course: "course";
187
183
  download: "download";
184
+ community: "community";
185
+ event: "event";
186
+ message: "message";
187
+ chat: "chat";
188
188
  bundle: "bundle";
189
189
  activity: "activity";
190
+ space: "space";
191
+ post: "post";
192
+ comment: "comment";
190
193
  }>;
191
194
  id: z.ZodString;
192
195
  title: z.ZodOptional<z.ZodString>;
@@ -194,16 +197,17 @@ declare const NotificationsPage: z.ZodObject<{
194
197
  }, z.core.$strip>>;
195
198
  parent: z.ZodNullable<z.ZodObject<{
196
199
  type: z.ZodEnum<{
197
- message: "message";
198
- community: "community";
199
- space: "space";
200
- chat: "chat";
201
- post: "post";
202
- comment: "comment";
203
200
  course: "course";
204
201
  download: "download";
202
+ community: "community";
203
+ event: "event";
204
+ message: "message";
205
+ chat: "chat";
205
206
  bundle: "bundle";
206
207
  activity: "activity";
208
+ space: "space";
209
+ post: "post";
210
+ comment: "comment";
207
211
  }>;
208
212
  id: z.ZodString;
209
213
  title: z.ZodOptional<z.ZodString>;
@@ -229,7 +233,6 @@ declare const NotificationCategory: z.ZodObject<{
229
233
  covers: z.ZodArray<z.ZodObject<{
230
234
  type: z.ZodString;
231
235
  reasons: z.ZodArray<z.ZodEnum<{
232
- moderator: "moderator";
233
236
  subject: "subject";
234
237
  post_author: "post_author";
235
238
  comment_author: "comment_author";
@@ -241,7 +244,8 @@ declare const NotificationCategory: z.ZodObject<{
241
244
  space_member: "space_member";
242
245
  community_member: "community_member";
243
246
  course_member: "course_member";
244
- staff: "staff";
247
+ event_member: "event_member";
248
+ moderator: "moderator";
245
249
  }>>;
246
250
  }, z.core.$strict>>;
247
251
  channels: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -257,7 +261,6 @@ declare const NotificationCategoryList: z.ZodObject<{
257
261
  covers: z.ZodArray<z.ZodObject<{
258
262
  type: z.ZodString;
259
263
  reasons: z.ZodArray<z.ZodEnum<{
260
- moderator: "moderator";
261
264
  subject: "subject";
262
265
  post_author: "post_author";
263
266
  comment_author: "comment_author";
@@ -269,7 +272,8 @@ declare const NotificationCategoryList: z.ZodObject<{
269
272
  space_member: "space_member";
270
273
  community_member: "community_member";
271
274
  course_member: "course_member";
272
- staff: "staff";
275
+ event_member: "event_member";
276
+ moderator: "moderator";
273
277
  }>>;
274
278
  }, z.core.$strict>>;
275
279
  channels: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -290,7 +294,6 @@ declare const ReplaceNotificationCategories: z.ZodObject<{
290
294
  covers: z.ZodArray<z.ZodObject<{
291
295
  type: z.ZodString;
292
296
  reasons: z.ZodArray<z.ZodEnum<{
293
- moderator: "moderator";
294
297
  subject: "subject";
295
298
  post_author: "post_author";
296
299
  comment_author: "comment_author";
@@ -302,7 +305,8 @@ declare const ReplaceNotificationCategories: z.ZodObject<{
302
305
  space_member: "space_member";
303
306
  community_member: "community_member";
304
307
  course_member: "course_member";
305
- staff: "staff";
308
+ event_member: "event_member";
309
+ moderator: "moderator";
306
310
  }>>;
307
311
  }, z.core.$strict>>;
308
312
  channels: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -319,7 +323,6 @@ declare const NotificationCategoryDefaults: z.ZodObject<{
319
323
  covers: z.ZodArray<z.ZodObject<{
320
324
  type: z.ZodString;
321
325
  reasons: z.ZodArray<z.ZodEnum<{
322
- moderator: "moderator";
323
326
  subject: "subject";
324
327
  post_author: "post_author";
325
328
  comment_author: "comment_author";
@@ -331,7 +334,8 @@ declare const NotificationCategoryDefaults: z.ZodObject<{
331
334
  space_member: "space_member";
332
335
  community_member: "community_member";
333
336
  course_member: "course_member";
334
- staff: "staff";
337
+ event_member: "event_member";
338
+ moderator: "moderator";
335
339
  }>>;
336
340
  }, z.core.$strict>>;
337
341
  channels: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -353,11 +357,10 @@ declare const NotificationTypeInfo: z.ZodObject<{
353
357
  scopes: z.ZodArray<z.ZodEnum<{
354
358
  org: "org";
355
359
  community: "community";
356
- space: "space";
357
360
  chat: "chat";
361
+ space: "space";
358
362
  }>>;
359
363
  reasons: z.ZodArray<z.ZodEnum<{
360
- moderator: "moderator";
361
364
  subject: "subject";
362
365
  post_author: "post_author";
363
366
  comment_author: "comment_author";
@@ -369,7 +372,8 @@ declare const NotificationTypeInfo: z.ZodObject<{
369
372
  space_member: "space_member";
370
373
  community_member: "community_member";
371
374
  course_member: "course_member";
372
- staff: "staff";
375
+ event_member: "event_member";
376
+ moderator: "moderator";
373
377
  }>>;
374
378
  }, z.core.$strip>;
375
379
  declare const NotificationTypeInfos: z.ZodArray<z.ZodObject<{
@@ -377,11 +381,10 @@ declare const NotificationTypeInfos: z.ZodArray<z.ZodObject<{
377
381
  scopes: z.ZodArray<z.ZodEnum<{
378
382
  org: "org";
379
383
  community: "community";
380
- space: "space";
381
384
  chat: "chat";
385
+ space: "space";
382
386
  }>>;
383
387
  reasons: z.ZodArray<z.ZodEnum<{
384
- moderator: "moderator";
385
388
  subject: "subject";
386
389
  post_author: "post_author";
387
390
  comment_author: "comment_author";
@@ -393,7 +396,8 @@ declare const NotificationTypeInfos: z.ZodArray<z.ZodObject<{
393
396
  space_member: "space_member";
394
397
  community_member: "community_member";
395
398
  course_member: "course_member";
396
- staff: "staff";
399
+ event_member: "event_member";
400
+ moderator: "moderator";
397
401
  }>>;
398
402
  }, z.core.$strip>>;
399
403
  declare const NotificationChannelInfos: z.ZodArray<z.ZodObject<{
@@ -420,8 +424,8 @@ declare const CommunityNotificationSettings: z.ZodObject<{
420
424
  source: z.ZodEnum<{
421
425
  default: "default";
422
426
  community: "community";
423
- space: "space";
424
427
  locked: "locked";
428
+ space: "space";
425
429
  spaceDefault: "spaceDefault";
426
430
  }>;
427
431
  locked: z.ZodBoolean;
@@ -436,8 +440,8 @@ declare const CommunityNotificationSettings: z.ZodObject<{
436
440
  source: z.ZodEnum<{
437
441
  default: "default";
438
442
  community: "community";
439
- space: "space";
440
443
  locked: "locked";
444
+ space: "space";
441
445
  spaceDefault: "spaceDefault";
442
446
  }>;
443
447
  locked: z.ZodBoolean;
@@ -456,8 +460,8 @@ declare const OrgNotificationSettings: z.ZodObject<{
456
460
  source: z.ZodEnum<{
457
461
  default: "default";
458
462
  community: "community";
459
- space: "space";
460
463
  locked: "locked";
464
+ space: "space";
461
465
  spaceDefault: "spaceDefault";
462
466
  }>;
463
467
  locked: z.ZodBoolean;
@@ -472,8 +476,8 @@ declare const OrgNotificationSettings: z.ZodObject<{
472
476
  source: z.ZodEnum<{
473
477
  default: "default";
474
478
  community: "community";
475
- space: "space";
476
479
  locked: "locked";
480
+ space: "space";
477
481
  spaceDefault: "spaceDefault";
478
482
  }>;
479
483
  locked: z.ZodBoolean;
@@ -0,0 +1,38 @@
1
+ import { z } from "zod";
2
+ //#region src/http/schemas/platform.d.ts
3
+ declare const CreatePlatformOrganization: z.ZodObject<{
4
+ name: z.ZodString;
5
+ slug: z.ZodString;
6
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
7
+ }, z.core.$strip>;
8
+ declare const PlatformOrganization: z.ZodObject<{
9
+ organization: z.ZodObject<{
10
+ id: z.ZodString;
11
+ name: z.ZodString;
12
+ slug: z.ZodString;
13
+ createdAt: z.ZodString;
14
+ metadata: z.ZodRecord<z.ZodString, z.ZodString>;
15
+ }, z.core.$strip>;
16
+ apiKey: z.ZodObject<{
17
+ id: z.ZodString;
18
+ name: z.ZodNullable<z.ZodString>;
19
+ start: z.ZodNullable<z.ZodString>;
20
+ role: z.ZodNullable<z.ZodObject<{
21
+ key: z.ZodString;
22
+ name: z.ZodNullable<z.ZodString>;
23
+ }, z.core.$strip>>;
24
+ createdAt: z.ZodCoercedDate<unknown>;
25
+ lastUsedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
26
+ expiresAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
27
+ key: z.ZodString;
28
+ }, z.core.$strip>;
29
+ }, z.core.$strip>;
30
+ declare const CreatePlatformApiKey: z.ZodObject<{
31
+ name: z.ZodString;
32
+ }, z.core.$strip>;
33
+ declare const PlatformOrgIdParam: z.ZodObject<{
34
+ orgId: z.ZodString;
35
+ }, z.core.$strip>;
36
+ //#endregion
37
+ export { CreatePlatformApiKey, CreatePlatformOrganization, PlatformOrgIdParam, PlatformOrganization };
38
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { Organization } from "./organizations.js";
2
+ import { ApiKeyName, CreatedApiKey } from "./access.js";
3
+ import { z } from "zod";
4
+ //#region src/http/schemas/platform.ts
5
+ const CreatePlatformOrganization = z.object({
6
+ name: z.string().trim().min(1).max(100),
7
+ slug: z.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Use lowercase letters, numbers, and hyphens only"),
8
+ metadata: z.record(z.string().min(1).max(40), z.string().max(500)).refine((metadata) => Object.keys(metadata).length <= 50, "At most 50 metadata keys").optional().describe("Key-value pairs stored with the organization")
9
+ });
10
+ const PlatformOrganization = z.object({
11
+ organization: Organization.extend({ metadata: z.record(z.string(), z.string()) }),
12
+ apiKey: CreatedApiKey
13
+ });
14
+ const CreatePlatformApiKey = z.object({ name: ApiKeyName });
15
+ const PlatformOrgIdParam = z.object({ orgId: z.string() });
16
+ //#endregion
17
+ export { CreatePlatformApiKey, CreatePlatformOrganization, PlatformOrgIdParam, PlatformOrganization };
18
+
19
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","names":[],"sources":["../../../src/http/schemas/platform.ts"],"sourcesContent":["import { z } from 'zod';\nimport { ApiKeyName, CreatedApiKey } from './access.js';\nimport { Organization } from './organizations.js';\n\nexport const CreatePlatformOrganization = z.object({\n name: z.string().trim().min(1).max(100),\n slug: z\n .string()\n .min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/, 'Use lowercase letters, numbers, and hyphens only'),\n metadata: z\n .record(z.string().min(1).max(40), z.string().max(500))\n .refine((metadata) => Object.keys(metadata).length <= 50, 'At most 50 metadata keys')\n .optional()\n .describe('Key-value pairs stored with the organization'),\n});\n\nexport const PlatformOrganization = z.object({\n organization: Organization.extend({ metadata: z.record(z.string(), z.string()) }),\n apiKey: CreatedApiKey,\n});\n\nexport const CreatePlatformApiKey = z.object({ name: ApiKeyName });\n\nexport const PlatformOrgIdParam = z.object({ orgId: z.string() });\n"],"mappings":";;;;AAIA,MAAa,6BAA6B,EAAE,OAAO;CACjD,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG;CACtC,MAAM,EACH,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,IAAI,EAAE,CAAC,CACP,MAAM,gBAAgB,kDAAkD;CAC3E,UAAU,EACP,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CACtD,QAAQ,aAAa,OAAO,KAAK,QAAQ,CAAC,CAAC,UAAU,IAAI,0BAA0B,CAAC,CACpF,SAAS,CAAC,CACV,SAAS,8CAA8C;AAC5D,CAAC;AAED,MAAa,uBAAuB,EAAE,OAAO;CAC3C,cAAc,aAAa,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;CAChF,QAAQ;AACV,CAAC;AAED,MAAa,uBAAuB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAa,qBAAqB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -27,6 +27,17 @@ declare const PostView: z.ZodObject<{
27
27
  createdAt: z.ZodCoercedDate<unknown>;
28
28
  updatedAt: z.ZodCoercedDate<unknown>;
29
29
  coverUrl: z.ZodNullable<z.ZodString>;
30
+ assets: z.ZodRecord<z.ZodString, z.ZodObject<{
31
+ url: z.ZodString;
32
+ kind: z.ZodEnum<{
33
+ image: "image";
34
+ video: "video";
35
+ audio: "audio";
36
+ document: "document";
37
+ }>;
38
+ filename: z.ZodString;
39
+ size: z.ZodNumber;
40
+ }, z.core.$strict>>;
30
41
  author: z.ZodObject<{
31
42
  id: z.ZodString;
32
43
  firstName: z.ZodNullable<z.ZodString>;
@@ -36,13 +47,8 @@ declare const PostView: z.ZodObject<{
36
47
  image: z.ZodNullable<z.ZodString>;
37
48
  imageAssetId: z.ZodNullable<z.ZodString>;
38
49
  imageUrl: z.ZodNullable<z.ZodString>;
39
- role: z.ZodEnum<{
40
- owner: "owner";
41
- admin: "admin";
42
- instructor: "instructor";
43
- moderator: "moderator";
44
- student: "student";
45
- }>;
50
+ team: z.ZodBoolean;
51
+ roleName: z.ZodNullable<z.ZodString>;
46
52
  }, z.core.$strict>;
47
53
  reactions: z.ZodRecord<z.ZodString, z.ZodNumber>;
48
54
  viewerReaction: z.ZodNullable<z.ZodString>;
@@ -103,6 +109,17 @@ declare const PostFeedPage: z.ZodObject<{
103
109
  createdAt: z.ZodCoercedDate<unknown>;
104
110
  updatedAt: z.ZodCoercedDate<unknown>;
105
111
  coverUrl: z.ZodNullable<z.ZodString>;
112
+ assets: z.ZodRecord<z.ZodString, z.ZodObject<{
113
+ url: z.ZodString;
114
+ kind: z.ZodEnum<{
115
+ image: "image";
116
+ video: "video";
117
+ audio: "audio";
118
+ document: "document";
119
+ }>;
120
+ filename: z.ZodString;
121
+ size: z.ZodNumber;
122
+ }, z.core.$strict>>;
106
123
  author: z.ZodObject<{
107
124
  id: z.ZodString;
108
125
  firstName: z.ZodNullable<z.ZodString>;
@@ -112,13 +129,8 @@ declare const PostFeedPage: z.ZodObject<{
112
129
  image: z.ZodNullable<z.ZodString>;
113
130
  imageAssetId: z.ZodNullable<z.ZodString>;
114
131
  imageUrl: z.ZodNullable<z.ZodString>;
115
- role: z.ZodEnum<{
116
- owner: "owner";
117
- admin: "admin";
118
- instructor: "instructor";
119
- moderator: "moderator";
120
- student: "student";
121
- }>;
132
+ team: z.ZodBoolean;
133
+ roleName: z.ZodNullable<z.ZodString>;
122
134
  }, z.core.$strict>;
123
135
  reactions: z.ZodRecord<z.ZodString, z.ZodNumber>;
124
136
  viewerReaction: z.ZodNullable<z.ZodString>;
@@ -210,6 +222,17 @@ declare const SpaceQueue: z.ZodObject<{
210
222
  createdAt: z.ZodCoercedDate<unknown>;
211
223
  updatedAt: z.ZodCoercedDate<unknown>;
212
224
  coverUrl: z.ZodNullable<z.ZodString>;
225
+ assets: z.ZodRecord<z.ZodString, z.ZodObject<{
226
+ url: z.ZodString;
227
+ kind: z.ZodEnum<{
228
+ image: "image";
229
+ video: "video";
230
+ audio: "audio";
231
+ document: "document";
232
+ }>;
233
+ filename: z.ZodString;
234
+ size: z.ZodNumber;
235
+ }, z.core.$strict>>;
213
236
  author: z.ZodObject<{
214
237
  id: z.ZodString;
215
238
  firstName: z.ZodNullable<z.ZodString>;
@@ -219,13 +242,8 @@ declare const SpaceQueue: z.ZodObject<{
219
242
  image: z.ZodNullable<z.ZodString>;
220
243
  imageAssetId: z.ZodNullable<z.ZodString>;
221
244
  imageUrl: z.ZodNullable<z.ZodString>;
222
- role: z.ZodEnum<{
223
- owner: "owner";
224
- admin: "admin";
225
- instructor: "instructor";
226
- moderator: "moderator";
227
- student: "student";
228
- }>;
245
+ team: z.ZodBoolean;
246
+ roleName: z.ZodNullable<z.ZodString>;
229
247
  }, z.core.$strict>;
230
248
  reactions: z.ZodRecord<z.ZodString, z.ZodNumber>;
231
249
  viewerReaction: z.ZodNullable<z.ZodString>;
@@ -282,6 +300,18 @@ declare const SpaceQueue: z.ZodObject<{
282
300
  published: "published";
283
301
  removed: "removed";
284
302
  }>;
303
+ author: z.ZodObject<{
304
+ id: z.ZodString;
305
+ firstName: z.ZodNullable<z.ZodString>;
306
+ lastName: z.ZodNullable<z.ZodString>;
307
+ displayName: z.ZodNullable<z.ZodString>;
308
+ headline: z.ZodNullable<z.ZodString>;
309
+ image: z.ZodNullable<z.ZodString>;
310
+ imageAssetId: z.ZodNullable<z.ZodString>;
311
+ imageUrl: z.ZodNullable<z.ZodString>;
312
+ team: z.ZodBoolean;
313
+ roleName: z.ZodNullable<z.ZodString>;
314
+ }, z.core.$strict>;
285
315
  }, z.core.$strict>;
286
316
  }, z.core.$strict>>;
287
317
  }, z.core.$strip>;
@@ -301,13 +331,8 @@ declare const PostCommentsPage: z.ZodObject<{
301
331
  image: z.ZodNullable<z.ZodString>;
302
332
  imageAssetId: z.ZodNullable<z.ZodString>;
303
333
  imageUrl: z.ZodNullable<z.ZodString>;
304
- role: z.ZodEnum<{
305
- owner: "owner";
306
- admin: "admin";
307
- instructor: "instructor";
308
- moderator: "moderator";
309
- student: "student";
310
- }>;
334
+ team: z.ZodBoolean;
335
+ roleName: z.ZodNullable<z.ZodString>;
311
336
  }, z.core.$strict>;
312
337
  body: z.ZodNullable<z.ZodString>;
313
338
  status: z.ZodEnum<{
@@ -324,13 +349,8 @@ declare const PostCommentsPage: z.ZodObject<{
324
349
  image: z.ZodNullable<z.ZodString>;
325
350
  imageAssetId: z.ZodNullable<z.ZodString>;
326
351
  imageUrl: z.ZodNullable<z.ZodString>;
327
- role: z.ZodEnum<{
328
- owner: "owner";
329
- admin: "admin";
330
- instructor: "instructor";
331
- moderator: "moderator";
332
- student: "student";
333
- }>;
352
+ team: z.ZodBoolean;
353
+ roleName: z.ZodNullable<z.ZodString>;
334
354
  }, z.core.$strict>>;
335
355
  reactions: z.ZodRecord<z.ZodString, z.ZodNumber>;
336
356
  viewerReaction: z.ZodOptional<z.ZodString>;
@@ -1,7 +1,7 @@
1
1
  import { DateTimeInput, PageQuery, paginated } from "./shared.js";
2
2
  import { CommentView } from "./discussion.js";
3
3
  import { z } from "zod";
4
- import { boundedJsonSchema, flaggedCommentSchema, idSchema, postFlagResolutionSchema, postFlagSchema, postViewSchema } from "@headless-lms/core/schemas";
4
+ import { boundedJsonSchema, flaggedCommentViewSchema, idSchema, postFlagResolutionSchema, postFlagSchema, postViewSchema } from "@headless-lms/core/schemas";
5
5
  //#region src/http/schemas/posts.ts
6
6
  const PostView = postViewSchema;
7
7
  const PostFlag = postFlagSchema;
@@ -9,7 +9,7 @@ const PostFeedPage = paginated(PostView);
9
9
  const PostIdParam = z.object({ postId: z.string() });
10
10
  const FeedQuery = PageQuery.extend({ topicId: z.string().optional().describe("Only posts under this topic") }).strict();
11
11
  const PostTitle = z.string().trim().min(1).max(200);
12
- const PostBody = z.string().max(5e4);
12
+ const PostBody = z.string().max(5e4).describe("The post's text, in the installation's body format (plain text unless the installation sets one). Mention a member with `<@orgUserId>`.");
13
13
  const PostExtra = boundedJsonSchema(16 * 1024);
14
14
  const CreatePost = z.object({
15
15
  title: PostTitle,
@@ -21,7 +21,7 @@ const CreatePost = z.object({
21
21
  "draft",
22
22
  "submit",
23
23
  "schedule"
24
- ]).describe("`draft` keeps the post to yourself. `submit` publishes it, or holds it for review when the space requires review and you are not staff. `schedule` submits it at `scheduledAt`."),
24
+ ]).describe("`draft` keeps the post to yourself. `submit` publishes it, or holds it for review when the space requires review and you do not moderate the community. `schedule` submits it at `scheduledAt`."),
25
25
  scheduledAt: DateTimeInput.nullable().describe("When a scheduled post is submitted. Required, and in the future, when `mode` is `schedule`; ignored otherwise.")
26
26
  }).strict();
27
27
  const UpdatePost = z.object({
@@ -38,7 +38,7 @@ const ResolvePostFlags = z.object({ resolution: postFlagResolutionSchema.extract
38
38
  const SpaceQueue = z.object({
39
39
  pending: z.array(PostView),
40
40
  flags: z.array(PostFlag),
41
- commentFlags: z.array(flaggedCommentSchema)
41
+ commentFlags: z.array(flaggedCommentViewSchema)
42
42
  });
43
43
  const PostCommentsPage = paginated(CommentView);
44
44
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"posts.js","names":[],"sources":["../../../src/http/schemas/posts.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n boundedJsonSchema,\n flaggedCommentSchema,\n idSchema,\n postFlagResolutionSchema,\n postFlagSchema,\n postViewSchema,\n} from '@headless-lms/core/schemas';\nimport { CommentView } from './discussion.js';\nimport { DateTimeInput, PageQuery, paginated } from './shared.js';\n\nexport const PostView = postViewSchema;\nexport const PostFlag = postFlagSchema;\nexport const PostFeedPage = paginated(PostView);\nexport const PostIdParam = z.object({ postId: z.string() });\nexport const FeedQuery = PageQuery.extend({\n topicId: z.string().optional().describe('Only posts under this topic'),\n}).strict();\n\nconst PostTitle = z.string().trim().min(1).max(200);\nconst PostBody = z.string().max(50_000);\nconst PostExtra = boundedJsonSchema(16 * 1024);\n\nexport const CreatePost = z\n .object({\n title: PostTitle,\n body: PostBody,\n topicId: idSchema\n .nullable()\n .describe(\"One of the space's topics. Required when the space has topics, else null\"),\n extra: PostExtra.default({}),\n coverAssetId: idSchema\n .nullable()\n .describe('A finalized image you uploaded through `requestMemberUpload`'),\n mode: z\n .enum(['draft', 'submit', 'schedule'])\n .describe(\n '`draft` keeps the post to yourself. `submit` publishes it, or holds it for review when the space requires review and you are not staff. `schedule` submits it at `scheduledAt`.',\n ),\n scheduledAt: DateTimeInput.nullable().describe(\n 'When a scheduled post is submitted. Required, and in the future, when `mode` is `schedule`; ignored otherwise.',\n ),\n })\n .strict();\n\nexport const UpdatePost = z\n .object({\n title: PostTitle.optional(),\n body: PostBody.optional(),\n topicId: idSchema.nullable().optional(),\n extra: PostExtra.optional(),\n coverAssetId: idSchema.nullable().optional(),\n })\n .strict();\n\nexport const SchedulePost = z\n .object({\n scheduledAt: DateTimeInput.describe('When the post is submitted; must be in the future'),\n })\n .strict();\nexport const SetPostReactions = z\n .object({ enabled: z.boolean().describe('Whether readers may react to this post') })\n .strict();\nexport const FlagReason = z.object({ reason: z.string().trim().min(1).max(1_000) }).strict();\nexport const ResolvePostFlags = z\n .object({\n resolution: postFlagResolutionSchema\n .extract(['dismissed'])\n .describe(\n '`dismissed` closes the open flags and leaves the post up. Removing the post resolves its flags as `removed` instead.',\n ),\n })\n .strict();\n\nexport const SpaceQueue = z.object({\n pending: z.array(PostView),\n flags: z.array(PostFlag),\n commentFlags: z.array(flaggedCommentSchema),\n});\n\nexport const PostCommentsPage = paginated(CommentView);\n"],"mappings":";;;;;AAYA,MAAa,WAAW;AACxB,MAAa,WAAW;AACxB,MAAa,eAAe,UAAU,QAAQ;AAC9C,MAAa,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC1D,MAAa,YAAY,UAAU,OAAO,EACxC,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,6BAA6B,EACvE,CAAC,CAAC,CAAC,OAAO;AAEV,MAAM,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG;AAClD,MAAM,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,GAAM;AACtC,MAAM,YAAY,kBAAkB,KAAK,IAAI;AAE7C,MAAa,aAAa,EACvB,OAAO;CACN,OAAO;CACP,MAAM;CACN,SAAS,SACN,SAAS,CAAC,CACV,SAAS,0EAA0E;CACtF,OAAO,UAAU,QAAQ,CAAC,CAAC;CAC3B,cAAc,SACX,SAAS,CAAC,CACV,SAAS,8DAA8D;CAC1E,MAAM,EACH,KAAK;EAAC;EAAS;EAAU;CAAU,CAAC,CAAC,CACrC,SACC,iLACF;CACF,aAAa,cAAc,SAAS,CAAC,CAAC,SACpC,gHACF;AACF,CAAC,CAAC,CACD,OAAO;AAEV,MAAa,aAAa,EACvB,OAAO;CACN,OAAO,UAAU,SAAS;CAC1B,MAAM,SAAS,SAAS;CACxB,SAAS,SAAS,SAAS,CAAC,CAAC,SAAS;CACtC,OAAO,UAAU,SAAS;CAC1B,cAAc,SAAS,SAAS,CAAC,CAAC,SAAS;AAC7C,CAAC,CAAC,CACD,OAAO;AAEV,MAAa,eAAe,EACzB,OAAO,EACN,aAAa,cAAc,SAAS,mDAAmD,EACzF,CAAC,CAAC,CACD,OAAO;AACV,MAAa,mBAAmB,EAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,wCAAwC,EAAE,CAAC,CAAC,CACnF,OAAO;AACV,MAAa,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAK,EAAE,CAAC,CAAC,CAAC,OAAO;AAC3F,MAAa,mBAAmB,EAC7B,OAAO,EACN,YAAY,yBACT,QAAQ,CAAC,WAAW,CAAC,CAAC,CACtB,SACC,sHACF,EACJ,CAAC,CAAC,CACD,OAAO;AAEV,MAAa,aAAa,EAAE,OAAO;CACjC,SAAS,EAAE,MAAM,QAAQ;CACzB,OAAO,EAAE,MAAM,QAAQ;CACvB,cAAc,EAAE,MAAM,oBAAoB;AAC5C,CAAC;AAED,MAAa,mBAAmB,UAAU,WAAW"}
1
+ {"version":3,"file":"posts.js","names":[],"sources":["../../../src/http/schemas/posts.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n boundedJsonSchema,\n flaggedCommentViewSchema,\n idSchema,\n postFlagResolutionSchema,\n postFlagSchema,\n postViewSchema,\n} from '@headless-lms/core/schemas';\nimport { CommentView } from './discussion.js';\nimport { DateTimeInput, PageQuery, paginated } from './shared.js';\n\nexport const PostView = postViewSchema;\nexport const PostFlag = postFlagSchema;\nexport const PostFeedPage = paginated(PostView);\nexport const PostIdParam = z.object({ postId: z.string() });\nexport const FeedQuery = PageQuery.extend({\n topicId: z.string().optional().describe('Only posts under this topic'),\n}).strict();\n\nconst PostTitle = z.string().trim().min(1).max(200);\nconst PostBody = z\n .string()\n .max(50_000)\n .describe(\n \"The post's text, in the installation's body format (plain text unless the installation sets one). Mention a member with `<@orgUserId>`.\",\n );\nconst PostExtra = boundedJsonSchema(16 * 1024);\n\nexport const CreatePost = z\n .object({\n title: PostTitle,\n body: PostBody,\n topicId: idSchema\n .nullable()\n .describe(\"One of the space's topics. Required when the space has topics, else null\"),\n extra: PostExtra.default({}),\n coverAssetId: idSchema\n .nullable()\n .describe('A finalized image you uploaded through `requestMemberUpload`'),\n mode: z\n .enum(['draft', 'submit', 'schedule'])\n .describe(\n '`draft` keeps the post to yourself. `submit` publishes it, or holds it for review when the space requires review and you do not moderate the community. `schedule` submits it at `scheduledAt`.',\n ),\n scheduledAt: DateTimeInput.nullable().describe(\n 'When a scheduled post is submitted. Required, and in the future, when `mode` is `schedule`; ignored otherwise.',\n ),\n })\n .strict();\n\nexport const UpdatePost = z\n .object({\n title: PostTitle.optional(),\n body: PostBody.optional(),\n topicId: idSchema.nullable().optional(),\n extra: PostExtra.optional(),\n coverAssetId: idSchema.nullable().optional(),\n })\n .strict();\n\nexport const SchedulePost = z\n .object({\n scheduledAt: DateTimeInput.describe('When the post is submitted; must be in the future'),\n })\n .strict();\nexport const SetPostReactions = z\n .object({ enabled: z.boolean().describe('Whether readers may react to this post') })\n .strict();\nexport const FlagReason = z.object({ reason: z.string().trim().min(1).max(1_000) }).strict();\nexport const ResolvePostFlags = z\n .object({\n resolution: postFlagResolutionSchema\n .extract(['dismissed'])\n .describe(\n '`dismissed` closes the open flags and leaves the post up. Removing the post resolves its flags as `removed` instead.',\n ),\n })\n .strict();\n\nexport const SpaceQueue = z.object({\n pending: z.array(PostView),\n flags: z.array(PostFlag),\n commentFlags: z.array(flaggedCommentViewSchema),\n});\n\nexport const PostCommentsPage = paginated(CommentView);\n"],"mappings":";;;;;AAYA,MAAa,WAAW;AACxB,MAAa,WAAW;AACxB,MAAa,eAAe,UAAU,QAAQ;AAC9C,MAAa,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC1D,MAAa,YAAY,UAAU,OAAO,EACxC,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,6BAA6B,EACvE,CAAC,CAAC,CAAC,OAAO;AAEV,MAAM,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG;AAClD,MAAM,WAAW,EACd,OAAO,CAAC,CACR,IAAI,GAAM,CAAC,CACX,SACC,yIACF;AACF,MAAM,YAAY,kBAAkB,KAAK,IAAI;AAE7C,MAAa,aAAa,EACvB,OAAO;CACN,OAAO;CACP,MAAM;CACN,SAAS,SACN,SAAS,CAAC,CACV,SAAS,0EAA0E;CACtF,OAAO,UAAU,QAAQ,CAAC,CAAC;CAC3B,cAAc,SACX,SAAS,CAAC,CACV,SAAS,8DAA8D;CAC1E,MAAM,EACH,KAAK;EAAC;EAAS;EAAU;CAAU,CAAC,CAAC,CACrC,SACC,iMACF;CACF,aAAa,cAAc,SAAS,CAAC,CAAC,SACpC,gHACF;AACF,CAAC,CAAC,CACD,OAAO;AAEV,MAAa,aAAa,EACvB,OAAO;CACN,OAAO,UAAU,SAAS;CAC1B,MAAM,SAAS,SAAS;CACxB,SAAS,SAAS,SAAS,CAAC,CAAC,SAAS;CACtC,OAAO,UAAU,SAAS;CAC1B,cAAc,SAAS,SAAS,CAAC,CAAC,SAAS;AAC7C,CAAC,CAAC,CACD,OAAO;AAEV,MAAa,eAAe,EACzB,OAAO,EACN,aAAa,cAAc,SAAS,mDAAmD,EACzF,CAAC,CAAC,CACD,OAAO;AACV,MAAa,mBAAmB,EAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,wCAAwC,EAAE,CAAC,CAAC,CACnF,OAAO;AACV,MAAa,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAK,EAAE,CAAC,CAAC,CAAC,OAAO;AAC3F,MAAa,mBAAmB,EAC7B,OAAO,EACN,YAAY,yBACT,QAAQ,CAAC,WAAW,CAAC,CAAC,CACtB,SACC,sHACF,EACJ,CAAC,CAAC,CACD,OAAO;AAEV,MAAa,aAAa,EAAE,OAAO;CACjC,SAAS,EAAE,MAAM,QAAQ;CACzB,OAAO,EAAE,MAAM,QAAQ;CACvB,cAAc,EAAE,MAAM,wBAAwB;AAChD,CAAC;AAED,MAAa,mBAAmB,UAAU,WAAW"}
@@ -3,10 +3,10 @@ import { z } from "zod";
3
3
  declare const UserProfile: z.ZodObject<{
4
4
  createdAt: z.ZodCoercedDate<unknown>;
5
5
  updatedAt: z.ZodCoercedDate<unknown>;
6
- imageUrl: z.ZodNullable<z.ZodString>;
7
6
  displayName: z.ZodNullable<z.ZodString>;
8
7
  headline: z.ZodNullable<z.ZodString>;
9
8
  imageAssetId: z.ZodNullable<z.ZodString>;
9
+ imageUrl: z.ZodNullable<z.ZodString>;
10
10
  bio: z.ZodNullable<z.ZodString>;
11
11
  extra: z.ZodType<import("@headless-lms/core/types").JsonValue, unknown, z.core.$ZodTypeInternals<import("@headless-lms/core/types").JsonValue, unknown>>;
12
12
  userId: z.ZodString;
@@ -57,16 +57,6 @@ declare function paginated<T extends z.ZodTypeAny>(row: T): z.ZodObject<{
57
57
  page: z.ZodNumber;
58
58
  pageSize: z.ZodNumber;
59
59
  }, z.core.$strip>;
60
- /** All four org roles. `members.ts` exports a staff-only three-value `Role`;
61
- * this is the full set, used wherever a learner can also appear. */
62
- declare const OrgRole: z.ZodEnum<{
63
- owner: "owner";
64
- admin: "admin";
65
- instructor: "instructor";
66
- moderator: "moderator";
67
- student: "student";
68
- }>;
69
- type OrgRole = z.infer<typeof OrgRole>;
70
60
  /** Mirrors UserProfile in @headless-lms/core/types — keyed on the auth user id. */
71
61
  declare const UserProfileSchema: z.ZodObject<{
72
62
  id: z.ZodString;
@@ -85,5 +75,5 @@ declare const OrgUserProfileSchema: z.ZodObject<{
85
75
  }, z.core.$strip>;
86
76
  type OrgUserProfileSchema = z.infer<typeof OrgUserProfileSchema>;
87
77
  //#endregion
88
- export { DateTimeInput, ErrorBody, ListQuery, Matches, OrgRole, OrgUserProfileSchema, PageQuery, UnavailableErrorBody, UserProfileSchema, ValidationErrorBody, paginated, refusals };
78
+ export { DateTimeInput, ErrorBody, ListQuery, Matches, OrgUserProfileSchema, PageQuery, UnavailableErrorBody, UserProfileSchema, ValidationErrorBody, paginated, refusals };
89
79
  //# sourceMappingURL=shared.d.ts.map