@headless-lms/core 0.4.0 → 0.5.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 (249) hide show
  1. package/dist/assets/events.d.ts +27 -21
  2. package/dist/assets/file-urls.d.ts +11 -7
  3. package/dist/assets/file-urls.js +14 -4
  4. package/dist/assets/file-urls.js.map +1 -1
  5. package/dist/assets/index.d.ts +4 -4
  6. package/dist/assets/index.js +3 -3
  7. package/dist/assets/ports.d.ts +34 -15
  8. package/dist/assets/service.d.ts +30 -14
  9. package/dist/assets/service.js +230 -56
  10. package/dist/assets/service.js.map +1 -1
  11. package/dist/automations/actions.js.map +1 -1
  12. package/dist/automations/catalog.js +69 -4
  13. package/dist/automations/catalog.js.map +1 -1
  14. package/dist/automations/community-derivations.js +16 -16
  15. package/dist/automations/community-derivations.js.map +1 -1
  16. package/dist/automations/community-mail.d.ts +34 -4
  17. package/dist/automations/community-mail.js +32 -4
  18. package/dist/automations/community-mail.js.map +1 -1
  19. package/dist/automations/event-permissions.d.ts +12 -0
  20. package/dist/automations/event-permissions.js +38 -0
  21. package/dist/automations/event-permissions.js.map +1 -0
  22. package/dist/automations/index.d.ts +2 -1
  23. package/dist/automations/index.js +2 -1
  24. package/dist/automations/notifications/applicable.d.ts +8 -0
  25. package/dist/automations/notifications/applicable.js +12 -0
  26. package/dist/automations/notifications/applicable.js.map +1 -0
  27. package/dist/automations/notifications/debounce.js +1 -1
  28. package/dist/automations/notifications/debounce.js.map +1 -1
  29. package/dist/automations/notifications/defaults.js +33 -3
  30. package/dist/automations/notifications/defaults.js.map +1 -1
  31. package/dist/automations/notifications/processor.js +3 -3
  32. package/dist/automations/notifications/processor.js.map +1 -1
  33. package/dist/automations/notifications/rules/content.js +60 -3
  34. package/dist/automations/notifications/rules/content.js.map +1 -1
  35. package/dist/automations/notifications/rules/discussion.js +29 -29
  36. package/dist/automations/notifications/rules/discussion.js.map +1 -1
  37. package/dist/automations/notifications/rules/entitlements.js +36 -9
  38. package/dist/automations/notifications/rules/entitlements.js.map +1 -1
  39. package/dist/automations/notifications/rules/events.d.ts +9 -0
  40. package/dist/automations/notifications/rules/events.js +27 -0
  41. package/dist/automations/notifications/rules/events.js.map +1 -0
  42. package/dist/automations/notifications/rules/organizations.js +17 -10
  43. package/dist/automations/notifications/rules/organizations.js.map +1 -1
  44. package/dist/automations/notifications/rules/recipients.js +0 -1
  45. package/dist/automations/notifications/rules/recipients.js.map +1 -1
  46. package/dist/automations/notifications/service.d.ts +8 -6
  47. package/dist/automations/notifications/service.js +13 -13
  48. package/dist/automations/notifications/service.js.map +1 -1
  49. package/dist/automations/notifications/types.js +94 -7
  50. package/dist/automations/notifications/types.js.map +1 -1
  51. package/dist/automations/ports.d.ts +30 -31
  52. package/dist/automations/service.d.ts +20 -17
  53. package/dist/automations/service.js +91 -62
  54. package/dist/automations/service.js.map +1 -1
  55. package/dist/content/event-sight.d.ts +11 -0
  56. package/dist/content/event-sight.js +11 -0
  57. package/dist/content/event-sight.js.map +1 -0
  58. package/dist/content/events.d.ts +413 -72
  59. package/dist/content/events.js +34 -1
  60. package/dist/content/events.js.map +1 -1
  61. package/dist/content/index.d.ts +6 -4
  62. package/dist/content/index.js +3 -1
  63. package/dist/content/jobs.d.ts +16 -0
  64. package/dist/content/jobs.js +37 -0
  65. package/dist/content/jobs.js.map +1 -0
  66. package/dist/content/model.d.ts +2 -2
  67. package/dist/content/notification-categories.d.ts +5 -4
  68. package/dist/content/notification-categories.js +15 -6
  69. package/dist/content/notification-categories.js.map +1 -1
  70. package/dist/content/ports.d.ts +113 -68
  71. package/dist/content/service.d.ts +99 -67
  72. package/dist/content/service.js +680 -139
  73. package/dist/content/service.js.map +1 -1
  74. package/dist/content/titles.d.ts +6 -3
  75. package/dist/content/titles.js +37 -24
  76. package/dist/content/titles.js.map +1 -1
  77. package/dist/content/types.d.ts +2 -2
  78. package/dist/discussion/authors.d.ts +4 -2
  79. package/dist/discussion/authors.js +9 -5
  80. package/dist/discussion/authors.js.map +1 -1
  81. package/dist/discussion/chats.d.ts +56 -37
  82. package/dist/discussion/chats.js +393 -161
  83. package/dist/discussion/chats.js.map +1 -1
  84. package/dist/discussion/events.d.ts +77 -39
  85. package/dist/discussion/events.js +41 -3
  86. package/dist/discussion/events.js.map +1 -1
  87. package/dist/discussion/index.d.ts +8 -5
  88. package/dist/discussion/index.js +5 -3
  89. package/dist/discussion/live.d.ts +106 -0
  90. package/dist/discussion/live.js +642 -0
  91. package/dist/discussion/live.js.map +1 -0
  92. package/dist/discussion/mentions.js +2 -2
  93. package/dist/discussion/mentions.js.map +1 -1
  94. package/dist/discussion/ports.d.ts +182 -100
  95. package/dist/discussion/ports.js.map +1 -1
  96. package/dist/discussion/posts.d.ts +45 -39
  97. package/dist/discussion/posts.js +268 -154
  98. package/dist/discussion/posts.js.map +1 -1
  99. package/dist/discussion/rules.d.ts +18 -0
  100. package/dist/discussion/rules.js +22 -0
  101. package/dist/discussion/rules.js.map +1 -0
  102. package/dist/discussion/service.d.ts +37 -31
  103. package/dist/discussion/service.js +252 -188
  104. package/dist/discussion/service.js.map +1 -1
  105. package/dist/discussion/subscriptions.d.ts +8 -8
  106. package/dist/discussion/subscriptions.js +29 -13
  107. package/dist/discussion/subscriptions.js.map +1 -1
  108. package/dist/discussion/titles.d.ts +4 -2
  109. package/dist/discussion/titles.js +27 -13
  110. package/dist/discussion/titles.js.map +1 -1
  111. package/dist/entitlements/events.d.ts +20 -20
  112. package/dist/entitlements/index.d.ts +4 -4
  113. package/dist/entitlements/index.js +2 -2
  114. package/dist/entitlements/model.d.ts +2 -2
  115. package/dist/entitlements/ports.d.ts +65 -39
  116. package/dist/entitlements/rules.d.ts +3 -6
  117. package/dist/entitlements/rules.js +5 -10
  118. package/dist/entitlements/rules.js.map +1 -1
  119. package/dist/entitlements/service.d.ts +40 -28
  120. package/dist/entitlements/service.js +370 -163
  121. package/dist/entitlements/service.js.map +1 -1
  122. package/dist/identity/devices.d.ts +3 -3
  123. package/dist/identity/devices.js +7 -5
  124. package/dist/identity/devices.js.map +1 -1
  125. package/dist/identity/events.d.ts +2 -2
  126. package/dist/identity/index.d.ts +2 -2
  127. package/dist/identity/index.js +2 -2
  128. package/dist/identity/notification-settings.d.ts +1 -1
  129. package/dist/identity/notification-settings.js +3 -2
  130. package/dist/identity/notification-settings.js.map +1 -1
  131. package/dist/identity/ports.d.ts +7 -7
  132. package/dist/identity/service.d.ts +8 -7
  133. package/dist/identity/service.js +17 -13
  134. package/dist/identity/service.js.map +1 -1
  135. package/dist/integrations/events.d.ts +3 -3
  136. package/dist/integrations/ports.d.ts +9 -8
  137. package/dist/integrations/service.d.ts +9 -8
  138. package/dist/integrations/service.js +33 -16
  139. package/dist/integrations/service.js.map +1 -1
  140. package/dist/organizations/default-roles.d.ts +22 -0
  141. package/dist/organizations/default-roles.js +89 -0
  142. package/dist/organizations/default-roles.js.map +1 -0
  143. package/dist/organizations/effective-permissions.d.ts +45 -0
  144. package/dist/organizations/effective-permissions.js +113 -0
  145. package/dist/organizations/effective-permissions.js.map +1 -0
  146. package/dist/organizations/events.d.ts +320 -181
  147. package/dist/organizations/events.js +90 -18
  148. package/dist/organizations/events.js.map +1 -1
  149. package/dist/organizations/index.d.ts +14 -10
  150. package/dist/organizations/index.js +7 -3
  151. package/dist/organizations/members.d.ts +66 -8
  152. package/dist/organizations/members.js.map +1 -1
  153. package/dist/organizations/notification-catalog.d.ts +31 -0
  154. package/dist/organizations/notification-catalog.js +32 -0
  155. package/dist/organizations/notification-catalog.js.map +1 -0
  156. package/dist/organizations/notification-categories.d.ts +6 -4
  157. package/dist/organizations/notification-categories.js +25 -10
  158. package/dist/organizations/notification-categories.js.map +1 -1
  159. package/dist/organizations/org-roles.d.ts +33 -0
  160. package/dist/organizations/org-roles.js +49 -0
  161. package/dist/organizations/org-roles.js.map +1 -0
  162. package/dist/organizations/permissions.d.ts +311 -0
  163. package/dist/organizations/permissions.js +327 -0
  164. package/dist/organizations/permissions.js.map +1 -0
  165. package/dist/organizations/ports.d.ts +184 -65
  166. package/dist/organizations/service.d.ts +102 -35
  167. package/dist/organizations/service.js +1245 -328
  168. package/dist/organizations/service.js.map +1 -1
  169. package/dist/organizations/testing.d.ts +18 -0
  170. package/dist/organizations/testing.js +37 -0
  171. package/dist/organizations/testing.js.map +1 -0
  172. package/dist/organizations/types.d.ts +5 -16
  173. package/dist/progress/events.d.ts +14 -14
  174. package/dist/progress/index.d.ts +2 -2
  175. package/dist/progress/ports.d.ts +11 -3
  176. package/dist/progress/service.d.ts +6 -5
  177. package/dist/progress/service.js +23 -8
  178. package/dist/progress/service.js.map +1 -1
  179. package/dist/reporting/admin/index.d.ts +6 -4
  180. package/dist/reporting/admin/model.d.ts +36 -3
  181. package/dist/reporting/admin/ports.d.ts +39 -14
  182. package/dist/reporting/admin/service.d.ts +32 -11
  183. package/dist/reporting/admin/service.js +102 -18
  184. package/dist/reporting/admin/service.js.map +1 -1
  185. package/dist/reporting/events/index.d.ts +27 -0
  186. package/dist/reporting/events/index.js +20 -0
  187. package/dist/reporting/events/index.js.map +1 -0
  188. package/dist/reporting/member/calendar.d.ts +11 -0
  189. package/dist/reporting/member/calendar.js +75 -0
  190. package/dist/reporting/member/calendar.js.map +1 -0
  191. package/dist/reporting/member/index.d.ts +3 -2
  192. package/dist/reporting/member/model.d.ts +26 -5
  193. package/dist/reporting/member/ports.d.ts +48 -29
  194. package/dist/reporting/member/service.d.ts +56 -29
  195. package/dist/reporting/member/service.js +328 -113
  196. package/dist/reporting/member/service.js.map +1 -1
  197. package/dist/shared/actor.d.ts +22 -3
  198. package/dist/shared/errors.d.ts +2 -1
  199. package/dist/shared/errors.js +3 -1
  200. package/dist/shared/errors.js.map +1 -1
  201. package/dist/shared/id.d.ts +4 -0
  202. package/dist/shared/id.js +4 -0
  203. package/dist/shared/id.js.map +1 -1
  204. package/dist/shared/logger.d.ts +2 -1
  205. package/dist/shared/logger.js +10 -1
  206. package/dist/shared/logger.js.map +1 -1
  207. package/dist/shared/ports.d.ts +25 -5
  208. package/dist/types/content.d.ts +2 -2
  209. package/dist/types/discussion.d.ts +4 -5
  210. package/dist/types/email-templates.d.ts +22 -3
  211. package/dist/types/entitlements.d.ts +2 -2
  212. package/dist/types/identity.d.ts +13 -16
  213. package/dist/types/index.d.ts +9 -9
  214. package/dist/types/index.js +2 -1
  215. package/dist/types/notifications.d.ts +4 -4
  216. package/dist/types/organizations.d.ts +3 -2
  217. package/dist/types/ports.d.ts +8 -1
  218. package/dist/types/ports.js +7 -1
  219. package/dist/types/ports.js.map +1 -0
  220. package/dist/types/schemas/assets.d.ts +5 -5
  221. package/dist/types/schemas/assets.js +4 -3
  222. package/dist/types/schemas/assets.js.map +1 -1
  223. package/dist/types/schemas/content.d.ts +537 -13
  224. package/dist/types/schemas/content.js +201 -7
  225. package/dist/types/schemas/content.js.map +1 -1
  226. package/dist/types/schemas/discussion.d.ts +282 -59
  227. package/dist/types/schemas/discussion.js +77 -3
  228. package/dist/types/schemas/discussion.js.map +1 -1
  229. package/dist/types/schemas/entitlements.d.ts +14 -1
  230. package/dist/types/schemas/entitlements.js +11 -4
  231. package/dist/types/schemas/entitlements.js.map +1 -1
  232. package/dist/types/schemas/index.d.ts +5 -5
  233. package/dist/types/schemas/index.js +5 -5
  234. package/dist/types/schemas/notifications.d.ts +13 -12
  235. package/dist/types/schemas/notifications.js +3 -2
  236. package/dist/types/schemas/notifications.js.map +1 -1
  237. package/dist/types/schemas/organizations.d.ts +96 -60
  238. package/dist/types/schemas/organizations.js +78 -27
  239. package/dist/types/schemas/organizations.js.map +1 -1
  240. package/dist/types/schemas/progress.d.ts +3 -4
  241. package/dist/types/schemas/progress.js +0 -1
  242. package/dist/types/schemas/progress.js.map +1 -1
  243. package/package.json +1 -1
  244. package/dist/organizations/access-scopes.d.ts +0 -19
  245. package/dist/organizations/access-scopes.js +0 -89
  246. package/dist/organizations/access-scopes.js.map +0 -1
  247. package/dist/organizations/roles.d.ts +0 -19
  248. package/dist/organizations/roles.js +0 -82
  249. package/dist/organizations/roles.js.map +0 -1
