@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
@@ -33,9 +33,8 @@ declare const discussionEvents: {
33
33
  updatedAt: unknown;
34
34
  mentionedOrgUserIds: string[];
35
35
  }, z.ZodObject<{
36
- id: z.ZodString;
37
36
  orgId: z.ZodString;
38
- orgUserId: z.ZodString;
37
+ id: z.ZodString;
39
38
  createdAt: z.ZodCoercedDate<unknown>;
40
39
  updatedAt: z.ZodCoercedDate<unknown>;
41
40
  status: z.ZodEnum<{
@@ -45,6 +44,7 @@ declare const discussionEvents: {
45
44
  }>;
46
45
  activityId: z.ZodNullable<z.ZodString>;
47
46
  communityId: z.ZodNullable<z.ZodString>;
47
+ orgUserId: z.ZodString;
48
48
  postId: z.ZodNullable<z.ZodString>;
49
49
  parentId: z.ZodNullable<z.ZodString>;
50
50
  body: z.ZodString;
@@ -79,9 +79,8 @@ declare const discussionEvents: {
79
79
  updatedAt: unknown;
80
80
  mentionedOrgUserIds: string[];
81
81
  }, z.ZodObject<{
82
- id: z.ZodString;
83
82
  orgId: z.ZodString;
84
- orgUserId: z.ZodString;
83
+ id: z.ZodString;
85
84
  createdAt: z.ZodCoercedDate<unknown>;
86
85
  updatedAt: z.ZodCoercedDate<unknown>;
87
86
  status: z.ZodEnum<{
@@ -91,6 +90,7 @@ declare const discussionEvents: {
91
90
  }>;
92
91
  activityId: z.ZodNullable<z.ZodString>;
93
92
  communityId: z.ZodNullable<z.ZodString>;
93
+ orgUserId: z.ZodString;
94
94
  postId: z.ZodNullable<z.ZodString>;
95
95
  parentId: z.ZodNullable<z.ZodString>;
96
96
  body: z.ZodString;
@@ -125,9 +125,8 @@ declare const discussionEvents: {
125
125
  updatedAt: unknown;
126
126
  mentionedOrgUserIds: string[];
127
127
  }, z.ZodObject<{
128
- id: z.ZodString;
129
128
  orgId: z.ZodString;
130
- orgUserId: z.ZodString;
129
+ id: z.ZodString;
131
130
  createdAt: z.ZodCoercedDate<unknown>;
132
131
  updatedAt: z.ZodCoercedDate<unknown>;
133
132
  status: z.ZodEnum<{
@@ -137,6 +136,7 @@ declare const discussionEvents: {
137
136
  }>;
138
137
  activityId: z.ZodNullable<z.ZodString>;
139
138
  communityId: z.ZodNullable<z.ZodString>;
139
+ orgUserId: z.ZodString;
140
140
  postId: z.ZodNullable<z.ZodString>;
141
141
  parentId: z.ZodNullable<z.ZodString>;
142
142
  body: z.ZodString;
@@ -194,9 +194,8 @@ declare const discussionEvents: {
194
194
  createdAt: unknown;
195
195
  updatedAt: unknown;
196
196
  }, z.ZodObject<{
197
- id: z.ZodString;
198
197
  orgId: z.ZodString;
199
- orgUserId: z.ZodString;
198
+ id: z.ZodString;
200
199
  createdAt: z.ZodCoercedDate<unknown>;
201
200
  updatedAt: z.ZodCoercedDate<unknown>;
202
201
  status: z.ZodEnum<{
@@ -206,6 +205,7 @@ declare const discussionEvents: {
206
205
  }>;
207
206
  activityId: z.ZodNullable<z.ZodString>;
208
207
  communityId: z.ZodNullable<z.ZodString>;
208
+ orgUserId: z.ZodString;
209
209
  postId: z.ZodNullable<z.ZodString>;
210
210
  parentId: z.ZodNullable<z.ZodString>;
211
211
  body: z.ZodString;
@@ -236,12 +236,12 @@ declare const discussionEvents: {
236
236
  updatedAt: unknown;
237
237
  communityId: string | null;
238
238
  }, z.ZodObject<{
239
- id: z.ZodString;
240
239
  orgId: z.ZodString;
241
- orgUserId: z.ZodString;
240
+ id: z.ZodString;
242
241
  createdAt: z.ZodCoercedDate<unknown>;
243
242
  updatedAt: z.ZodCoercedDate<unknown>;
244
243
  communityId: z.ZodNullable<z.ZodString>;
244
+ orgUserId: z.ZodString;
245
245
  commentId: z.ZodString;
246
246
  reason: z.ZodString;
247
247
  resolvedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
@@ -602,8 +602,8 @@ declare const discussionEvents: {
602
602
  updatedAt: unknown;
603
603
  participantIds: string[];
604
604
  }, z.ZodObject<{
605
- id: z.ZodString;
606
605
  orgId: z.ZodString;
606
+ id: z.ZodString;
607
607
  kind: z.ZodEnum<{
608
608
  direct: "direct";
609
609
  group: "group";
@@ -642,8 +642,8 @@ declare const discussionEvents: {
642
642
  updatedAt: unknown;
643
643
  participantIds: string[];
644
644
  }, z.ZodObject<{
645
- id: z.ZodString;
646
645
  orgId: z.ZodString;
646
+ id: z.ZodString;
647
647
  kind: z.ZodEnum<{
648
648
  direct: "direct";
649
649
  group: "group";
@@ -673,39 +673,61 @@ declare const discussionEvents: {
673
673
  orgUserId: z.ZodString;
674
674
  addedBy: z.ZodString;
675
675
  }, z.core.$strict>>;
676
+ chatRead: RuntimeEventDefinition<VersionedDomainEvent<{
677
+ chatId: string;
678
+ communityId: string;
679
+ orgUserId: string;
680
+ lastReadMessageId: string;
681
+ }, "discussion.chat.read", 1>, {
682
+ chatId: string;
683
+ communityId: string;
684
+ orgUserId: string;
685
+ lastReadMessageId: string;
686
+ }, undefined>;
687
+ chatMuted: RuntimeEventDefinition<VersionedDomainEvent<{
688
+ chatId: string;
689
+ communityId: string;
690
+ orgUserId: string;
691
+ mutedUntil: Date | null;
692
+ }, "discussion.chat.muted", 1>, {
693
+ chatId: string;
694
+ communityId: string;
695
+ orgUserId: string;
696
+ mutedUntil: unknown;
697
+ }, undefined>;
676
698
  messageSent: RuntimeEventDefinition<VersionedDomainEvent<{
677
699
  orgId: string;
678
700
  id: string;
701
+ createdAt: Date;
702
+ updatedAt: Date;
679
703
  communityId: string;
680
- chatId: string;
681
704
  orgUserId: string;
682
705
  body: string;
706
+ chatId: string;
683
707
  replyToId: string | null;
684
708
  editedAt: Date | null;
685
709
  deletedAt: Date | null;
686
- createdAt: Date;
687
- updatedAt: Date;
688
710
  mentionedOrgUserIds: string[];
689
711
  }, "discussion.message.sent", 1>, {
690
712
  orgId: string;
691
713
  id: string;
714
+ createdAt: unknown;
715
+ updatedAt: unknown;
692
716
  communityId: string;
693
- chatId: string;
694
717
  orgUserId: string;
695
718
  body: string;
719
+ chatId: string;
696
720
  replyToId: string | null;
697
721
  editedAt: unknown;
698
722
  deletedAt: unknown;
699
- createdAt: unknown;
700
- updatedAt: unknown;
701
723
  mentionedOrgUserIds: string[];
702
724
  }, z.ZodObject<{
703
- id: z.ZodString;
704
725
  orgId: z.ZodString;
705
- orgUserId: z.ZodString;
726
+ id: z.ZodString;
706
727
  createdAt: z.ZodCoercedDate<unknown>;
707
728
  updatedAt: z.ZodCoercedDate<unknown>;
708
729
  communityId: z.ZodString;
730
+ orgUserId: z.ZodString;
709
731
  chatId: z.ZodString;
710
732
  replyToId: z.ZodNullable<z.ZodString>;
711
733
  editedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
@@ -714,36 +736,36 @@ declare const discussionEvents: {
714
736
  messageUpdated: RuntimeEventDefinition<VersionedDomainEvent<{
715
737
  orgId: string;
716
738
  id: string;
739
+ createdAt: Date;
740
+ updatedAt: Date;
717
741
  communityId: string;
718
- chatId: string;
719
742
  orgUserId: string;
720
743
  body: string;
744
+ chatId: string;
721
745
  replyToId: string | null;
722
746
  editedAt: Date | null;
723
747
  deletedAt: Date | null;
724
- createdAt: Date;
725
- updatedAt: Date;
726
748
  mentionedOrgUserIds: string[];
727
749
  }, "discussion.message.updated", 1>, {
728
750
  orgId: string;
729
751
  id: string;
752
+ createdAt: unknown;
753
+ updatedAt: unknown;
730
754
  communityId: string;
731
- chatId: string;
732
755
  orgUserId: string;
733
756
  body: string;
757
+ chatId: string;
734
758
  replyToId: string | null;
735
759
  editedAt: unknown;
736
760
  deletedAt: unknown;
737
- createdAt: unknown;
738
- updatedAt: unknown;
739
761
  mentionedOrgUserIds: string[];
740
762
  }, z.ZodObject<{
741
- id: z.ZodString;
742
763
  orgId: z.ZodString;
743
- orgUserId: z.ZodString;
764
+ id: z.ZodString;
744
765
  createdAt: z.ZodCoercedDate<unknown>;
745
766
  updatedAt: z.ZodCoercedDate<unknown>;
746
767
  communityId: z.ZodString;
768
+ orgUserId: z.ZodString;
747
769
  chatId: z.ZodString;
748
770
  replyToId: z.ZodNullable<z.ZodString>;
749
771
  editedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
@@ -768,37 +790,50 @@ declare const discussionEvents: {
768
790
  orgUserId: z.ZodString;
769
791
  reaction: z.ZodString;
770
792
  }, z.core.$strict>>;
793
+ messageReactionsChanged: RuntimeEventDefinition<VersionedDomainEvent<{
794
+ messageId: string;
795
+ chatId: string;
796
+ communityId: string;
797
+ orgUserId: string;
798
+ reaction: string | null;
799
+ }, "discussion.message.reactions.changed", 1>, {
800
+ messageId: string;
801
+ chatId: string;
802
+ communityId: string;
803
+ orgUserId: string;
804
+ reaction: string | null;
805
+ }, undefined>;
771
806
  messageDeleted: RuntimeEventDefinition<VersionedDomainEvent<{
772
807
  orgId: string;
773
808
  id: string;
809
+ createdAt: Date;
810
+ updatedAt: Date;
774
811
  communityId: string;
775
- chatId: string;
776
812
  orgUserId: string;
777
813
  body: string;
814
+ chatId: string;
778
815
  replyToId: string | null;
779
816
  editedAt: Date | null;
780
817
  deletedAt: Date | null;
781
- createdAt: Date;
782
- updatedAt: Date;
783
818
  }, "discussion.message.deleted", 1>, {
784
819
  orgId: string;
785
820
  id: string;
821
+ createdAt: unknown;
822
+ updatedAt: unknown;
786
823
  communityId: string;
787
- chatId: string;
788
824
  orgUserId: string;
789
825
  body: string;
826
+ chatId: string;
790
827
  replyToId: string | null;
791
828
  editedAt: unknown;
792
829
  deletedAt: unknown;
793
- createdAt: unknown;
794
- updatedAt: unknown;
795
830
  }, z.ZodObject<{
796
- id: z.ZodString;
797
831
  orgId: z.ZodString;
798
- orgUserId: z.ZodString;
832
+ id: z.ZodString;
799
833
  createdAt: z.ZodCoercedDate<unknown>;
800
834
  updatedAt: z.ZodCoercedDate<unknown>;
801
835
  communityId: z.ZodString;
836
+ orgUserId: z.ZodString;
802
837
  chatId: z.ZodString;
803
838
  replyToId: z.ZodNullable<z.ZodString>;
804
839
  editedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
@@ -829,12 +864,12 @@ declare const discussionEvents: {
829
864
  createdAt: unknown;
830
865
  updatedAt: unknown;
831
866
  }, z.ZodObject<{
832
- id: z.ZodString;
833
867
  orgId: z.ZodString;
834
- orgUserId: z.ZodString;
868
+ id: z.ZodString;
835
869
  createdAt: z.ZodCoercedDate<unknown>;
836
870
  updatedAt: z.ZodCoercedDate<unknown>;
837
871
  communityId: z.ZodString;
872
+ orgUserId: z.ZodString;
838
873
  resolvedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
839
874
  resolution: z.ZodNullable<z.ZodEnum<{
840
875
  dismissed: "dismissed";
@@ -874,13 +909,16 @@ type PostReported = EventOf<typeof discussionEvents.postReported>;
874
909
  type ChatCreated = EventOf<typeof discussionEvents.chatCreated>;
875
910
  type ChatUpdated = EventOf<typeof discussionEvents.chatUpdated>;
876
911
  type ChatParticipantAdded = EventOf<typeof discussionEvents.chatParticipantAdded>;
912
+ type ChatRead = EventOf<typeof discussionEvents.chatRead>;
913
+ type ChatMuted = EventOf<typeof discussionEvents.chatMuted>;
877
914
  type MessageSent = EventOf<typeof discussionEvents.messageSent>;
878
915
  type MessageUpdated = EventOf<typeof discussionEvents.messageUpdated>;
879
916
  type MessageReactionAdded = EventOf<typeof discussionEvents.messageReactionAdded>;
917
+ type MessageReactionsChanged = EventOf<typeof discussionEvents.messageReactionsChanged>;
880
918
  type MessageDeleted = EventOf<typeof discussionEvents.messageDeleted>;
881
919
  type MessageReported = EventOf<typeof discussionEvents.messageReported>;
882
920
  type DigestDue = EventOf<typeof discussionEvents.digestDue>;
883
921
  type NewDiscussionEvent = NewDomainEvent<DiscussionEvent>;
884
922
  //#endregion
885
- export { ChatCreated, ChatParticipantAdded, ChatUpdated, CommentCreated, CommentPublished, CommentReactionAdded, CommentRemoved, CommentReported, CommentUpdated, DigestDue, DiscussionEvent, MessageDeleted, MessageReactionAdded, MessageReported, MessageSent, MessageUpdated, NewDiscussionEvent, PostCreated, PostPublished, PostReactionAdded, PostRemoved, PostReported, PostUpdated, discussionEvents };
923
+ export { ChatCreated, ChatMuted, ChatParticipantAdded, ChatRead, ChatUpdated, CommentCreated, CommentPublished, CommentReactionAdded, CommentRemoved, CommentReported, CommentUpdated, DigestDue, DiscussionEvent, MessageDeleted, MessageReactionAdded, MessageReactionsChanged, MessageReported, MessageSent, MessageUpdated, NewDiscussionEvent, PostCreated, PostPublished, PostReactionAdded, PostRemoved, PostReported, PostUpdated, discussionEvents };
886
924
  //# sourceMappingURL=events.d.ts.map
@@ -7,7 +7,8 @@ const mentioned = { mentionedOrgUserIds: z.array(idSchema) };
7
7
  const commentEventSchema = commentSchema.extend(mentioned);
8
8
  const postEventSchema = postSchema.extend(mentioned);
9
9
  const publicPost = postSchema.strip();
10
- const messageEventSchema = messageSchema.extend(mentioned);
10
+ const eventMessageSchema = messageSchema.omit({ clientId: true });
11
+ const messageEventSchema = eventMessageSchema.extend(mentioned);
11
12
  const publicComment = commentSchema.pick({
12
13
  id: true,
13
14
  orgId: true,
@@ -51,7 +52,10 @@ const participantAddedSchema = z.object({
51
52
  orgUserId: idSchema,
52
53
  addedBy: idSchema
53
54
  }).strict();
54
- const publicMessage = messageSchema.omit({ body: true }).strip();
55
+ const publicMessage = messageSchema.omit({
56
+ body: true,
57
+ clientId: true
58
+ }).strip();
55
59
  const postReactionAddedSchema = z.object({
56
60
  postId: idSchema,
57
61
  spaceId: idSchema,
@@ -75,6 +79,25 @@ const messageReactionAddedSchema = z.object({
75
79
  orgUserId: idSchema,
76
80
  reaction: reactionEmojiSchema
77
81
  }).strict();
82
+ const messageReactionsChangedSchema = z.object({
83
+ messageId: idSchema,
84
+ chatId: idSchema,
85
+ communityId: idSchema,
86
+ orgUserId: idSchema,
87
+ reaction: reactionEmojiSchema.nullable()
88
+ }).strict();
89
+ const chatReadSchema = z.object({
90
+ chatId: idSchema,
91
+ communityId: idSchema,
92
+ orgUserId: idSchema,
93
+ lastReadMessageId: idSchema
94
+ }).strict();
95
+ const chatMutedSchema = z.object({
96
+ chatId: idSchema,
97
+ communityId: idSchema,
98
+ orgUserId: idSchema,
99
+ mutedUntil: z.coerce.date().nullable()
100
+ }).strict();
78
101
  const digestDueSchema = z.object({
79
102
  communityId: idSchema,
80
103
  from: z.coerce.date(),
@@ -172,6 +195,16 @@ const discussionEvents = {
172
195
  data: participantAddedSchema,
173
196
  publicData: participantAddedSchema
174
197
  }),
198
+ chatRead: defineEvent({
199
+ type: "discussion.chat.read",
200
+ version: 1,
201
+ data: chatReadSchema
202
+ }),
203
+ chatMuted: defineEvent({
204
+ type: "discussion.chat.muted",
205
+ version: 1,
206
+ data: chatMutedSchema
207
+ }),
175
208
  messageSent: defineEvent({
176
209
  type: "discussion.message.sent",
177
210
  version: 1,
@@ -190,10 +223,15 @@ const discussionEvents = {
190
223
  data: messageReactionAddedSchema,
191
224
  publicData: messageReactionAddedSchema
192
225
  }),
226
+ messageReactionsChanged: defineEvent({
227
+ type: "discussion.message.reactions.changed",
228
+ version: 1,
229
+ data: messageReactionsChangedSchema
230
+ }),
193
231
  messageDeleted: defineEvent({
194
232
  type: "discussion.message.deleted",
195
233
  version: 1,
196
- data: messageSchema,
234
+ data: eventMessageSchema,
197
235
  publicData: publicMessage
198
236
  }),
199
237
  messageReported: defineEvent({
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":[],"sources":["../../src/discussion/events.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n chatSchema,\n commentReportSchema,\n commentSchema,\n idSchema,\n messageFlagSchema,\n messageSchema,\n postFlagSchema,\n postSchema,\n reactionEmojiSchema,\n} from '../types/schemas/index.js';\nimport {\n defineEvent,\n type EventOf,\n type EventOfValues,\n type NewDomainEvent,\n} from '../shared/ports.js';\n\nconst mentioned = { mentionedOrgUserIds: z.array(idSchema) };\nconst commentEventSchema = commentSchema.extend(mentioned);\nconst postEventSchema = postSchema.extend(mentioned);\nconst publicPost = postSchema.strip();\nconst messageEventSchema = messageSchema.extend(mentioned);\n\nconst publicComment = commentSchema\n .pick({\n id: true,\n orgId: true,\n activityId: true,\n postId: true,\n communityId: true,\n parentId: true,\n orgUserId: true,\n body: true,\n status: true,\n removedBy: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\n\nconst reportedComment = commentReportSchema.extend({ communityId: idSchema.nullable() });\nconst publicCommentReport = reportedComment\n .pick({\n id: true,\n orgId: true,\n communityId: true,\n commentId: true,\n orgUserId: true,\n reason: true,\n resolvedAt: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\nconst reportedPost = postFlagSchema.extend({ communityId: idSchema });\n\nconst chatEventSchema = chatSchema.extend({\n participantIds: z.array(idSchema),\n});\n\nconst publicChat = chatEventSchema\n .pick({\n id: true,\n orgId: true,\n communityId: true,\n kind: true,\n status: true,\n createdBy: true,\n participantIds: true,\n })\n .strip();\n\nconst participantAddedSchema = z\n .object({\n chatId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n addedBy: idSchema,\n })\n .strict();\n\nconst publicMessage = messageSchema.omit({ body: true }).strip();\n\nconst postReactionAddedSchema = z\n .object({\n postId: idSchema,\n spaceId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n reaction: reactionEmojiSchema,\n })\n .strict();\n\nconst commentReactionAddedSchema = z\n .object({\n commentId: idSchema,\n postId: idSchema.nullable(),\n activityId: idSchema.nullable(),\n spaceId: idSchema.nullable(),\n communityId: idSchema.nullable(),\n orgUserId: idSchema,\n reaction: reactionEmojiSchema,\n })\n .strict();\n\nconst messageReactionAddedSchema = z\n .object({\n messageId: idSchema,\n chatId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n reaction: reactionEmojiSchema,\n })\n .strict();\n\nconst digestDueSchema = z\n .object({ communityId: idSchema, from: z.coerce.date(), to: z.coerce.date() })\n .strict();\nconst publicMessageFlag = messageFlagSchema.omit({ reason: true }).strip();\n\nexport const discussionEvents = {\n commentCreated: defineEvent({\n type: 'discussion.comment.created',\n version: 1,\n data: commentEventSchema,\n publicData: publicComment,\n }),\n commentPublished: defineEvent({\n type: 'discussion.comment.published',\n version: 1,\n data: commentEventSchema,\n publicData: publicComment,\n }),\n commentUpdated: defineEvent({\n type: 'discussion.comment.updated',\n version: 1,\n data: commentEventSchema,\n publicData: publicComment,\n }),\n commentReactionAdded: defineEvent({\n type: 'discussion.comment.reaction.added',\n version: 1,\n data: commentReactionAddedSchema,\n publicData: commentReactionAddedSchema,\n }),\n commentRemoved: defineEvent({\n type: 'discussion.comment.removed',\n version: 1,\n data: commentSchema,\n publicData: publicComment,\n }),\n commentReported: defineEvent({\n type: 'discussion.comment.reported',\n version: 1,\n data: reportedComment,\n publicData: publicCommentReport,\n }),\n postCreated: defineEvent({\n type: 'discussion.post.created',\n version: 1,\n data: postSchema,\n publicData: postSchema,\n }),\n postUpdated: defineEvent({\n type: 'discussion.post.updated',\n version: 1,\n data: postEventSchema,\n publicData: publicPost,\n }),\n postPublished: defineEvent({\n type: 'discussion.post.published',\n version: 1,\n data: postEventSchema,\n publicData: publicPost,\n }),\n postReactionAdded: defineEvent({\n type: 'discussion.post.reaction.added',\n version: 1,\n data: postReactionAddedSchema,\n publicData: postReactionAddedSchema,\n }),\n postRemoved: defineEvent({\n type: 'discussion.post.removed',\n version: 1,\n data: postSchema,\n publicData: postSchema,\n }),\n postReported: defineEvent({\n type: 'discussion.post.reported',\n version: 1,\n data: reportedPost,\n publicData: reportedPost,\n }),\n chatCreated: defineEvent({\n type: 'discussion.chat.created',\n version: 1,\n data: chatEventSchema,\n publicData: publicChat,\n }),\n chatUpdated: defineEvent({\n type: 'discussion.chat.updated',\n version: 1,\n data: chatEventSchema,\n publicData: publicChat,\n }),\n chatParticipantAdded: defineEvent({\n type: 'discussion.chat.participant.added',\n version: 1,\n data: participantAddedSchema,\n publicData: participantAddedSchema,\n }),\n messageSent: defineEvent({\n type: 'discussion.message.sent',\n version: 1,\n data: messageEventSchema,\n publicData: publicMessage,\n }),\n messageUpdated: defineEvent({\n type: 'discussion.message.updated',\n version: 1,\n data: messageEventSchema,\n publicData: publicMessage,\n }),\n messageReactionAdded: defineEvent({\n type: 'discussion.message.reaction.added',\n version: 1,\n data: messageReactionAddedSchema,\n publicData: messageReactionAddedSchema,\n }),\n messageDeleted: defineEvent({\n type: 'discussion.message.deleted',\n version: 1,\n data: messageSchema,\n publicData: publicMessage,\n }),\n messageReported: defineEvent({\n type: 'discussion.message.reported',\n version: 1,\n data: messageFlagSchema,\n publicData: publicMessageFlag,\n }),\n digestDue: defineEvent({\n type: 'discussion.digest.due',\n version: 2,\n data: digestDueSchema,\n publicData: digestDueSchema,\n }),\n};\n\nexport type CommentCreated = EventOf<typeof discussionEvents.commentCreated>;\nexport type CommentPublished = EventOf<typeof discussionEvents.commentPublished>;\nexport type CommentUpdated = EventOf<typeof discussionEvents.commentUpdated>;\nexport type CommentReactionAdded = EventOf<typeof discussionEvents.commentReactionAdded>;\nexport type CommentRemoved = EventOf<typeof discussionEvents.commentRemoved>;\nexport type CommentReported = EventOf<typeof discussionEvents.commentReported>;\nexport type DiscussionEvent = EventOfValues<typeof discussionEvents>;\nexport type PostCreated = EventOf<typeof discussionEvents.postCreated>;\nexport type PostUpdated = EventOf<typeof discussionEvents.postUpdated>;\nexport type PostPublished = EventOf<typeof discussionEvents.postPublished>;\nexport type PostReactionAdded = EventOf<typeof discussionEvents.postReactionAdded>;\nexport type PostRemoved = EventOf<typeof discussionEvents.postRemoved>;\nexport type PostReported = EventOf<typeof discussionEvents.postReported>;\nexport type ChatCreated = EventOf<typeof discussionEvents.chatCreated>;\nexport type ChatUpdated = EventOf<typeof discussionEvents.chatUpdated>;\nexport type ChatParticipantAdded = EventOf<typeof discussionEvents.chatParticipantAdded>;\nexport type MessageSent = EventOf<typeof discussionEvents.messageSent>;\nexport type MessageUpdated = EventOf<typeof discussionEvents.messageUpdated>;\nexport type MessageReactionAdded = EventOf<typeof discussionEvents.messageReactionAdded>;\nexport type MessageDeleted = EventOf<typeof discussionEvents.messageDeleted>;\nexport type MessageReported = EventOf<typeof discussionEvents.messageReported>;\nexport type DigestDue = EventOf<typeof discussionEvents.digestDue>;\nexport type NewDiscussionEvent = NewDomainEvent<DiscussionEvent>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"events.js","names":[],"sources":["../../src/discussion/events.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n chatSchema,\n commentReportSchema,\n commentSchema,\n idSchema,\n messageFlagSchema,\n messageSchema,\n postFlagSchema,\n postSchema,\n reactionEmojiSchema,\n} from '../types/schemas/index.js';\nimport {\n defineEvent,\n type EventOf,\n type EventOfValues,\n type NewDomainEvent,\n} from '../shared/ports.js';\n\nconst mentioned = { mentionedOrgUserIds: z.array(idSchema) };\nconst commentEventSchema = commentSchema.extend(mentioned);\nconst postEventSchema = postSchema.extend(mentioned);\nconst publicPost = postSchema.strip();\nconst eventMessageSchema = messageSchema.omit({ clientId: true });\nconst messageEventSchema = eventMessageSchema.extend(mentioned);\n\nconst publicComment = commentSchema\n .pick({\n id: true,\n orgId: true,\n activityId: true,\n postId: true,\n communityId: true,\n parentId: true,\n orgUserId: true,\n body: true,\n status: true,\n removedBy: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\n\nconst reportedComment = commentReportSchema.extend({ communityId: idSchema.nullable() });\nconst publicCommentReport = reportedComment\n .pick({\n id: true,\n orgId: true,\n communityId: true,\n commentId: true,\n orgUserId: true,\n reason: true,\n resolvedAt: true,\n createdAt: true,\n updatedAt: true,\n })\n .strip();\nconst reportedPost = postFlagSchema.extend({ communityId: idSchema });\n\nconst chatEventSchema = chatSchema.extend({\n participantIds: z.array(idSchema),\n});\n\nconst publicChat = chatEventSchema\n .pick({\n id: true,\n orgId: true,\n communityId: true,\n kind: true,\n status: true,\n createdBy: true,\n participantIds: true,\n })\n .strip();\n\nconst participantAddedSchema = z\n .object({\n chatId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n addedBy: idSchema,\n })\n .strict();\n\nconst publicMessage = messageSchema.omit({ body: true, clientId: true }).strip();\n\nconst postReactionAddedSchema = z\n .object({\n postId: idSchema,\n spaceId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n reaction: reactionEmojiSchema,\n })\n .strict();\n\nconst commentReactionAddedSchema = z\n .object({\n commentId: idSchema,\n postId: idSchema.nullable(),\n activityId: idSchema.nullable(),\n spaceId: idSchema.nullable(),\n communityId: idSchema.nullable(),\n orgUserId: idSchema,\n reaction: reactionEmojiSchema,\n })\n .strict();\n\nconst messageReactionAddedSchema = z\n .object({\n messageId: idSchema,\n chatId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n reaction: reactionEmojiSchema,\n })\n .strict();\n\nconst messageReactionsChangedSchema = z\n .object({\n messageId: idSchema,\n chatId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n reaction: reactionEmojiSchema.nullable(),\n })\n .strict();\n\nconst chatReadSchema = z\n .object({\n chatId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n lastReadMessageId: idSchema,\n })\n .strict();\n\nconst chatMutedSchema = z\n .object({\n chatId: idSchema,\n communityId: idSchema,\n orgUserId: idSchema,\n mutedUntil: z.coerce.date().nullable(),\n })\n .strict();\n\nconst digestDueSchema = z\n .object({ communityId: idSchema, from: z.coerce.date(), to: z.coerce.date() })\n .strict();\nconst publicMessageFlag = messageFlagSchema.omit({ reason: true }).strip();\n\nexport const discussionEvents = {\n commentCreated: defineEvent({\n type: 'discussion.comment.created',\n version: 1,\n data: commentEventSchema,\n publicData: publicComment,\n }),\n commentPublished: defineEvent({\n type: 'discussion.comment.published',\n version: 1,\n data: commentEventSchema,\n publicData: publicComment,\n }),\n commentUpdated: defineEvent({\n type: 'discussion.comment.updated',\n version: 1,\n data: commentEventSchema,\n publicData: publicComment,\n }),\n commentReactionAdded: defineEvent({\n type: 'discussion.comment.reaction.added',\n version: 1,\n data: commentReactionAddedSchema,\n publicData: commentReactionAddedSchema,\n }),\n commentRemoved: defineEvent({\n type: 'discussion.comment.removed',\n version: 1,\n data: commentSchema,\n publicData: publicComment,\n }),\n commentReported: defineEvent({\n type: 'discussion.comment.reported',\n version: 1,\n data: reportedComment,\n publicData: publicCommentReport,\n }),\n postCreated: defineEvent({\n type: 'discussion.post.created',\n version: 1,\n data: postSchema,\n publicData: postSchema,\n }),\n postUpdated: defineEvent({\n type: 'discussion.post.updated',\n version: 1,\n data: postEventSchema,\n publicData: publicPost,\n }),\n postPublished: defineEvent({\n type: 'discussion.post.published',\n version: 1,\n data: postEventSchema,\n publicData: publicPost,\n }),\n postReactionAdded: defineEvent({\n type: 'discussion.post.reaction.added',\n version: 1,\n data: postReactionAddedSchema,\n publicData: postReactionAddedSchema,\n }),\n postRemoved: defineEvent({\n type: 'discussion.post.removed',\n version: 1,\n data: postSchema,\n publicData: postSchema,\n }),\n postReported: defineEvent({\n type: 'discussion.post.reported',\n version: 1,\n data: reportedPost,\n publicData: reportedPost,\n }),\n chatCreated: defineEvent({\n type: 'discussion.chat.created',\n version: 1,\n data: chatEventSchema,\n publicData: publicChat,\n }),\n chatUpdated: defineEvent({\n type: 'discussion.chat.updated',\n version: 1,\n data: chatEventSchema,\n publicData: publicChat,\n }),\n chatParticipantAdded: defineEvent({\n type: 'discussion.chat.participant.added',\n version: 1,\n data: participantAddedSchema,\n publicData: participantAddedSchema,\n }),\n chatRead: defineEvent({\n type: 'discussion.chat.read',\n version: 1,\n data: chatReadSchema,\n }),\n chatMuted: defineEvent({\n type: 'discussion.chat.muted',\n version: 1,\n data: chatMutedSchema,\n }),\n messageSent: defineEvent({\n type: 'discussion.message.sent',\n version: 1,\n data: messageEventSchema,\n publicData: publicMessage,\n }),\n messageUpdated: defineEvent({\n type: 'discussion.message.updated',\n version: 1,\n data: messageEventSchema,\n publicData: publicMessage,\n }),\n messageReactionAdded: defineEvent({\n type: 'discussion.message.reaction.added',\n version: 1,\n data: messageReactionAddedSchema,\n publicData: messageReactionAddedSchema,\n }),\n messageReactionsChanged: defineEvent({\n type: 'discussion.message.reactions.changed',\n version: 1,\n data: messageReactionsChangedSchema,\n }),\n messageDeleted: defineEvent({\n type: 'discussion.message.deleted',\n version: 1,\n data: eventMessageSchema,\n publicData: publicMessage,\n }),\n messageReported: defineEvent({\n type: 'discussion.message.reported',\n version: 1,\n data: messageFlagSchema,\n publicData: publicMessageFlag,\n }),\n digestDue: defineEvent({\n type: 'discussion.digest.due',\n version: 2,\n data: digestDueSchema,\n publicData: digestDueSchema,\n }),\n};\n\nexport type CommentCreated = EventOf<typeof discussionEvents.commentCreated>;\nexport type CommentPublished = EventOf<typeof discussionEvents.commentPublished>;\nexport type CommentUpdated = EventOf<typeof discussionEvents.commentUpdated>;\nexport type CommentReactionAdded = EventOf<typeof discussionEvents.commentReactionAdded>;\nexport type CommentRemoved = EventOf<typeof discussionEvents.commentRemoved>;\nexport type CommentReported = EventOf<typeof discussionEvents.commentReported>;\nexport type DiscussionEvent = EventOfValues<typeof discussionEvents>;\nexport type PostCreated = EventOf<typeof discussionEvents.postCreated>;\nexport type PostUpdated = EventOf<typeof discussionEvents.postUpdated>;\nexport type PostPublished = EventOf<typeof discussionEvents.postPublished>;\nexport type PostReactionAdded = EventOf<typeof discussionEvents.postReactionAdded>;\nexport type PostRemoved = EventOf<typeof discussionEvents.postRemoved>;\nexport type PostReported = EventOf<typeof discussionEvents.postReported>;\nexport type ChatCreated = EventOf<typeof discussionEvents.chatCreated>;\nexport type ChatUpdated = EventOf<typeof discussionEvents.chatUpdated>;\nexport type ChatParticipantAdded = EventOf<typeof discussionEvents.chatParticipantAdded>;\nexport type ChatRead = EventOf<typeof discussionEvents.chatRead>;\nexport type ChatMuted = EventOf<typeof discussionEvents.chatMuted>;\nexport type MessageSent = EventOf<typeof discussionEvents.messageSent>;\nexport type MessageUpdated = EventOf<typeof discussionEvents.messageUpdated>;\nexport type MessageReactionAdded = EventOf<typeof discussionEvents.messageReactionAdded>;\nexport type MessageReactionsChanged = EventOf<typeof discussionEvents.messageReactionsChanged>;\nexport type MessageDeleted = EventOf<typeof discussionEvents.messageDeleted>;\nexport type MessageReported = EventOf<typeof discussionEvents.messageReported>;\nexport type DigestDue = EventOf<typeof discussionEvents.digestDue>;\nexport type NewDiscussionEvent = NewDomainEvent<DiscussionEvent>;\n"],"mappings":";;;;;AAmBA,MAAM,YAAY,EAAE,qBAAqB,EAAE,MAAM,QAAQ,EAAE;AAC3D,MAAM,qBAAqB,cAAc,OAAO,SAAS;AACzD,MAAM,kBAAkB,WAAW,OAAO,SAAS;AACnD,MAAM,aAAa,WAAW,MAAM;AACpC,MAAM,qBAAqB,cAAc,KAAK,EAAE,UAAU,KAAK,CAAC;AAChE,MAAM,qBAAqB,mBAAmB,OAAO,SAAS;AAE9D,MAAM,gBAAgB,cACnB,KAAK;CACJ,IAAI;CACJ,OAAO;CACP,YAAY;CACZ,QAAQ;CACR,aAAa;CACb,UAAU;CACV,WAAW;CACX,MAAM;CACN,QAAQ;CACR,WAAW;CACX,WAAW;CACX,WAAW;AACb,CAAC,CAAC,CACD,MAAM;AAET,MAAM,kBAAkB,oBAAoB,OAAO,EAAE,aAAa,SAAS,SAAS,EAAE,CAAC;AACvF,MAAM,sBAAsB,gBACzB,KAAK;CACJ,IAAI;CACJ,OAAO;CACP,aAAa;CACb,WAAW;CACX,WAAW;CACX,QAAQ;CACR,YAAY;CACZ,WAAW;CACX,WAAW;AACb,CAAC,CAAC,CACD,MAAM;AACT,MAAM,eAAe,eAAe,OAAO,EAAE,aAAa,SAAS,CAAC;AAEpE,MAAM,kBAAkB,WAAW,OAAO,EACxC,gBAAgB,EAAE,MAAM,QAAQ,EAClC,CAAC;AAED,MAAM,aAAa,gBAChB,KAAK;CACJ,IAAI;CACJ,OAAO;CACP,aAAa;CACb,MAAM;CACN,QAAQ;CACR,WAAW;CACX,gBAAgB;AAClB,CAAC,CAAC,CACD,MAAM;AAET,MAAM,yBAAyB,EAC5B,OAAO;CACN,QAAQ;CACR,aAAa;CACb,WAAW;CACX,SAAS;AACX,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,gBAAgB,cAAc,KAAK;CAAE,MAAM;CAAM,UAAU;AAAK,CAAC,CAAC,CAAC,MAAM;AAE/E,MAAM,0BAA0B,EAC7B,OAAO;CACN,QAAQ;CACR,SAAS;CACT,aAAa;CACb,WAAW;CACX,UAAU;AACZ,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,6BAA6B,EAChC,OAAO;CACN,WAAW;CACX,QAAQ,SAAS,SAAS;CAC1B,YAAY,SAAS,SAAS;CAC9B,SAAS,SAAS,SAAS;CAC3B,aAAa,SAAS,SAAS;CAC/B,WAAW;CACX,UAAU;AACZ,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,6BAA6B,EAChC,OAAO;CACN,WAAW;CACX,QAAQ;CACR,aAAa;CACb,WAAW;CACX,UAAU;AACZ,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,gCAAgC,EACnC,OAAO;CACN,WAAW;CACX,QAAQ;CACR,aAAa;CACb,WAAW;CACX,UAAU,oBAAoB,SAAS;AACzC,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,iBAAiB,EACpB,OAAO;CACN,QAAQ;CACR,aAAa;CACb,WAAW;CACX,mBAAmB;AACrB,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,kBAAkB,EACrB,OAAO;CACN,QAAQ;CACR,aAAa;CACb,WAAW;CACX,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;AACvC,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,kBAAkB,EACrB,OAAO;CAAE,aAAa;CAAU,MAAM,EAAE,OAAO,KAAK;CAAG,IAAI,EAAE,OAAO,KAAK;AAAE,CAAC,CAAC,CAC7E,OAAO;AACV,MAAM,oBAAoB,kBAAkB,KAAK,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM;AAEzE,MAAa,mBAAmB;CAC9B,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,kBAAkB,YAAY;EAC5B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,sBAAsB,YAAY;EAChC,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,iBAAiB,YAAY;EAC3B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,aAAa,YAAY;EACvB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,aAAa,YAAY;EACvB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,eAAe,YAAY;EACzB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,mBAAmB,YAAY;EAC7B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,aAAa,YAAY;EACvB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,cAAc,YAAY;EACxB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,aAAa,YAAY;EACvB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,aAAa,YAAY;EACvB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,sBAAsB,YAAY;EAChC,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,UAAU,YAAY;EACpB,MAAM;EACN,SAAS;EACT,MAAM;CACR,CAAC;CACD,WAAW,YAAY;EACrB,MAAM;EACN,SAAS;EACT,MAAM;CACR,CAAC;CACD,aAAa,YAAY;EACvB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,sBAAsB,YAAY;EAChC,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,yBAAyB,YAAY;EACnC,MAAM;EACN,SAAS;EACT,MAAM;CACR,CAAC;CACD,gBAAgB,YAAY;EAC1B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,iBAAiB,YAAY;EAC3B,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;CACD,WAAW,YAAY;EACrB,MAAM;EACN,SAAS;EACT,MAAM;EACN,YAAY;CACd,CAAC;AACH"}
@@ -1,17 +1,20 @@
1
- import { CommentListItem, CommentReaction, CommentReportSummary, CommentSettings, CommentStatus, CommentView, CommentsConfig, ListCommentsQuery, ReactionCounts, ReactionEmoji } from "../types/schemas/discussion.js";
1
+ import { ChatLiveEvent, ChatUnreadSummary, CommentListItem, CommentReaction, CommentReportSummary, CommentSettings, CommentStatus, CommentView, CommentsConfig, ListCommentsQuery, LiveMessage, ReactionCounts, ReactionEmoji } from "../types/schemas/discussion.js";
2
2
  import { Comment, CommentAuthor, CommentReport } from "../types/discussion.js";
3
+ import "../types/index.js";
3
4
  import { Actor } from "../shared/actor.js";
4
5
  import "./model.js";
5
6
  import "./types.js";
6
- import { ActivityComments, AuthorProfileReader, AuthorRecord, AuthorRoleReader, BookmarkQuery, ChatInboxRow, ChatListItem, ChatRepository, ChatService, ChatUnitOfWork, ChatUnread, ChatWriteScope, CommentReactions, CommentWithContext, ContentAccessReader, CreatePostInput, DigestRunRepository, DigestScheduleReader, DigestService, DigestUnitOfWork, DigestWriteScope, DiscussionRepository, DiscussionService, DiscussionUnitOfWork, DiscussionWriteScope, FeedQuery, ItemTitle, ItemTitles, MentionsRepository, MessageQueue, MessageReactions, MuteInput, PageQuery, PostCommentInput, PostCommentReader, PostGuard, PostPatch, PostReactions, PostRepository, PostService, PostThreadsQuery, PostUnitOfWork, PostWriteScope, PublishedPost, SendMessageInput, SpaceModerationQueue, StartDirectInput, StartGroupInput, SubscriptionInput, SubscriptionService, SubscriptionsRepository, UpdatePostInput } from "./ports.js";
7
- import { authorView } from "./authors.js";
7
+ import { ActivityComments, ActivityGetter, AuthorPermissionReader, AuthorProfileReader, AuthorRecord, BookmarkQuery, ChatInboxRow, ChatListItem, ChatListQuery, ChatLiveReads, ChatMemberState, ChatMemberStates, ChatRepository, ChatService, ChatUnitOfWork, ChatUnread, ChatWriteScope, CommentReactions, CommentWithContext, CommentWithin, CommunityAccess, ContentAccessReader, CreatePostInput, DigestRunRepository, DigestScheduleReader, DigestService, DigestUnitOfWork, DigestWriteScope, DiscussionRepository, DiscussionService, DiscussionUnitOfWork, DiscussionWriteScope, FeedQuery, ItemTitle, ItemTitles, LiveChat, MentionsRepository, MessageQueue, MessageReactions, MuteInput, OpenableSpace, PageQuery, PostCommentInput, PostCommentReader, PostGuard, PostPatch, PostReactions, PostRepository, PostService, PostThreadsQuery, PostUnitOfWork, PostWriteScope, PublishedPost, ReactionChange, SendMessageInput, SpaceModerationQueue, SpaceReader, StartDirectInput, StartGroupInput, SubscriptionInput, SubscriptionService, SubscriptionUnitOfWork, SubscriptionWriteScope, SubscriptionsRepository, UpdatePostInput } from "./ports.js";
8
+ import { NO_BADGE, ReviewedItem, TeamBadge, isTeam, skipsReview, teamBadge } from "./rules.js";
9
+ import { authorName, authorView } from "./authors.js";
10
+ import { CHAT_CHANNEL, ChatChange, ChatHub, ChatHubOptions, ChatHubParams, ChatLiveForwarder, ChatLiveForwarderParams, LiveRegistration } from "./live.js";
8
11
  import { ChatServiceImpl } from "./chats.js";
9
12
  import { DigestServiceImpl, latestDueAt } from "./digests.js";
10
13
  import { DiscussionEvent, discussionEvents } from "./events.js";
11
14
  import { DEFAULT_SETTINGS, DiscussionServiceImpl } from "./service.js";
12
15
  import { PostServiceImpl } from "./posts.js";
13
16
  import { SubscriptionServiceImpl, activeSubscription } from "./subscriptions.js";
14
- import { nameMentions } from "./mentions.js";
17
+ import { mentionTokens, nameMentions } from "./mentions.js";
15
18
  import { DiscussionItemTitles } from "./titles.js";
16
19
  import { DIGEST_OPEN_JOB, POST_PUBLISH_JOB, discussionJobs, discussionRecurringJobs } from "./jobs.js";
17
- export { type ActivityComments, type Actor, type AuthorProfileReader, type AuthorRecord, type AuthorRoleReader, type BookmarkQuery, type ChatInboxRow, type ChatListItem, type ChatRepository, type ChatService, ChatServiceImpl, type ChatUnitOfWork, type ChatUnread, type ChatWriteScope, type Comment, type CommentAuthor, type CommentListItem, type CommentReaction, type CommentReactions, type CommentReport, type CommentReportSummary, type CommentSettings, type CommentStatus, type CommentView, type CommentWithContext, type CommentsConfig, type ContentAccessReader, type CreatePostInput, DEFAULT_SETTINGS, DIGEST_OPEN_JOB, type DigestRunRepository, type DigestScheduleReader, type DigestService, DigestServiceImpl, type DigestUnitOfWork, type DigestWriteScope, type DiscussionEvent, DiscussionItemTitles, type DiscussionRepository, type DiscussionService, DiscussionServiceImpl, type DiscussionUnitOfWork, type DiscussionWriteScope, type FeedQuery, type ItemTitle, type ItemTitles, type ListCommentsQuery, type MentionsRepository, type MessageQueue, type MessageReactions, type MuteInput, POST_PUBLISH_JOB, type PageQuery, type PostCommentInput, type PostCommentReader, type PostGuard, type PostPatch, type PostReactions, type PostRepository, type PostService, PostServiceImpl, type PostThreadsQuery, type PostUnitOfWork, type PostWriteScope, type PublishedPost, type ReactionCounts, type ReactionEmoji, type SendMessageInput, type SpaceModerationQueue, type StartDirectInput, type StartGroupInput, type SubscriptionInput, type SubscriptionService, SubscriptionServiceImpl, type SubscriptionsRepository, type UpdatePostInput, activeSubscription, authorView, discussionEvents, discussionJobs, discussionRecurringJobs, latestDueAt, nameMentions };
20
+ export { type ActivityComments, type ActivityGetter, type Actor, type AuthorPermissionReader, type AuthorProfileReader, type AuthorRecord, type BookmarkQuery, CHAT_CHANNEL, type ChatChange, ChatHub, type ChatHubOptions, type ChatHubParams, type ChatInboxRow, type ChatListItem, type ChatListQuery, type ChatLiveEvent, ChatLiveForwarder, type ChatLiveForwarderParams, type ChatLiveReads, type ChatMemberState, type ChatMemberStates, type ChatRepository, type ChatService, ChatServiceImpl, type ChatUnitOfWork, type ChatUnread, type ChatUnreadSummary, type ChatWriteScope, type Comment, type CommentAuthor, type CommentListItem, type CommentReaction, type CommentReactions, type CommentReport, type CommentReportSummary, type CommentSettings, type CommentStatus, type CommentView, type CommentWithContext, type CommentWithin, type CommentsConfig, type CommunityAccess, type ContentAccessReader, type CreatePostInput, DEFAULT_SETTINGS, DIGEST_OPEN_JOB, type DigestRunRepository, type DigestScheduleReader, type DigestService, DigestServiceImpl, type DigestUnitOfWork, type DigestWriteScope, type DiscussionEvent, DiscussionItemTitles, type DiscussionRepository, type DiscussionService, DiscussionServiceImpl, type DiscussionUnitOfWork, type DiscussionWriteScope, type FeedQuery, type ItemTitle, type ItemTitles, type ListCommentsQuery, type LiveChat, type LiveMessage, type LiveRegistration, type MentionsRepository, type MessageQueue, type MessageReactions, type MuteInput, NO_BADGE, type OpenableSpace, POST_PUBLISH_JOB, type PageQuery, type PostCommentInput, type PostCommentReader, type PostGuard, type PostPatch, type PostReactions, type PostRepository, type PostService, PostServiceImpl, type PostThreadsQuery, type PostUnitOfWork, type PostWriteScope, type PublishedPost, type ReactionChange, type ReactionCounts, type ReactionEmoji, type ReviewedItem, type SendMessageInput, type SpaceModerationQueue, type SpaceReader, type StartDirectInput, type StartGroupInput, type SubscriptionInput, type SubscriptionService, SubscriptionServiceImpl, type SubscriptionUnitOfWork, type SubscriptionWriteScope, type SubscriptionsRepository, type TeamBadge, type UpdatePostInput, activeSubscription, authorName, authorView, discussionEvents, discussionJobs, discussionRecurringJobs, isTeam, latestDueAt, mentionTokens, nameMentions, skipsReview, teamBadge };
@@ -1,11 +1,13 @@
1
1
  import { discussionEvents } from "./events.js";
2
- import { authorView } from "./authors.js";
3
- import { nameMentions } from "./mentions.js";
2
+ import { authorName, authorView } from "./authors.js";
3
+ import { mentionTokens, nameMentions } from "./mentions.js";
4
+ import { NO_BADGE, isTeam, skipsReview, teamBadge } from "./rules.js";
4
5
  import { DEFAULT_SETTINGS, DiscussionServiceImpl } from "./service.js";
5
6
  import { DIGEST_OPEN_JOB, POST_PUBLISH_JOB, discussionJobs, discussionRecurringJobs } from "./jobs.js";
6
7
  import { SubscriptionServiceImpl, activeSubscription } from "./subscriptions.js";
7
8
  import { PostServiceImpl } from "./posts.js";
8
9
  import { DigestServiceImpl, latestDueAt } from "./digests.js";
10
+ import { CHAT_CHANNEL, ChatHub, ChatLiveForwarder } from "./live.js";
9
11
  import { ChatServiceImpl } from "./chats.js";
10
12
  import { DiscussionItemTitles } from "./titles.js";
11
- export { ChatServiceImpl, DEFAULT_SETTINGS, DIGEST_OPEN_JOB, DigestServiceImpl, DiscussionItemTitles, DiscussionServiceImpl, POST_PUBLISH_JOB, PostServiceImpl, SubscriptionServiceImpl, activeSubscription, authorView, discussionEvents, discussionJobs, discussionRecurringJobs, latestDueAt, nameMentions };
13
+ export { CHAT_CHANNEL, ChatHub, ChatLiveForwarder, ChatServiceImpl, DEFAULT_SETTINGS, DIGEST_OPEN_JOB, DigestServiceImpl, DiscussionItemTitles, DiscussionServiceImpl, NO_BADGE, POST_PUBLISH_JOB, PostServiceImpl, SubscriptionServiceImpl, activeSubscription, authorName, authorView, discussionEvents, discussionJobs, discussionRecurringJobs, isTeam, latestDueAt, mentionTokens, nameMentions, skipsReview, teamBadge };
@@ -0,0 +1,106 @@
1
+ import { Logger } from "../types/ports.js";
2
+ import { ChatLiveEvent } from "../types/schemas/discussion.js";
3
+ import "../types/index.js";
4
+ import { Actor } from "../shared/actor.js";
5
+ import { EventBus, PubSub } from "../shared/ports.js";
6
+ import { ChatLiveReads } from "./ports.js";
7
+ import { z } from "zod";
8
+ //#region src/discussion/live.d.ts
9
+ declare const CHAT_CHANNEL = "discussion.chats";
10
+ declare const TYPING = "typing";
11
+ declare const chatChangeSchema: z.ZodObject<{
12
+ event: z.ZodString;
13
+ orgId: z.ZodString;
14
+ communityId: z.ZodString;
15
+ chatId: z.ZodString;
16
+ messageId: z.ZodOptional<z.ZodString>;
17
+ orgUserId: z.ZodOptional<z.ZodString>;
18
+ members: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
+ reaction: z.ZodOptional<z.ZodNullable<z.ZodString>>;
20
+ until: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>;
22
+ /** One chat change on the `discussion.chats` channel. It never carries a body;
23
+ * every instance reads current state itself. */
24
+ type ChatChange = z.infer<typeof chatChangeSchema>;
25
+ /** Publishes a change, logging and dropping it when the publish fails or has
26
+ * not finished within 2 s. Never throws. */
27
+ declare function publishChange(pubsub: PubSub, change: ChatChange, logger: Logger, timeoutMs?: number): Promise<void>;
28
+ type ChatLiveForwarderParams = {
29
+ pubsub: PubSub;
30
+ logger?: Logger;
31
+ timeoutMs?: number;
32
+ };
33
+ /** Publishes every chat change committed through the outbox to every instance. */
34
+ declare class ChatLiveForwarder {
35
+ private readonly pubsub;
36
+ private readonly logger;
37
+ private readonly timeoutMs;
38
+ constructor(params: ChatLiveForwarderParams);
39
+ attach(bus: EventBus): void;
40
+ }
41
+ interface ChatHubOptions {
42
+ flushMs?: number;
43
+ closeTimeoutMs?: number;
44
+ }
45
+ type ChatHubParams = ChatHubOptions & {
46
+ pubsub: PubSub;
47
+ reads: ChatLiveReads;
48
+ logger?: Logger;
49
+ };
50
+ interface LiveRegistration {
51
+ communityId: string;
52
+ actor: Actor;
53
+ }
54
+ /** This process's open chat streams, and the live delivery of every chat
55
+ * change to them. */
56
+ declare class ChatHub {
57
+ private readonly pubsub;
58
+ private readonly reads;
59
+ private readonly logger;
60
+ private readonly flushMs;
61
+ private readonly closeTimeoutMs;
62
+ private readonly streams;
63
+ private readonly byMember;
64
+ private readonly byCommunity;
65
+ private readonly queues;
66
+ private ready;
67
+ private running;
68
+ private pending;
69
+ private dirty;
70
+ private flushing;
71
+ private flushAgain;
72
+ private closing;
73
+ private unsubscribe;
74
+ private flushTimer;
75
+ constructor(params: ChatHubParams);
76
+ start(): Promise<void>;
77
+ /** Ends every stream with `closed { reason: 'shutdown' }` and waits, up to
78
+ * 2 s in all, for each to be read to its end. */
79
+ close(): Promise<void>;
80
+ /** Registers one stream. It starts with `ready`, then the member's unread. */
81
+ open(registration: LiveRegistration): AsyncIterable<ChatLiveEvent>;
82
+ private index;
83
+ private unindex;
84
+ private unregister;
85
+ private streamsOf;
86
+ private communityStreams;
87
+ private receive;
88
+ private pump;
89
+ private overflow;
90
+ private reset;
91
+ private resync;
92
+ private handle;
93
+ private participantStreams;
94
+ private onMessage;
95
+ private onReactions;
96
+ private onChat;
97
+ private onTyping;
98
+ private markDirty;
99
+ /** Pushes the `chat.state` of every dirty member and chat and the `unread`
100
+ * of every dirty member, read now. One flush runs at a time. */
101
+ private flush;
102
+ private flushGroup;
103
+ }
104
+ //#endregion
105
+ export { CHAT_CHANNEL, ChatChange, ChatHub, ChatHubOptions, ChatHubParams, ChatLiveForwarder, ChatLiveForwarderParams, LiveRegistration, TYPING, publishChange };
106
+ //# sourceMappingURL=live.d.ts.map