@@ -1,12 +1,13 @@
1
1
  import { idSchema, jsonValueSchema } from "./shared.js";
2
- import { activityCommentsRuleSchema, commentSettingsSchema } from "./discussion.js";
3
2
  import { assetUrlsSchema } from "./assets.js";
3
+ import { activityCommentsRuleSchema, commentSettingsSchema } from "./discussion.js";
4
4
  import { z } from "zod";
5
5
  //#region src/types/schemas/content.ts
6
6
  const contentTypeSchema = z.enum([
7
7
  "course",
8
8
  "download",
9
- "community"
9
+ "community",
10
+ "event"
10
11
  ]);
11
12
  const courseStatusSchema = z.enum(["draft", "published"]);
12
13
  const courseSettingsSchema = z.object({
@@ -177,8 +178,8 @@ const communityStatusSchema = z.enum(["draft", "published"]);
177
178
  const dmSettingsSchema = z.object({
178
179
  enabled: z.boolean(),
179
180
  memberToMember: z.boolean(),
180
- memberToStaff: z.boolean(),
181
- staffToAnyone: z.boolean(),
181
+ memberToTeam: z.boolean(),
182
+ teamToAnyone: z.boolean(),
182
183
  firstMessageIsRequest: z.boolean(),
183
184
  groupChats: z.boolean(),
184
185
  groupSize: z.number().int().min(1)
@@ -186,8 +187,8 @@ const dmSettingsSchema = z.object({
186
187
  const dmSettingsDefaults = {
187
188
  enabled: true,
188
189
  memberToMember: true,
189
- memberToStaff: true,
190
- staffToAnyone: true,
190
+ memberToTeam: true,
191
+ teamToAnyone: true,
191
192
  firstMessageIsRequest: true,
192
193
  groupChats: true,
193
194
  groupSize: 8
@@ -317,7 +318,200 @@ const setSpaceTopicsInputSchema = z.object({ topics: z.array(z.object({
317
318
  name: z.string().trim().min(1).max(60)
318
319
  }).strict()).max(50).describe("The complete list, in order. A topic left out is deleted") }).strict();
319
320
  const addSpaceLinkInputSchema = z.object({ contentId: idSchema }).strict();
321
+ const timeZoneSchema = z.string().refine(isTimeZone, { message: "must be an IANA time zone" }).describe("An IANA time zone, such as `Europe/London`");
322
+ const httpUrlSchema = z.url({ protocol: /^https?$/ });
323
+ const eventStatusSchema = z.enum([
324
+ "draft",
325
+ "published",
326
+ "canceled"
327
+ ]);
328
+ const eventTypeSchema = z.enum(["public", "private"]);
329
+ const addressLineSchema = z.string().max(200).nullable();
330
+ const eventAddressSchema = z.object({
331
+ line1: addressLineSchema,
332
+ line2: addressLineSchema,
333
+ city: addressLineSchema,
334
+ region: addressLineSchema,
335
+ postalCode: addressLineSchema,
336
+ country: z.string().regex(/^[A-Z]{2}$/, "must be an ISO 3166-1 alpha-2 code").nullable().describe("An ISO 3166-1 alpha-2 code, such as `GB`")
337
+ }).strict();
338
+ const eventVenueSchema = z.object({
339
+ name: z.string().trim().min(1).max(200),
340
+ address: eventAddressSchema.nullable()
341
+ }).strict();
342
+ const eventOnlineSchema = z.object({
343
+ url: httpUrlSchema.describe("The meeting link, `http` or `https`"),
344
+ details: z.string().max(1e3).nullable().describe("Such as a passcode or a dial-in number")
345
+ }).strict();
346
+ const eventLocationSchema = z.object({
347
+ venue: eventVenueSchema.nullable().describe("Where the event takes place in person"),
348
+ online: eventOnlineSchema.nullable().describe("How to join online")
349
+ }).strict();
350
+ const eventLocationDefaults = {
351
+ venue: null,
352
+ online: null
353
+ };
354
+ const eventRecordingSchema = z.object({
355
+ url: httpUrlSchema.describe("Where the recording is, `http` or `https`"),
356
+ details: z.string().max(1e3).nullable().describe("Such as a passcode")
357
+ }).strict();
358
+ const eventSettingsSchema = z.object({
359
+ type: eventTypeSchema.describe("`public`: members register themselves. `private`: by grant only"),
360
+ capacity: z.number().int().min(1).nullable().describe("The most attendees the event takes; null means no limit"),
361
+ notifications: z.boolean().describe("When false, no notifications are sent for the event"),
362
+ replay: z.boolean().describe("When true, attendees get the recording after the end")
363
+ }).strict();
364
+ const eventSettingsDefaults = {
365
+ type: "public",
366
+ capacity: null,
367
+ notifications: true,
368
+ replay: true
369
+ };
370
+ const eventSchema = z.object({
371
+ orgId: idSchema,
372
+ id: idSchema,
373
+ type: z.literal("event"),
374
+ title: z.string(),
375
+ description: z.string(),
376
+ thumbnailAssetId: idSchema.nullable(),
377
+ status: eventStatusSchema,
378
+ startsAt: z.coerce.date(),
379
+ endsAt: z.coerce.date(),
380
+ timeZone: z.string(),
381
+ location: eventLocationSchema,
382
+ recording: eventRecordingSchema.nullable(),
383
+ settings: eventSettingsSchema,
384
+ createdAt: z.coerce.date(),
385
+ updatedAt: z.coerce.date()
386
+ }).strict();
387
+ const eventViewSchema = eventSchema.extend({ thumbnailUrl: z.string().nullable() }).strict();
388
+ const eventAssetSchema = z.object({
389
+ orgId: idSchema,
390
+ id: idSchema,
391
+ eventId: idSchema,
392
+ assetId: idSchema,
393
+ seq: z.number().int(),
394
+ displayName: z.string().nullable(),
395
+ createdAt: z.coerce.date(),
396
+ updatedAt: z.coerce.date()
397
+ }).strict();
398
+ const eventFileSchema = eventAssetSchema.extend({
399
+ filename: z.string(),
400
+ contentType: z.string(),
401
+ size: z.number().int().min(0),
402
+ url: z.string()
403
+ }).strict();
404
+ const eventSortSchema = z.enum([
405
+ "startsAt",
406
+ "-startsAt",
407
+ "title",
408
+ "-title"
409
+ ]);
410
+ const listEventsQuerySchema = z.object({
411
+ page: z.number().int().min(1),
412
+ pageSize: z.number().int().min(1),
413
+ search: z.string().optional(),
414
+ sort: eventSortSchema.optional(),
415
+ status: eventStatusSchema.optional(),
416
+ from: z.coerce.date().optional(),
417
+ to: z.coerce.date().optional()
418
+ }).strict();
419
+ const createEventInputSchema = z.object({
420
+ title: z.string().trim().min(1).max(120),
421
+ description: z.string().max(5e3).optional(),
422
+ startsAt: z.coerce.date(),
423
+ endsAt: z.coerce.date(),
424
+ timeZone: timeZoneSchema,
425
+ location: eventLocationSchema.optional(),
426
+ settings: eventSettingsSchema.partial().optional()
427
+ }).strict();
428
+ const updateEventInputSchema = z.object({
429
+ title: z.string().trim().min(1).max(120).optional(),
430
+ description: z.string().max(5e3).optional(),
431
+ startsAt: z.coerce.date().optional(),
432
+ endsAt: z.coerce.date().optional(),
433
+ timeZone: timeZoneSchema.optional(),
434
+ location: eventLocationSchema.optional(),
435
+ thumbnailAssetId: idSchema.nullable().optional(),
436
+ recording: eventRecordingSchema.nullable().optional(),
437
+ status: eventStatusSchema.extract(["draft", "published"]).optional(),
438
+ settings: eventSettingsSchema.partial().optional()
439
+ }).strict();
440
+ const addEventAssetInputSchema = z.object({
441
+ assetId: idSchema,
442
+ displayName: z.string().optional()
443
+ }).strict();
444
+ const reorderEventAssetsInputSchema = z.object({ assetIds: z.array(idSchema).max(500) }).strict();
445
+ const eventLeadSchema = z.enum(["1d", "1h"]);
446
+ const eventAttendeeSourceSchema = z.enum([
447
+ "self",
448
+ "manual",
449
+ "automation",
450
+ "bundle"
451
+ ]);
452
+ const eventAttendeeSchema = z.object({
453
+ orgUserId: idSchema,
454
+ name: z.string(),
455
+ avatarUrl: z.string().nullable(),
456
+ source: eventAttendeeSourceSchema.describe("`self`: registered themselves. `manual`: added by staff or an API client. `bundle`: attends only through a bundle"),
457
+ grantedAt: z.coerce.date()
458
+ }).strict();
459
+ const eventAttendeeFaceSchema = eventAttendeeSchema.pick({
460
+ orgUserId: true,
461
+ name: true,
462
+ avatarUrl: true
463
+ });
464
+ const memberEventViewerSchema = z.object({
465
+ attending: z.boolean().describe("The caller attends, directly or through a bundle"),
466
+ canRegister: z.boolean().describe("The caller may register now"),
467
+ canOpen: z.boolean().describe("The caller gets the location, files and recording"),
468
+ canLeave: z.boolean().describe("The caller holds a direct grant they may give up; false through a bundle only"),
469
+ canManageAttendees: z.boolean().describe("The caller may add and remove attendees"),
470
+ canAddAttendees: z.boolean().describe("The caller may add attendees now: they manage attendees and the event is open"),
471
+ canEdit: z.boolean(),
472
+ canCancel: z.boolean(),
473
+ canDelete: z.boolean()
474
+ }).strict();
475
+ const memberEventSchema = eventViewSchema.omit({
476
+ createdAt: true,
477
+ updatedAt: true,
478
+ location: true,
479
+ settings: true
480
+ }).extend({
481
+ location: eventLocationSchema.nullable().describe("Null when the caller sees the event only because it is published and public"),
482
+ settings: eventSettingsSchema.omit({ notifications: true }),
483
+ files: z.array(eventFileSchema).describe("Empty when the caller cannot open the event"),
484
+ attendeeCount: z.number().int().min(0),
485
+ attendees: z.array(eventAttendeeFaceSchema).describe("Up to 10 attendees, for the avatars"),
486
+ placesLeft: z.number().int().min(0).nullable().describe("Capacity less the attendees; null with no capacity"),
487
+ viewer: memberEventViewerSchema
488
+ }).strict();
489
+ const memberEventSummarySchema = memberEventSchema.omit({
490
+ description: true,
491
+ files: true
492
+ }).describe("An event as listed: the event read without its description and files");
493
+ const memberEventsQuerySchema = z.object({
494
+ page: z.number().int().min(1),
495
+ pageSize: z.number().int().min(1),
496
+ when: z.enum(["upcoming", "past"]).optional(),
497
+ attending: z.boolean().optional()
498
+ }).strict();
499
+ const eventAnalyticsSchema = z.object({
500
+ attendees: z.number().int().min(0).describe("Attending now, directly or through a bundle"),
501
+ capacity: z.number().int().nullable(),
502
+ bySource: z.object({
503
+ self: z.number().int().min(0),
504
+ manual: z.number().int().min(0),
505
+ automation: z.number().int().min(0),
506
+ bundle: z.number().int().min(0)
507
+ }).strict().describe("Attendees per source"),
508
+ revoked: z.number().int().min(0).describe("Direct grants that are now revoked"),
509
+ grantsOverTime: z.array(z.object({
510
+ date: z.string(),
511
+ count: z.number().int().min(0)
512
+ }).strict()).describe("Current direct grants by grant date (UTC), before the start")
513
+ }).strict();
320
514
  //#endregion
321
- export { activityAssetSchema, activitySchema, activitySettingsSchema, activityViewSchema, addDownloadAssetInputSchema, addSpaceLinkInputSchema, bundleItemSchema, bundleSchema, communitySchema, communitySettingsDefaults, communitySettingsSchema, communityStatusSchema, communityViewSchema, contentItemSchema, contentTypeSchema, courseSchema, courseSettingsDefaults, courseSettingsSchema, courseStatusSchema, courseViewSchema, createBundleInputSchema, createCommunityInputSchema, createCourseInputSchema, createDownloadInputSchema, createSpaceInputSchema, digestCadenceSchema, digestScheduleSchema, dmSettingsDefaults, dmSettingsSchema, downloadAssetSchema, downloadFileSchema, downloadSchema, downloadStatusSchema, downloadViewSchema, listBundlesQuerySchema, listCommunitiesQuerySchema, listCoursesQuerySchema, listDownloadsQuerySchema, moduleSchema, patchCommunitySettingsInputSchema, patchDmSettingsInputSchema, reorderDownloadAssetsInputSchema, saveActivityInputSchema, setSpaceTopicsInputSchema, spaceAccessRuleSchema, spaceDetailSchema, spaceLinkSchema, spaceSchema, spaceSettingsDefaults, spaceSettingsSchema, spaceTopicSchema, updateBundleInputSchema, updateCommunityInputSchema, updateCourseInputSchema, updateDownloadInputSchema, updateSpaceInputSchema };
515
+ export { activityAssetSchema, activitySchema, activitySettingsSchema, activityViewSchema, addDownloadAssetInputSchema, addEventAssetInputSchema, addSpaceLinkInputSchema, bundleItemSchema, bundleSchema, communitySchema, communitySettingsDefaults, communitySettingsSchema, communityStatusSchema, communityViewSchema, contentItemSchema, contentTypeSchema, courseSchema, courseSettingsDefaults, courseSettingsSchema, courseStatusSchema, courseViewSchema, createBundleInputSchema, createCommunityInputSchema, createCourseInputSchema, createDownloadInputSchema, createEventInputSchema, createSpaceInputSchema, digestCadenceSchema, digestScheduleSchema, dmSettingsDefaults, dmSettingsSchema, downloadAssetSchema, downloadFileSchema, downloadSchema, downloadStatusSchema, downloadViewSchema, eventAddressSchema, eventAnalyticsSchema, eventAssetSchema, eventAttendeeFaceSchema, eventAttendeeSchema, eventAttendeeSourceSchema, eventFileSchema, eventLeadSchema, eventLocationDefaults, eventLocationSchema, eventOnlineSchema, eventRecordingSchema, eventSchema, eventSettingsDefaults, eventSettingsSchema, eventSortSchema, eventStatusSchema, eventTypeSchema, eventVenueSchema, eventViewSchema, listBundlesQuerySchema, listCommunitiesQuerySchema, listCoursesQuerySchema, listDownloadsQuerySchema, listEventsQuerySchema, memberEventSchema, memberEventSummarySchema, memberEventViewerSchema, memberEventsQuerySchema, moduleSchema, patchCommunitySettingsInputSchema, patchDmSettingsInputSchema, reorderDownloadAssetsInputSchema, reorderEventAssetsInputSchema, saveActivityInputSchema, setSpaceTopicsInputSchema, spaceAccessRuleSchema, spaceDetailSchema, spaceLinkSchema, spaceSchema, spaceSettingsDefaults, spaceSettingsSchema, spaceTopicSchema, timeZoneSchema, updateBundleInputSchema, updateCommunityInputSchema, updateCourseInputSchema, updateDownloadInputSchema, updateEventInputSchema, updateSpaceInputSchema };
322
516
 
323
517
  //# sourceMappingURL=content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","names":[],"sources":["../../../src/types/schemas/content.ts"],"sourcesContent":["import { z } from 'zod';\nimport { assetUrlsSchema } from './assets.js';\nimport { activityCommentsRuleSchema, commentSettingsSchema } from './discussion.js';\nimport { idSchema, jsonValueSchema } from './shared.js';\n\nexport const contentTypeSchema = z.enum(['course', 'download', 'community']);\nexport type ContentType = z.infer<typeof contentTypeSchema>;\n\nexport const courseStatusSchema = z.enum(['draft', 'published']);\nexport type CourseStatus = z.infer<typeof courseStatusSchema>;\n\nexport const courseSettingsSchema = z\n .object({\n transcriptDownloads: z.boolean(),\n comments: commentSettingsSchema.optional(),\n })\n .strict();\nexport type CourseSettings = z.infer<typeof courseSettingsSchema>;\n\n/** Defaults for keys a stored settings row doesn't carry (or no row at all). */\nexport const courseSettingsDefaults: CourseSettings = { transcriptDownloads: false };\n\nexport const activitySettingsSchema = z\n .object({\n comments: activityCommentsRuleSchema.optional(),\n })\n .strict();\nexport type ActivitySettings = z.infer<typeof activitySettingsSchema>;\n\nexport const bundleSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n name: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Bundle = z.output<typeof bundleSchema>;\nexport type BundleInput = z.input<typeof bundleSchema>;\n\nexport const bundleItemSchema = z\n .object({\n orgId: idSchema,\n bundleId: idSchema,\n contentId: idSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type BundleItem = z.output<typeof bundleItemSchema>;\nexport type BundleItemInput = z.input<typeof bundleItemSchema>;\n\nexport const listBundlesQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: z.string().optional(),\n })\n .strict();\nexport type ListBundlesQuery = z.infer<typeof listBundlesQuerySchema>;\n\nexport const createBundleInputSchema = z\n .object({\n name: z.string(),\n /** Content to put in the bundle at creation — bundle and items land together. */\n contentIds: z.array(idSchema).optional(),\n })\n .strict();\nexport type CreateBundleInput = z.infer<typeof createBundleInputSchema>;\n\nexport const updateBundleInputSchema = z\n .object({\n name: z.string().optional(),\n })\n .strict();\nexport type UpdateBundleInput = z.infer<typeof updateBundleInputSchema>;\n\nexport const contentItemSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: contentTypeSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type ContentItem = z.output<typeof contentItemSchema>;\nexport type ContentItemInput = z.input<typeof contentItemSchema>;\n\nexport const courseSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: z.literal('course'),\n title: z.string(),\n slug: z.string(),\n description: z.string(),\n status: courseStatusSchema,\n category: z.string(),\n thumbnailAssetId: idSchema.nullable(),\n settings: courseSettingsSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Course = z.output<typeof courseSchema>;\n\nexport const courseViewSchema = courseSchema\n .extend({ thumbnailUrl: z.string().nullable() })\n .strict();\nexport type CourseView = z.output<typeof courseViewSchema>;\n\nexport const activitySchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n moduleId: idSchema,\n courseId: idSchema,\n seq: z.number().int().min(0),\n settings: jsonValueSchema.nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Activity = z.output<typeof activitySchema>;\nexport type ActivityInput = z.input<typeof activitySchema>;\n\nexport const activityViewSchema = activitySchema.extend({ assetUrls: assetUrlsSchema }).strict();\nexport type ActivityView = z.output<typeof activityViewSchema>;\n\nexport const moduleSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n courseId: idSchema,\n title: z.string(),\n seq: z.number().int().min(0),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Module = z.output<typeof moduleSchema>;\nexport type ModuleInput = z.input<typeof moduleSchema>;\n\nexport const activityAssetSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n activityId: idSchema,\n assetId: idSchema,\n seq: z.number().int(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type ActivityAsset = z.output<typeof activityAssetSchema>;\nexport type ActivityAssetInput = z.input<typeof activityAssetSchema>;\n\nexport const saveActivityInputSchema = z\n .object({\n settings: jsonValueSchema.optional(),\n assetIds: z.array(idSchema).optional(),\n })\n .strict();\nexport type SaveActivityInput = z.infer<typeof saveActivityInputSchema>;\n\nexport const listCoursesQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: z.string().optional(),\n status: courseStatusSchema.optional(),\n category: z.string().optional(),\n })\n .strict();\nexport type ListCoursesQuery = z.infer<typeof listCoursesQuerySchema>;\n\nexport const createCourseInputSchema = z\n .object({\n title: z.string(),\n description: z.string().optional(),\n category: z.string().optional(),\n })\n .strict();\nexport type CreateCourseInput = z.infer<typeof createCourseInputSchema>;\n\nexport const updateCourseInputSchema = z\n .object({\n title: z.string().optional(),\n description: z.string().optional(),\n category: z.string().optional(),\n status: courseStatusSchema.optional(),\n thumbnailAssetId: idSchema.nullable().optional(),\n })\n .strict();\nexport type UpdateCourseInput = z.infer<typeof updateCourseInputSchema>;\n\nexport const downloadStatusSchema = z.enum(['draft', 'published']);\nexport type DownloadStatus = z.infer<typeof downloadStatusSchema>;\n\nexport const downloadSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: z.literal('download'),\n title: z.string(),\n slug: z.string(),\n description: z.string(),\n status: downloadStatusSchema,\n category: z.string(),\n thumbnailAssetId: idSchema.nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Download = z.output<typeof downloadSchema>;\nexport type DownloadInput = z.input<typeof downloadSchema>;\n\nexport const downloadViewSchema = downloadSchema\n .extend({ thumbnailUrl: z.string().nullable() })\n .strict();\nexport type DownloadView = z.output<typeof downloadViewSchema>;\n\nexport const downloadAssetSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n downloadId: idSchema,\n assetId: idSchema,\n seq: z.number().int(),\n displayName: z.string().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type DownloadAsset = z.output<typeof downloadAssetSchema>;\nexport type DownloadAssetInput = z.input<typeof downloadAssetSchema>;\n\nexport const downloadFileSchema = downloadAssetSchema\n .extend({\n filename: z.string(),\n contentType: z.string(),\n size: z.number().int().min(0),\n url: z.string(),\n })\n .strict();\nexport type DownloadFile = z.output<typeof downloadFileSchema>;\n\nexport const listDownloadsQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: z.string().optional(),\n status: downloadStatusSchema.optional(),\n category: z.string().optional(),\n })\n .strict();\nexport type ListDownloadsQuery = z.infer<typeof listDownloadsQuerySchema>;\n\nexport const createDownloadInputSchema = z\n .object({\n title: z.string(),\n description: z.string().optional(),\n category: z.string().optional(),\n })\n .strict();\nexport type CreateDownloadInput = z.infer<typeof createDownloadInputSchema>;\n\nexport const updateDownloadInputSchema = z\n .object({\n title: z.string().optional(),\n description: z.string().optional(),\n category: z.string().optional(),\n status: downloadStatusSchema.optional(),\n thumbnailAssetId: idSchema.nullable().optional(),\n })\n .strict();\nexport type UpdateDownloadInput = z.infer<typeof updateDownloadInputSchema>;\n\nexport const addDownloadAssetInputSchema = z\n .object({\n assetId: idSchema,\n displayName: z.string().optional(),\n })\n .strict();\nexport type AddDownloadAssetInput = z.infer<typeof addDownloadAssetInputSchema>;\n\nexport const reorderDownloadAssetsInputSchema = z\n .object({\n assetIds: z.array(idSchema).max(500),\n })\n .strict();\nexport type ReorderDownloadAssetsInput = z.infer<typeof reorderDownloadAssetsInputSchema>;\n\nexport const communityStatusSchema = z.enum(['draft', 'published']);\nexport type CommunityStatus = z.infer<typeof communityStatusSchema>;\n\nexport const dmSettingsSchema = z\n .object({\n enabled: z.boolean(),\n memberToMember: z.boolean(),\n memberToStaff: z.boolean(),\n staffToAnyone: z.boolean(),\n firstMessageIsRequest: z.boolean(),\n groupChats: z.boolean(),\n groupSize: z.number().int().min(1),\n })\n .strict();\nexport type DmSettings = z.infer<typeof dmSettingsSchema>;\n\nexport const dmSettingsDefaults: DmSettings = {\n enabled: true,\n memberToMember: true,\n memberToStaff: true,\n staffToAnyone: true,\n firstMessageIsRequest: true,\n groupChats: true,\n groupSize: 8,\n};\n\nfunction isTimeZone(value: string): boolean {\n try {\n new Intl.DateTimeFormat('en-US', { timeZone: value });\n return true;\n } catch {\n return false;\n }\n}\n\nexport const digestCadenceSchema = z.enum(['daily', 'weekly']);\nexport type DigestCadence = z.infer<typeof digestCadenceSchema>;\n\nexport const digestScheduleSchema = z\n .object({\n cadence: digestCadenceSchema,\n weekday: z\n .number()\n .int()\n .min(0)\n .max(6)\n .describe('The day a weekly digest goes out, 0 is Sunday; a daily digest ignores it'),\n hour: z.number().int().min(0).max(23).describe('The hour of the day it goes out, 0–23'),\n timeZone: z\n .string()\n .refine(isTimeZone, { message: 'must be an IANA time zone' })\n .describe('The IANA time zone the weekday and hour are in, such as `Europe/Madrid`'),\n })\n .strict();\nexport type DigestSchedule = z.infer<typeof digestScheduleSchema>;\n\nexport const communitySettingsSchema = z\n .object({\n dm: dmSettingsSchema,\n digest: digestScheduleSchema.nullable(),\n })\n .strict();\nexport type CommunitySettings = z.infer<typeof communitySettingsSchema>;\n\nexport const communitySettingsDefaults: CommunitySettings = {\n dm: dmSettingsDefaults,\n digest: null,\n};\n\nexport const communitySchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: z.literal('community'),\n title: z.string(),\n slug: z.string(),\n description: z.string(),\n status: communityStatusSchema,\n thumbnailAssetId: idSchema.nullable(),\n settings: communitySettingsSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Community = z.output<typeof communitySchema>;\n\nexport const communityViewSchema = communitySchema\n .extend({ thumbnailUrl: z.string().nullable() })\n .strict();\nexport type CommunityView = z.output<typeof communityViewSchema>;\n\nexport const spaceAccessRuleSchema = z.enum(['all_members', 'by_request', 'by_invite']);\nexport type SpaceAccessRule = z.infer<typeof spaceAccessRuleSchema>;\n\nexport const spaceSettingsSchema = z\n .object({\n comments: z.boolean(),\n reactions: z.boolean(),\n requireReview: z.boolean(),\n })\n .strict();\nexport type SpaceSettings = z.infer<typeof spaceSettingsSchema>;\n\nexport const spaceSettingsDefaults: SpaceSettings = {\n comments: true,\n reactions: true,\n requireReview: false,\n};\n\nexport const spaceSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n communityId: idSchema,\n name: z.string(),\n description: z.string(),\n seq: z.number().int(),\n accessRule: spaceAccessRuleSchema,\n capacity: z.number().int().nullable(),\n settings: spaceSettingsSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Space = z.output<typeof spaceSchema>;\n\nexport const spaceTopicSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n spaceId: idSchema,\n name: z.string(),\n seq: z.number().int(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type SpaceTopic = z.output<typeof spaceTopicSchema>;\n\nexport const spaceLinkSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n spaceId: idSchema,\n contentId: idSchema,\n seq: z.number().int(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type SpaceLink = z.output<typeof spaceLinkSchema>;\n\nexport const spaceDetailSchema = spaceSchema.extend({\n topics: z.array(spaceTopicSchema),\n links: z.array(spaceLinkSchema),\n});\nexport type SpaceDetail = z.output<typeof spaceDetailSchema>;\n\nexport const listCommunitiesQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: z.string().optional(),\n status: communityStatusSchema.optional(),\n })\n .strict();\nexport type ListCommunitiesQuery = z.infer<typeof listCommunitiesQuerySchema>;\n\nexport const createCommunityInputSchema = z\n .object({\n title: z.string().trim().min(1).max(200),\n description: z.string().trim().max(5_000).optional(),\n })\n .strict();\nexport type CreateCommunityInput = z.infer<typeof createCommunityInputSchema>;\n\nexport const updateCommunityInputSchema = z\n .object({\n title: z.string().trim().min(1).max(200).optional(),\n description: z.string().trim().max(5_000).optional(),\n status: communityStatusSchema.optional(),\n thumbnailAssetId: idSchema.nullable().optional(),\n })\n .strict();\nexport type UpdateCommunityInput = z.infer<typeof updateCommunityInputSchema>;\n\nexport const patchDmSettingsInputSchema = dmSettingsSchema\n .extend({\n groupSize: z\n .number()\n .int()\n .min(3)\n .max(100)\n .describe('The most people a group chat may hold, its creator included'),\n })\n .partial();\nexport type PatchDmSettingsInput = z.infer<typeof patchDmSettingsInputSchema>;\n\nexport const patchCommunitySettingsInputSchema = patchDmSettingsInputSchema.extend({\n digest: digestScheduleSchema\n .nullable()\n .optional()\n .describe('When the community digest goes out; null stops it'),\n});\nexport type PatchCommunitySettingsInput = z.infer<typeof patchCommunitySettingsInputSchema>;\n\nexport const createSpaceInputSchema = z\n .object({\n name: z.string().trim().min(1).max(120),\n description: z.string().trim().max(2_000).optional(),\n accessRule: spaceAccessRuleSchema.optional(),\n capacity: z.number().int().min(0).nullable().optional(),\n settings: spaceSettingsSchema.partial().optional(),\n })\n .strict();\nexport type CreateSpaceInput = z.infer<typeof createSpaceInputSchema>;\n\nexport const updateSpaceInputSchema = z\n .object({\n name: z.string().trim().min(1).max(120).optional(),\n description: z.string().trim().max(2_000).optional(),\n accessRule: spaceAccessRuleSchema.optional(),\n capacity: z.number().int().min(0).nullable().optional(),\n settings: spaceSettingsSchema.partial().optional(),\n })\n .strict();\nexport type UpdateSpaceInput = z.infer<typeof updateSpaceInputSchema>;\n\nexport const setSpaceTopicsInputSchema = z\n .object({\n topics: z\n .array(\n z\n .object({\n id: idSchema.optional().describe('Keep an existing topic; omit to add a new one'),\n name: z.string().trim().min(1).max(60),\n })\n .strict(),\n )\n .max(50)\n .describe('The complete list, in order. A topic left out is deleted'),\n })\n .strict();\nexport type SetSpaceTopicsInput = z.infer<typeof setSpaceTopicsInputSchema>;\n\nexport const addSpaceLinkInputSchema = z\n .object({\n contentId: idSchema,\n })\n .strict();\nexport type AddSpaceLinkInput = z.infer<typeof addSpaceLinkInputSchema>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"content.js","names":[],"sources":["../../../src/types/schemas/content.ts"],"sourcesContent":["import { z } from 'zod';\nimport { assetUrlsSchema } from './assets.js';\nimport { activityCommentsRuleSchema, commentSettingsSchema } from './discussion.js';\nimport { idSchema, jsonValueSchema } from './shared.js';\n\nexport const contentTypeSchema = z.enum(['course', 'download', 'community', 'event']);\nexport type ContentType = z.infer<typeof contentTypeSchema>;\n\nexport const courseStatusSchema = z.enum(['draft', 'published']);\nexport type CourseStatus = z.infer<typeof courseStatusSchema>;\n\nexport const courseSettingsSchema = z\n .object({\n transcriptDownloads: z.boolean(),\n comments: commentSettingsSchema.optional(),\n })\n .strict();\nexport type CourseSettings = z.infer<typeof courseSettingsSchema>;\n\n/** Defaults for keys a stored settings row doesn't carry (or no row at all). */\nexport const courseSettingsDefaults: CourseSettings = { transcriptDownloads: false };\n\nexport const activitySettingsSchema = z\n .object({\n comments: activityCommentsRuleSchema.optional(),\n })\n .strict();\nexport type ActivitySettings = z.infer<typeof activitySettingsSchema>;\n\nexport const bundleSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n name: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Bundle = z.output<typeof bundleSchema>;\nexport type BundleInput = z.input<typeof bundleSchema>;\n\nexport const bundleItemSchema = z\n .object({\n orgId: idSchema,\n bundleId: idSchema,\n contentId: idSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type BundleItem = z.output<typeof bundleItemSchema>;\nexport type BundleItemInput = z.input<typeof bundleItemSchema>;\n\nexport const listBundlesQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: z.string().optional(),\n })\n .strict();\nexport type ListBundlesQuery = z.infer<typeof listBundlesQuerySchema>;\n\nexport const createBundleInputSchema = z\n .object({\n name: z.string(),\n /** Content to put in the bundle at creation — bundle and items land together. */\n contentIds: z.array(idSchema).optional(),\n })\n .strict();\nexport type CreateBundleInput = z.infer<typeof createBundleInputSchema>;\n\nexport const updateBundleInputSchema = z\n .object({\n name: z.string().optional(),\n })\n .strict();\nexport type UpdateBundleInput = z.infer<typeof updateBundleInputSchema>;\n\nexport const contentItemSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: contentTypeSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type ContentItem = z.output<typeof contentItemSchema>;\nexport type ContentItemInput = z.input<typeof contentItemSchema>;\n\nexport const courseSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: z.literal('course'),\n title: z.string(),\n slug: z.string(),\n description: z.string(),\n status: courseStatusSchema,\n category: z.string(),\n thumbnailAssetId: idSchema.nullable(),\n settings: courseSettingsSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Course = z.output<typeof courseSchema>;\n\nexport const courseViewSchema = courseSchema\n .extend({ thumbnailUrl: z.string().nullable() })\n .strict();\nexport type CourseView = z.output<typeof courseViewSchema>;\n\nexport const activitySchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n moduleId: idSchema,\n courseId: idSchema,\n seq: z.number().int().min(0),\n settings: jsonValueSchema.nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Activity = z.output<typeof activitySchema>;\nexport type ActivityInput = z.input<typeof activitySchema>;\n\nexport const activityViewSchema = activitySchema.extend({ assetUrls: assetUrlsSchema }).strict();\nexport type ActivityView = z.output<typeof activityViewSchema>;\n\nexport const moduleSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n courseId: idSchema,\n title: z.string(),\n seq: z.number().int().min(0),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Module = z.output<typeof moduleSchema>;\nexport type ModuleInput = z.input<typeof moduleSchema>;\n\nexport const activityAssetSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n activityId: idSchema,\n assetId: idSchema,\n seq: z.number().int(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type ActivityAsset = z.output<typeof activityAssetSchema>;\nexport type ActivityAssetInput = z.input<typeof activityAssetSchema>;\n\nexport const saveActivityInputSchema = z\n .object({\n settings: jsonValueSchema.optional(),\n assetIds: z.array(idSchema).optional(),\n })\n .strict();\nexport type SaveActivityInput = z.infer<typeof saveActivityInputSchema>;\n\nexport const listCoursesQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: z.string().optional(),\n status: courseStatusSchema.optional(),\n category: z.string().optional(),\n })\n .strict();\nexport type ListCoursesQuery = z.infer<typeof listCoursesQuerySchema>;\n\nexport const createCourseInputSchema = z\n .object({\n title: z.string(),\n description: z.string().optional(),\n category: z.string().optional(),\n })\n .strict();\nexport type CreateCourseInput = z.infer<typeof createCourseInputSchema>;\n\nexport const updateCourseInputSchema = z\n .object({\n title: z.string().optional(),\n description: z.string().optional(),\n category: z.string().optional(),\n status: courseStatusSchema.optional(),\n thumbnailAssetId: idSchema.nullable().optional(),\n })\n .strict();\nexport type UpdateCourseInput = z.infer<typeof updateCourseInputSchema>;\n\nexport const downloadStatusSchema = z.enum(['draft', 'published']);\nexport type DownloadStatus = z.infer<typeof downloadStatusSchema>;\n\nexport const downloadSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: z.literal('download'),\n title: z.string(),\n slug: z.string(),\n description: z.string(),\n status: downloadStatusSchema,\n category: z.string(),\n thumbnailAssetId: idSchema.nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Download = z.output<typeof downloadSchema>;\nexport type DownloadInput = z.input<typeof downloadSchema>;\n\nexport const downloadViewSchema = downloadSchema\n .extend({ thumbnailUrl: z.string().nullable() })\n .strict();\nexport type DownloadView = z.output<typeof downloadViewSchema>;\n\nexport const downloadAssetSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n downloadId: idSchema,\n assetId: idSchema,\n seq: z.number().int(),\n displayName: z.string().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type DownloadAsset = z.output<typeof downloadAssetSchema>;\nexport type DownloadAssetInput = z.input<typeof downloadAssetSchema>;\n\nexport const downloadFileSchema = downloadAssetSchema\n .extend({\n filename: z.string(),\n contentType: z.string(),\n size: z.number().int().min(0),\n url: z.string(),\n })\n .strict();\nexport type DownloadFile = z.output<typeof downloadFileSchema>;\n\nexport const listDownloadsQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: z.string().optional(),\n status: downloadStatusSchema.optional(),\n category: z.string().optional(),\n })\n .strict();\nexport type ListDownloadsQuery = z.infer<typeof listDownloadsQuerySchema>;\n\nexport const createDownloadInputSchema = z\n .object({\n title: z.string(),\n description: z.string().optional(),\n category: z.string().optional(),\n })\n .strict();\nexport type CreateDownloadInput = z.infer<typeof createDownloadInputSchema>;\n\nexport const updateDownloadInputSchema = z\n .object({\n title: z.string().optional(),\n description: z.string().optional(),\n category: z.string().optional(),\n status: downloadStatusSchema.optional(),\n thumbnailAssetId: idSchema.nullable().optional(),\n })\n .strict();\nexport type UpdateDownloadInput = z.infer<typeof updateDownloadInputSchema>;\n\nexport const addDownloadAssetInputSchema = z\n .object({\n assetId: idSchema,\n displayName: z.string().optional(),\n })\n .strict();\nexport type AddDownloadAssetInput = z.infer<typeof addDownloadAssetInputSchema>;\n\nexport const reorderDownloadAssetsInputSchema = z\n .object({\n assetIds: z.array(idSchema).max(500),\n })\n .strict();\nexport type ReorderDownloadAssetsInput = z.infer<typeof reorderDownloadAssetsInputSchema>;\n\nexport const communityStatusSchema = z.enum(['draft', 'published']);\nexport type CommunityStatus = z.infer<typeof communityStatusSchema>;\n\nexport const dmSettingsSchema = z\n .object({\n enabled: z.boolean(),\n memberToMember: z.boolean(),\n memberToTeam: z.boolean(),\n teamToAnyone: z.boolean(),\n firstMessageIsRequest: z.boolean(),\n groupChats: z.boolean(),\n groupSize: z.number().int().min(1),\n })\n .strict();\nexport type DmSettings = z.infer<typeof dmSettingsSchema>;\n\nexport const dmSettingsDefaults: DmSettings = {\n enabled: true,\n memberToMember: true,\n memberToTeam: true,\n teamToAnyone: true,\n firstMessageIsRequest: true,\n groupChats: true,\n groupSize: 8,\n};\n\nfunction isTimeZone(value: string): boolean {\n try {\n new Intl.DateTimeFormat('en-US', { timeZone: value });\n return true;\n } catch {\n return false;\n }\n}\n\nexport const digestCadenceSchema = z.enum(['daily', 'weekly']);\nexport type DigestCadence = z.infer<typeof digestCadenceSchema>;\n\nexport const digestScheduleSchema = z\n .object({\n cadence: digestCadenceSchema,\n weekday: z\n .number()\n .int()\n .min(0)\n .max(6)\n .describe('The day a weekly digest goes out, 0 is Sunday; a daily digest ignores it'),\n hour: z.number().int().min(0).max(23).describe('The hour of the day it goes out, 0–23'),\n timeZone: z\n .string()\n .refine(isTimeZone, { message: 'must be an IANA time zone' })\n .describe('The IANA time zone the weekday and hour are in, such as `Europe/Madrid`'),\n })\n .strict();\nexport type DigestSchedule = z.infer<typeof digestScheduleSchema>;\n\nexport const communitySettingsSchema = z\n .object({\n dm: dmSettingsSchema,\n digest: digestScheduleSchema.nullable(),\n })\n .strict();\nexport type CommunitySettings = z.infer<typeof communitySettingsSchema>;\n\nexport const communitySettingsDefaults: CommunitySettings = {\n dm: dmSettingsDefaults,\n digest: null,\n};\n\nexport const communitySchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: z.literal('community'),\n title: z.string(),\n slug: z.string(),\n description: z.string(),\n status: communityStatusSchema,\n thumbnailAssetId: idSchema.nullable(),\n settings: communitySettingsSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Community = z.output<typeof communitySchema>;\n\nexport const communityViewSchema = communitySchema\n .extend({ thumbnailUrl: z.string().nullable() })\n .strict();\nexport type CommunityView = z.output<typeof communityViewSchema>;\n\nexport const spaceAccessRuleSchema = z.enum(['all_members', 'by_request', 'by_invite']);\nexport type SpaceAccessRule = z.infer<typeof spaceAccessRuleSchema>;\n\nexport const spaceSettingsSchema = z\n .object({\n comments: z.boolean(),\n reactions: z.boolean(),\n requireReview: z.boolean(),\n })\n .strict();\nexport type SpaceSettings = z.infer<typeof spaceSettingsSchema>;\n\nexport const spaceSettingsDefaults: SpaceSettings = {\n comments: true,\n reactions: true,\n requireReview: false,\n};\n\nexport const spaceSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n communityId: idSchema,\n name: z.string(),\n description: z.string(),\n seq: z.number().int(),\n accessRule: spaceAccessRuleSchema,\n capacity: z.number().int().nullable(),\n settings: spaceSettingsSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Space = z.output<typeof spaceSchema>;\n\nexport const spaceTopicSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n spaceId: idSchema,\n name: z.string(),\n seq: z.number().int(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type SpaceTopic = z.output<typeof spaceTopicSchema>;\n\nexport const spaceLinkSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n spaceId: idSchema,\n contentId: idSchema,\n seq: z.number().int(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type SpaceLink = z.output<typeof spaceLinkSchema>;\n\nexport const spaceDetailSchema = spaceSchema.extend({\n topics: z.array(spaceTopicSchema),\n links: z.array(spaceLinkSchema),\n});\nexport type SpaceDetail = z.output<typeof spaceDetailSchema>;\n\nexport const listCommunitiesQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: z.string().optional(),\n status: communityStatusSchema.optional(),\n })\n .strict();\nexport type ListCommunitiesQuery = z.infer<typeof listCommunitiesQuerySchema>;\n\nexport const createCommunityInputSchema = z\n .object({\n title: z.string().trim().min(1).max(200),\n description: z.string().trim().max(5_000).optional(),\n })\n .strict();\nexport type CreateCommunityInput = z.infer<typeof createCommunityInputSchema>;\n\nexport const updateCommunityInputSchema = z\n .object({\n title: z.string().trim().min(1).max(200).optional(),\n description: z.string().trim().max(5_000).optional(),\n status: communityStatusSchema.optional(),\n thumbnailAssetId: idSchema.nullable().optional(),\n })\n .strict();\nexport type UpdateCommunityInput = z.infer<typeof updateCommunityInputSchema>;\n\nexport const patchDmSettingsInputSchema = dmSettingsSchema\n .extend({\n groupSize: z\n .number()\n .int()\n .min(3)\n .max(100)\n .describe('The most people a group chat may hold, its creator included'),\n })\n .partial();\nexport type PatchDmSettingsInput = z.infer<typeof patchDmSettingsInputSchema>;\n\nexport const patchCommunitySettingsInputSchema = patchDmSettingsInputSchema.extend({\n digest: digestScheduleSchema\n .nullable()\n .optional()\n .describe('When the community digest goes out; null stops it'),\n});\nexport type PatchCommunitySettingsInput = z.infer<typeof patchCommunitySettingsInputSchema>;\n\nexport const createSpaceInputSchema = z\n .object({\n name: z.string().trim().min(1).max(120),\n description: z.string().trim().max(2_000).optional(),\n accessRule: spaceAccessRuleSchema.optional(),\n capacity: z.number().int().min(0).nullable().optional(),\n settings: spaceSettingsSchema.partial().optional(),\n })\n .strict();\nexport type CreateSpaceInput = z.infer<typeof createSpaceInputSchema>;\n\nexport const updateSpaceInputSchema = z\n .object({\n name: z.string().trim().min(1).max(120).optional(),\n description: z.string().trim().max(2_000).optional(),\n accessRule: spaceAccessRuleSchema.optional(),\n capacity: z.number().int().min(0).nullable().optional(),\n settings: spaceSettingsSchema.partial().optional(),\n })\n .strict();\nexport type UpdateSpaceInput = z.infer<typeof updateSpaceInputSchema>;\n\nexport const setSpaceTopicsInputSchema = z\n .object({\n topics: z\n .array(\n z\n .object({\n id: idSchema.optional().describe('Keep an existing topic; omit to add a new one'),\n name: z.string().trim().min(1).max(60),\n })\n .strict(),\n )\n .max(50)\n .describe('The complete list, in order. A topic left out is deleted'),\n })\n .strict();\nexport type SetSpaceTopicsInput = z.infer<typeof setSpaceTopicsInputSchema>;\n\nexport const addSpaceLinkInputSchema = z\n .object({\n contentId: idSchema,\n })\n .strict();\nexport type AddSpaceLinkInput = z.infer<typeof addSpaceLinkInputSchema>;\n\nexport const timeZoneSchema = z\n .string()\n .refine(isTimeZone, { message: 'must be an IANA time zone' })\n .describe('An IANA time zone, such as `Europe/London`');\n\nconst httpUrlSchema = z.url({ protocol: /^https?$/ });\n\nexport const eventStatusSchema = z.enum(['draft', 'published', 'canceled']);\nexport type EventStatus = z.infer<typeof eventStatusSchema>;\n\nexport const eventTypeSchema = z.enum(['public', 'private']);\nexport type EventType = z.infer<typeof eventTypeSchema>;\n\nconst addressLineSchema = z.string().max(200).nullable();\n\nexport const eventAddressSchema = z\n .object({\n line1: addressLineSchema,\n line2: addressLineSchema,\n city: addressLineSchema,\n region: addressLineSchema,\n postalCode: addressLineSchema,\n country: z\n .string()\n .regex(/^[A-Z]{2}$/, 'must be an ISO 3166-1 alpha-2 code')\n .nullable()\n .describe('An ISO 3166-1 alpha-2 code, such as `GB`'),\n })\n .strict();\nexport type EventAddress = z.infer<typeof eventAddressSchema>;\n\nexport const eventVenueSchema = z\n .object({\n name: z.string().trim().min(1).max(200),\n address: eventAddressSchema.nullable(),\n })\n .strict();\nexport type EventVenue = z.infer<typeof eventVenueSchema>;\n\nexport const eventOnlineSchema = z\n .object({\n url: httpUrlSchema.describe('The meeting link, `http` or `https`'),\n details: z.string().max(1_000).nullable().describe('Such as a passcode or a dial-in number'),\n })\n .strict();\nexport type EventOnline = z.infer<typeof eventOnlineSchema>;\n\nexport const eventLocationSchema = z\n .object({\n venue: eventVenueSchema.nullable().describe('Where the event takes place in person'),\n online: eventOnlineSchema.nullable().describe('How to join online'),\n })\n .strict();\nexport type EventLocation = z.infer<typeof eventLocationSchema>;\n\nexport const eventLocationDefaults: EventLocation = { venue: null, online: null };\n\nexport const eventRecordingSchema = z\n .object({\n url: httpUrlSchema.describe('Where the recording is, `http` or `https`'),\n details: z.string().max(1_000).nullable().describe('Such as a passcode'),\n })\n .strict();\nexport type EventRecording = z.infer<typeof eventRecordingSchema>;\n\nexport const eventSettingsSchema = z\n .object({\n type: eventTypeSchema.describe(\n '`public`: members register themselves. `private`: by grant only',\n ),\n capacity: z\n .number()\n .int()\n .min(1)\n .nullable()\n .describe('The most attendees the event takes; null means no limit'),\n notifications: z.boolean().describe('When false, no notifications are sent for the event'),\n replay: z.boolean().describe('When true, attendees get the recording after the end'),\n })\n .strict();\nexport type EventSettings = z.infer<typeof eventSettingsSchema>;\n\nexport const eventSettingsDefaults: EventSettings = {\n type: 'public',\n capacity: null,\n notifications: true,\n replay: true,\n};\n\nexport const eventSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n type: z.literal('event'),\n title: z.string(),\n description: z.string(),\n thumbnailAssetId: idSchema.nullable(),\n status: eventStatusSchema,\n startsAt: z.coerce.date(),\n endsAt: z.coerce.date(),\n timeZone: z.string(),\n location: eventLocationSchema,\n recording: eventRecordingSchema.nullable(),\n settings: eventSettingsSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type Event = z.output<typeof eventSchema>;\n\nexport const eventViewSchema = eventSchema.extend({ thumbnailUrl: z.string().nullable() }).strict();\nexport type EventView = z.output<typeof eventViewSchema>;\n\nexport const eventAssetSchema = z\n .object({\n orgId: idSchema,\n id: idSchema,\n eventId: idSchema,\n assetId: idSchema,\n seq: z.number().int(),\n displayName: z.string().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n })\n .strict();\nexport type EventAsset = z.output<typeof eventAssetSchema>;\n\nexport const eventFileSchema = eventAssetSchema\n .extend({\n filename: z.string(),\n contentType: z.string(),\n size: z.number().int().min(0),\n url: z.string(),\n })\n .strict();\nexport type EventFile = z.output<typeof eventFileSchema>;\n\nexport const eventSortSchema = z.enum(['startsAt', '-startsAt', 'title', '-title']);\nexport type EventSort = z.infer<typeof eventSortSchema>;\n\nexport const listEventsQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n search: z.string().optional(),\n sort: eventSortSchema.optional(),\n status: eventStatusSchema.optional(),\n from: z.coerce.date().optional(),\n to: z.coerce.date().optional(),\n })\n .strict();\nexport type ListEventsQuery = z.infer<typeof listEventsQuerySchema>;\n\nexport const createEventInputSchema = z\n .object({\n title: z.string().trim().min(1).max(120),\n description: z.string().max(5_000).optional(),\n startsAt: z.coerce.date(),\n endsAt: z.coerce.date(),\n timeZone: timeZoneSchema,\n location: eventLocationSchema.optional(),\n settings: eventSettingsSchema.partial().optional(),\n })\n .strict();\nexport type CreateEventInput = z.infer<typeof createEventInputSchema>;\n\nexport const updateEventInputSchema = z\n .object({\n title: z.string().trim().min(1).max(120).optional(),\n description: z.string().max(5_000).optional(),\n startsAt: z.coerce.date().optional(),\n endsAt: z.coerce.date().optional(),\n timeZone: timeZoneSchema.optional(),\n location: eventLocationSchema.optional(),\n thumbnailAssetId: idSchema.nullable().optional(),\n recording: eventRecordingSchema.nullable().optional(),\n status: eventStatusSchema.extract(['draft', 'published']).optional(),\n settings: eventSettingsSchema.partial().optional(),\n })\n .strict();\nexport type UpdateEventInput = z.infer<typeof updateEventInputSchema>;\n\nexport const addEventAssetInputSchema = z\n .object({\n assetId: idSchema,\n displayName: z.string().optional(),\n })\n .strict();\nexport type AddEventAssetInput = z.infer<typeof addEventAssetInputSchema>;\n\nexport const reorderEventAssetsInputSchema = z\n .object({\n assetIds: z.array(idSchema).max(500),\n })\n .strict();\nexport type ReorderEventAssetsInput = z.infer<typeof reorderEventAssetsInputSchema>;\n\nexport const eventLeadSchema = z.enum(['1d', '1h']);\nexport type EventLead = z.infer<typeof eventLeadSchema>;\n\nexport const eventAttendeeSourceSchema = z.enum(['self', 'manual', 'automation', 'bundle']);\nexport type EventAttendeeSource = z.infer<typeof eventAttendeeSourceSchema>;\n\nexport const eventAttendeeSchema = z\n .object({\n orgUserId: idSchema,\n name: z.string(),\n avatarUrl: z.string().nullable(),\n source: eventAttendeeSourceSchema.describe(\n '`self`: registered themselves. `manual`: added by staff or an API client. `bundle`: attends only through a bundle',\n ),\n grantedAt: z.coerce.date(),\n })\n .strict();\nexport type EventAttendee = z.output<typeof eventAttendeeSchema>;\n\nexport const eventAttendeeFaceSchema = eventAttendeeSchema.pick({\n orgUserId: true,\n name: true,\n avatarUrl: true,\n});\nexport type EventAttendeeFace = z.output<typeof eventAttendeeFaceSchema>;\n\nexport const memberEventViewerSchema = z\n .object({\n attending: z.boolean().describe('The caller attends, directly or through a bundle'),\n canRegister: z.boolean().describe('The caller may register now'),\n canOpen: z.boolean().describe('The caller gets the location, files and recording'),\n canLeave: z\n .boolean()\n .describe('The caller holds a direct grant they may give up; false through a bundle only'),\n canManageAttendees: z.boolean().describe('The caller may add and remove attendees'),\n canAddAttendees: z\n .boolean()\n .describe('The caller may add attendees now: they manage attendees and the event is open'),\n canEdit: z.boolean(),\n canCancel: z.boolean(),\n canDelete: z.boolean(),\n })\n .strict();\nexport type MemberEventViewer = z.output<typeof memberEventViewerSchema>;\n\nexport const memberEventSchema = eventViewSchema\n .omit({ createdAt: true, updatedAt: true, location: true, settings: true })\n .extend({\n location: eventLocationSchema\n .nullable()\n .describe('Null when the caller sees the event only because it is published and public'),\n settings: eventSettingsSchema.omit({ notifications: true }),\n files: z.array(eventFileSchema).describe('Empty when the caller cannot open the event'),\n attendeeCount: z.number().int().min(0),\n attendees: z.array(eventAttendeeFaceSchema).describe('Up to 10 attendees, for the avatars'),\n placesLeft: z\n .number()\n .int()\n .min(0)\n .nullable()\n .describe('Capacity less the attendees; null with no capacity'),\n viewer: memberEventViewerSchema,\n })\n .strict();\nexport type MemberEvent = z.output<typeof memberEventSchema>;\n\nexport const memberEventSummarySchema = memberEventSchema\n .omit({ description: true, files: true })\n .describe('An event as listed: the event read without its description and files');\nexport type MemberEventSummary = z.output<typeof memberEventSummarySchema>;\n\nexport const memberEventsQuerySchema = z\n .object({\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n when: z.enum(['upcoming', 'past']).optional(),\n attending: z.boolean().optional(),\n })\n .strict();\nexport type MemberEventsQuery = z.infer<typeof memberEventsQuerySchema>;\n\nexport const eventAnalyticsSchema = z\n .object({\n attendees: z.number().int().min(0).describe('Attending now, directly or through a bundle'),\n capacity: z.number().int().nullable(),\n bySource: z\n .object({\n self: z.number().int().min(0),\n manual: z.number().int().min(0),\n automation: z.number().int().min(0),\n bundle: z.number().int().min(0),\n })\n .strict()\n .describe('Attendees per source'),\n revoked: z.number().int().min(0).describe('Direct grants that are now revoked'),\n grantsOverTime: z\n .array(z.object({ date: z.string(), count: z.number().int().min(0) }).strict())\n .describe('Current direct grants by grant date (UTC), before the start'),\n })\n .strict();\nexport type EventAnalytics = z.output<typeof eventAnalyticsSchema>;\n"],"mappings":"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"}