@headless-lms/core 0.3.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.
- package/dist/assets/events.d.ts +24 -18
- package/dist/assets/file-urls.d.ts +11 -7
- package/dist/assets/file-urls.js +14 -4
- package/dist/assets/file-urls.js.map +1 -1
- package/dist/assets/index.d.ts +5 -4
- package/dist/assets/index.js +4 -3
- package/dist/assets/jobs.d.ts +15 -0
- package/dist/assets/jobs.js +30 -0
- package/dist/assets/jobs.js.map +1 -0
- package/dist/assets/ports.d.ts +37 -17
- package/dist/assets/service.d.ts +30 -15
- package/dist/assets/service.js +229 -59
- package/dist/assets/service.js.map +1 -1
- package/dist/automations/actions.js +2 -63
- package/dist/automations/actions.js.map +1 -1
- package/dist/automations/catalog.d.ts +1 -2
- package/dist/automations/catalog.js +137 -65
- package/dist/automations/catalog.js.map +1 -1
- package/dist/automations/community-derivations.js +20 -20
- package/dist/automations/community-derivations.js.map +1 -1
- package/dist/automations/community-mail.d.ts +36 -20
- package/dist/automations/community-mail.js +32 -24
- package/dist/automations/community-mail.js.map +1 -1
- package/dist/automations/event-permissions.d.ts +12 -0
- package/dist/automations/event-permissions.js +38 -0
- package/dist/automations/event-permissions.js.map +1 -0
- package/dist/automations/events.d.ts +0 -10
- package/dist/automations/index.d.ts +12 -4
- package/dist/automations/index.js +9 -1
- package/dist/automations/notifications/applicable.d.ts +8 -0
- package/dist/automations/notifications/applicable.js +12 -0
- package/dist/automations/notifications/applicable.js.map +1 -0
- package/dist/automations/notifications/debounce.d.ts +25 -0
- package/dist/automations/notifications/debounce.js +93 -0
- package/dist/automations/notifications/debounce.js.map +1 -0
- package/dist/automations/notifications/defaults.d.ts +8 -0
- package/dist/automations/notifications/defaults.js +346 -0
- package/dist/automations/notifications/defaults.js.map +1 -0
- package/dist/automations/notifications/delivery.d.ts +28 -0
- package/dist/automations/notifications/delivery.js +88 -0
- package/dist/automations/notifications/delivery.js.map +1 -0
- package/dist/automations/notifications/processor.d.ts +64 -0
- package/dist/automations/notifications/processor.js +270 -0
- package/dist/automations/notifications/processor.js.map +1 -0
- package/dist/automations/notifications/rules/content.d.ts +6 -0
- package/dist/automations/notifications/rules/content.js +96 -0
- package/dist/automations/notifications/rules/content.js.map +1 -0
- package/dist/automations/notifications/rules/discussion.d.ts +7 -0
- package/dist/automations/notifications/rules/discussion.js +678 -0
- package/dist/automations/notifications/rules/discussion.js.map +1 -0
- package/dist/automations/notifications/rules/entitlements.d.ts +6 -0
- package/dist/automations/notifications/rules/entitlements.js +276 -0
- package/dist/automations/notifications/rules/entitlements.js.map +1 -0
- package/dist/automations/notifications/rules/events.d.ts +9 -0
- package/dist/automations/notifications/rules/events.js +27 -0
- package/dist/automations/notifications/rules/events.js.map +1 -0
- package/dist/automations/notifications/rules/index.d.ts +6 -0
- package/dist/automations/notifications/rules/index.js +15 -0
- package/dist/automations/notifications/rules/index.js.map +1 -0
- package/dist/automations/notifications/rules/organizations.d.ts +6 -0
- package/dist/automations/notifications/rules/organizations.js +35 -0
- package/dist/automations/notifications/rules/organizations.js.map +1 -0
- package/dist/automations/notifications/rules/recipients.d.ts +32 -0
- package/dist/automations/notifications/rules/recipients.js +98 -0
- package/dist/automations/notifications/rules/recipients.js.map +1 -0
- package/dist/automations/notifications/service.d.ts +29 -0
- package/dist/automations/notifications/service.js +45 -0
- package/dist/automations/notifications/service.js.map +1 -0
- package/dist/automations/notifications/types.d.ts +7 -0
- package/dist/automations/notifications/types.js +560 -0
- package/dist/automations/notifications/types.js.map +1 -0
- package/dist/automations/ports.d.ts +134 -21
- package/dist/automations/service.d.ts +30 -30
- package/dist/automations/service.js +111 -144
- package/dist/automations/service.js.map +1 -1
- package/dist/content/event-sight.d.ts +11 -0
- package/dist/content/event-sight.js +11 -0
- package/dist/content/event-sight.js.map +1 -0
- package/dist/content/events.d.ts +437 -46
- package/dist/content/events.js +45 -1
- package/dist/content/events.js.map +1 -1
- package/dist/content/index.d.ts +8 -4
- package/dist/content/index.js +5 -1
- package/dist/content/jobs.d.ts +16 -0
- package/dist/content/jobs.js +37 -0
- package/dist/content/jobs.js.map +1 -0
- package/dist/content/model.d.ts +2 -2
- package/dist/content/notification-categories.d.ts +37 -0
- package/dist/content/notification-categories.js +73 -0
- package/dist/content/notification-categories.js.map +1 -0
- package/dist/content/ports.d.ts +132 -68
- package/dist/content/service.d.ts +100 -68
- package/dist/content/service.js +703 -146
- package/dist/content/service.js.map +1 -1
- package/dist/content/titles.d.ts +25 -0
- package/dist/content/titles.js +82 -0
- package/dist/content/titles.js.map +1 -0
- package/dist/content/types.d.ts +2 -2
- package/dist/discussion/authors.d.ts +4 -2
- package/dist/discussion/authors.js +9 -5
- package/dist/discussion/authors.js.map +1 -1
- package/dist/discussion/chats.d.ts +63 -39
- package/dist/discussion/chats.js +455 -190
- package/dist/discussion/chats.js.map +1 -1
- package/dist/discussion/digests.d.ts +24 -0
- package/dist/discussion/digests.js +104 -0
- package/dist/discussion/digests.js.map +1 -0
- package/dist/discussion/events.d.ts +227 -23
- package/dist/discussion/events.js +114 -19
- package/dist/discussion/events.js.map +1 -1
- package/dist/discussion/index.d.ts +12 -4
- package/dist/discussion/index.js +9 -2
- package/dist/discussion/jobs.d.ts +16 -0
- package/dist/discussion/jobs.js +40 -0
- package/dist/discussion/jobs.js.map +1 -0
- package/dist/discussion/live.d.ts +106 -0
- package/dist/discussion/live.js +642 -0
- package/dist/discussion/live.js.map +1 -0
- package/dist/discussion/mentions.d.ts +11 -0
- package/dist/discussion/mentions.js +35 -0
- package/dist/discussion/mentions.js.map +1 -0
- package/dist/discussion/ports.d.ts +279 -114
- package/dist/discussion/ports.js.map +1 -1
- package/dist/discussion/posts.d.ts +60 -44
- package/dist/discussion/posts.js +453 -287
- package/dist/discussion/posts.js.map +1 -1
- package/dist/discussion/rules.d.ts +18 -0
- package/dist/discussion/rules.js +22 -0
- package/dist/discussion/rules.js.map +1 -0
- package/dist/discussion/service.d.ts +50 -35
- package/dist/discussion/service.js +333 -205
- package/dist/discussion/service.js.map +1 -1
- package/dist/discussion/subscriptions.d.ts +37 -0
- package/dist/discussion/subscriptions.js +115 -0
- package/dist/discussion/subscriptions.js.map +1 -0
- package/dist/discussion/titles.d.ts +28 -0
- package/dist/discussion/titles.js +98 -0
- package/dist/discussion/titles.js.map +1 -0
- package/dist/entitlements/events.d.ts +20 -20
- package/dist/entitlements/index.d.ts +5 -4
- package/dist/entitlements/index.js +3 -2
- package/dist/entitlements/jobs.d.ts +12 -0
- package/dist/entitlements/jobs.js +18 -0
- package/dist/entitlements/jobs.js.map +1 -0
- package/dist/entitlements/model.d.ts +2 -2
- package/dist/entitlements/ports.d.ts +68 -38
- package/dist/entitlements/rules.d.ts +3 -6
- package/dist/entitlements/rules.js +5 -10
- package/dist/entitlements/rules.js.map +1 -1
- package/dist/entitlements/service.d.ts +43 -28
- package/dist/entitlements/service.js +387 -160
- package/dist/entitlements/service.js.map +1 -1
- package/dist/identity/devices.d.ts +30 -0
- package/dist/identity/devices.js +109 -0
- package/dist/identity/devices.js.map +1 -0
- package/dist/identity/index.d.ts +6 -5
- package/dist/identity/index.js +4 -3
- package/dist/identity/model.d.ts +2 -2
- package/dist/identity/notification-settings.d.ts +28 -0
- package/dist/identity/notification-settings.js +114 -0
- package/dist/identity/notification-settings.js.map +1 -0
- package/dist/identity/ports.d.ts +80 -56
- package/dist/identity/service.d.ts +8 -7
- package/dist/identity/service.js +17 -13
- package/dist/identity/service.js.map +1 -1
- package/dist/integrations/ports.d.ts +9 -8
- package/dist/integrations/service.d.ts +9 -8
- package/dist/integrations/service.js +33 -16
- package/dist/integrations/service.js.map +1 -1
- package/dist/organizations/default-roles.d.ts +22 -0
- package/dist/organizations/default-roles.js +89 -0
- package/dist/organizations/default-roles.js.map +1 -0
- package/dist/organizations/effective-permissions.d.ts +45 -0
- package/dist/organizations/effective-permissions.js +113 -0
- package/dist/organizations/effective-permissions.js.map +1 -0
- package/dist/organizations/events.d.ts +320 -181
- package/dist/organizations/events.js +90 -18
- package/dist/organizations/events.js.map +1 -1
- package/dist/organizations/index.d.ts +15 -10
- package/dist/organizations/index.js +8 -3
- package/dist/organizations/members.d.ts +66 -8
- package/dist/organizations/members.js.map +1 -1
- package/dist/organizations/notification-catalog.d.ts +31 -0
- package/dist/organizations/notification-catalog.js +32 -0
- package/dist/organizations/notification-catalog.js.map +1 -0
- package/dist/organizations/notification-categories.d.ts +34 -0
- package/dist/organizations/notification-categories.js +66 -0
- package/dist/organizations/notification-categories.js.map +1 -0
- package/dist/organizations/org-roles.d.ts +33 -0
- package/dist/organizations/org-roles.js +49 -0
- package/dist/organizations/org-roles.js.map +1 -0
- package/dist/organizations/permissions.d.ts +311 -0
- package/dist/organizations/permissions.js +327 -0
- package/dist/organizations/permissions.js.map +1 -0
- package/dist/organizations/ports.d.ts +187 -65
- package/dist/organizations/service.d.ts +104 -35
- package/dist/organizations/service.js +1247 -323
- package/dist/organizations/service.js.map +1 -1
- package/dist/organizations/testing.d.ts +18 -0
- package/dist/organizations/testing.js +37 -0
- package/dist/organizations/testing.js.map +1 -0
- package/dist/organizations/types.d.ts +5 -16
- package/dist/progress/index.d.ts +2 -2
- package/dist/progress/ports.d.ts +11 -3
- package/dist/progress/service.d.ts +6 -5
- package/dist/progress/service.js +23 -8
- package/dist/progress/service.js.map +1 -1
- package/dist/reporting/admin/index.d.ts +6 -4
- package/dist/reporting/admin/model.d.ts +36 -3
- package/dist/reporting/admin/ports.d.ts +39 -14
- package/dist/reporting/admin/service.d.ts +32 -11
- package/dist/reporting/admin/service.js +102 -18
- package/dist/reporting/admin/service.js.map +1 -1
- package/dist/reporting/events/index.d.ts +27 -0
- package/dist/reporting/events/index.js +20 -0
- package/dist/reporting/events/index.js.map +1 -0
- package/dist/reporting/member/calendar.d.ts +11 -0
- package/dist/reporting/member/calendar.js +75 -0
- package/dist/reporting/member/calendar.js.map +1 -0
- package/dist/reporting/member/index.d.ts +3 -2
- package/dist/reporting/member/model.d.ts +80 -26
- package/dist/reporting/member/ports.d.ts +50 -28
- package/dist/reporting/member/service.d.ts +81 -35
- package/dist/reporting/member/service.js +438 -145
- package/dist/reporting/member/service.js.map +1 -1
- package/dist/shared/actor.d.ts +22 -3
- package/dist/shared/errors.d.ts +15 -2
- package/dist/shared/errors.js +21 -2
- package/dist/shared/errors.js.map +1 -1
- package/dist/shared/id.d.ts +7 -0
- package/dist/shared/id.js +8 -1
- package/dist/shared/id.js.map +1 -1
- package/dist/shared/logger.d.ts +2 -1
- package/dist/shared/logger.js +10 -1
- package/dist/shared/logger.js.map +1 -1
- package/dist/shared/mailer.d.ts +11 -1
- package/dist/shared/mailer.js +32 -5
- package/dist/shared/mailer.js.map +1 -1
- package/dist/shared/notification-categories.d.ts +16 -0
- package/dist/shared/notification-categories.js +94 -0
- package/dist/shared/notification-categories.js.map +1 -0
- package/dist/shared/notification-settings.d.ts +14 -0
- package/dist/shared/notification-settings.js +61 -0
- package/dist/shared/notification-settings.js.map +1 -0
- package/dist/shared/ports.d.ts +68 -2
- package/dist/shared/settings.d.ts +2 -1
- package/dist/shared/settings.js +1 -0
- package/dist/shared/settings.js.map +1 -1
- package/dist/types/automations.d.ts +8 -2
- package/dist/types/content.d.ts +2 -2
- package/dist/types/discussion.d.ts +4 -5
- package/dist/types/email-templates.d.ts +119 -6
- package/dist/types/entitlements.d.ts +2 -2
- package/dist/types/identity.d.ts +14 -17
- package/dist/types/index.d.ts +13 -12
- package/dist/types/index.js +2 -1
- package/dist/types/notifications.d.ts +157 -0
- package/dist/types/notifications.js +1 -0
- package/dist/types/organizations.d.ts +3 -2
- package/dist/types/ports.d.ts +8 -1
- package/dist/types/ports.js +7 -1
- package/dist/types/ports.js.map +1 -0
- package/dist/types/schemas/assets.d.ts +5 -5
- package/dist/types/schemas/assets.js +4 -3
- package/dist/types/schemas/assets.js.map +1 -1
- package/dist/types/schemas/automations.d.ts +1 -10
- package/dist/types/schemas/automations.js +1 -3
- package/dist/types/schemas/automations.js.map +1 -1
- package/dist/types/schemas/content.d.ts +596 -11
- package/dist/types/schemas/content.js +225 -9
- package/dist/types/schemas/content.js.map +1 -1
- package/dist/types/schemas/discussion.d.ts +362 -66
- package/dist/types/schemas/discussion.js +123 -15
- package/dist/types/schemas/discussion.js.map +1 -1
- package/dist/types/schemas/entitlements.d.ts +14 -1
- package/dist/types/schemas/entitlements.js +11 -4
- package/dist/types/schemas/entitlements.js.map +1 -1
- package/dist/types/schemas/identity.d.ts +1 -85
- package/dist/types/schemas/identity.js +1 -42
- package/dist/types/schemas/identity.js.map +1 -1
- package/dist/types/schemas/index.d.ts +8 -7
- package/dist/types/schemas/index.js +8 -7
- package/dist/types/schemas/notifications.d.ts +96 -0
- package/dist/types/schemas/notifications.js +57 -0
- package/dist/types/schemas/notifications.js.map +1 -0
- package/dist/types/schemas/organizations.d.ts +96 -60
- package/dist/types/schemas/organizations.js +78 -27
- package/dist/types/schemas/organizations.js.map +1 -1
- package/dist/types/schemas/progress.d.ts +0 -1
- package/dist/types/schemas/progress.js +0 -1
- package/dist/types/schemas/progress.js.map +1 -1
- package/package.json +1 -1
- package/dist/automations/community-notifications.d.ts +0 -16
- package/dist/automations/community-notifications.js +0 -84
- package/dist/automations/community-notifications.js.map +0 -1
- package/dist/automations/seeds.d.ts +0 -17
- package/dist/automations/seeds.js +0 -235
- package/dist/automations/seeds.js.map +0 -1
- package/dist/identity/notifications.d.ts +0 -27
- package/dist/identity/notifications.js +0 -101
- package/dist/identity/notifications.js.map +0 -1
- package/dist/organizations/access-scopes.d.ts +0 -19
- package/dist/organizations/access-scopes.js +0 -89
- package/dist/organizations/access-scopes.js.map +0 -1
- package/dist/organizations/roles.d.ts +0 -19
- package/dist/organizations/roles.js +0 -82
- package/dist/organizations/roles.js.map +0 -1
|
@@ -1,12 +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,
|
|
7
|
-
import {
|
|
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";
|
|
12
|
+
import { DigestServiceImpl, latestDueAt } from "./digests.js";
|
|
9
13
|
import { DiscussionEvent, discussionEvents } from "./events.js";
|
|
10
14
|
import { DEFAULT_SETTINGS, DiscussionServiceImpl } from "./service.js";
|
|
11
15
|
import { PostServiceImpl } from "./posts.js";
|
|
12
|
-
|
|
16
|
+
import { SubscriptionServiceImpl, activeSubscription } from "./subscriptions.js";
|
|
17
|
+
import { mentionTokens, nameMentions } from "./mentions.js";
|
|
18
|
+
import { DiscussionItemTitles } from "./titles.js";
|
|
19
|
+
import { DIGEST_OPEN_JOB, POST_PUBLISH_JOB, discussionJobs, discussionRecurringJobs } from "./jobs.js";
|
|
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 };
|
package/dist/discussion/index.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { discussionEvents } from "./events.js";
|
|
2
|
-
import { authorView } from "./authors.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";
|
|
3
5
|
import { DEFAULT_SETTINGS, DiscussionServiceImpl } from "./service.js";
|
|
6
|
+
import { DIGEST_OPEN_JOB, POST_PUBLISH_JOB, discussionJobs, discussionRecurringJobs } from "./jobs.js";
|
|
7
|
+
import { SubscriptionServiceImpl, activeSubscription } from "./subscriptions.js";
|
|
4
8
|
import { PostServiceImpl } from "./posts.js";
|
|
9
|
+
import { DigestServiceImpl, latestDueAt } from "./digests.js";
|
|
10
|
+
import { CHAT_CHANNEL, ChatHub, ChatLiveForwarder } from "./live.js";
|
|
5
11
|
import { ChatServiceImpl } from "./chats.js";
|
|
6
|
-
|
|
12
|
+
import { DiscussionItemTitles } from "./titles.js";
|
|
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,16 @@
|
|
|
1
|
+
import { Logger } from "../types/ports.js";
|
|
2
|
+
import { RecurringJob, ScheduledJob } from "../shared/ports.js";
|
|
3
|
+
import { DigestService, PostService } from "./ports.js";
|
|
4
|
+
//#region src/discussion/jobs.d.ts
|
|
5
|
+
declare const POST_PUBLISH_JOB = "discussion.post.publish";
|
|
6
|
+
declare const DIGEST_OPEN_JOB = "discussion.digest.open";
|
|
7
|
+
interface DiscussionJobDeps {
|
|
8
|
+
posts: Pick<PostService, 'publishScheduled'>;
|
|
9
|
+
digests: Pick<DigestService, 'openDue'>;
|
|
10
|
+
logger?: Logger;
|
|
11
|
+
}
|
|
12
|
+
declare function discussionJobs(deps: DiscussionJobDeps): ScheduledJob[];
|
|
13
|
+
declare const discussionRecurringJobs: RecurringJob[];
|
|
14
|
+
//#endregion
|
|
15
|
+
export { DIGEST_OPEN_JOB, DiscussionJobDeps, POST_PUBLISH_JOB, discussionJobs, discussionRecurringJobs };
|
|
16
|
+
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { idSchema } from "../types/schemas/shared.js";
|
|
2
|
+
import { noopLogger } from "../shared/logger.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
//#region src/discussion/jobs.ts
|
|
5
|
+
const POST_PUBLISH_JOB = "discussion.post.publish";
|
|
6
|
+
const DIGEST_OPEN_JOB = "discussion.digest.open";
|
|
7
|
+
const postPublishPayload = z.object({
|
|
8
|
+
orgId: idSchema,
|
|
9
|
+
postId: idSchema
|
|
10
|
+
}).strict();
|
|
11
|
+
function discussionJobs(deps) {
|
|
12
|
+
const logger = deps.logger ?? noopLogger;
|
|
13
|
+
return [{
|
|
14
|
+
job: POST_PUBLISH_JOB,
|
|
15
|
+
async run(payload, fire) {
|
|
16
|
+
const parsed = postPublishPayload.safeParse(payload);
|
|
17
|
+
if (!parsed.success) {
|
|
18
|
+
logger.error("scheduled post payload refused", {
|
|
19
|
+
job: POST_PUBLISH_JOB,
|
|
20
|
+
fireId: fire.id
|
|
21
|
+
});
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
await deps.posts.publishScheduled(parsed.data.orgId, parsed.data.postId, fire.startedAt);
|
|
25
|
+
}
|
|
26
|
+
}, {
|
|
27
|
+
job: DIGEST_OPEN_JOB,
|
|
28
|
+
async run(_payload, fire) {
|
|
29
|
+
await deps.digests.openDue(fire.startedAt);
|
|
30
|
+
}
|
|
31
|
+
}];
|
|
32
|
+
}
|
|
33
|
+
const discussionRecurringJobs = [{
|
|
34
|
+
job: DIGEST_OPEN_JOB,
|
|
35
|
+
cron: "0 * * * *"
|
|
36
|
+
}];
|
|
37
|
+
//#endregion
|
|
38
|
+
export { DIGEST_OPEN_JOB, POST_PUBLISH_JOB, discussionJobs, discussionRecurringJobs };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","names":[],"sources":["../../src/discussion/jobs.ts"],"sourcesContent":["import { z } from 'zod';\nimport { idSchema } from '../types/schemas/index.js';\nimport type { Logger, RecurringJob, ScheduledJob } from '../shared/ports.js';\nimport { noopLogger } from '../shared/logger.js';\nimport type { DigestService, PostService } from './ports.js';\n\nexport const POST_PUBLISH_JOB = 'discussion.post.publish';\nexport const DIGEST_OPEN_JOB = 'discussion.digest.open';\n\nconst postPublishPayload = z.object({ orgId: idSchema, postId: idSchema }).strict();\n\nexport interface DiscussionJobDeps {\n posts: Pick<PostService, 'publishScheduled'>;\n digests: Pick<DigestService, 'openDue'>;\n logger?: Logger;\n}\n\nexport function discussionJobs(deps: DiscussionJobDeps): ScheduledJob[] {\n const logger = deps.logger ?? noopLogger;\n return [\n {\n job: POST_PUBLISH_JOB,\n async run(payload, fire) {\n const parsed = postPublishPayload.safeParse(payload);\n if (!parsed.success) {\n logger.error('scheduled post payload refused', {\n job: POST_PUBLISH_JOB,\n fireId: fire.id,\n });\n return;\n }\n await deps.posts.publishScheduled(parsed.data.orgId, parsed.data.postId, fire.startedAt);\n },\n },\n {\n job: DIGEST_OPEN_JOB,\n async run(_payload, fire) {\n await deps.digests.openDue(fire.startedAt);\n },\n },\n ];\n}\n\nexport const discussionRecurringJobs: RecurringJob[] = [\n { job: DIGEST_OPEN_JOB, cron: '0 * * * *' },\n];\n"],"mappings":";;;;AAMA,MAAa,mBAAmB;AAChC,MAAa,kBAAkB;AAE/B,MAAM,qBAAqB,EAAE,OAAO;CAAE,OAAO;CAAU,QAAQ;AAAS,CAAC,CAAC,CAAC,OAAO;AAQlF,SAAgB,eAAe,MAAyC;CACtE,MAAM,SAAS,KAAK,UAAU;CAC9B,OAAO,CACL;EACE,KAAK;EACL,MAAM,IAAI,SAAS,MAAM;GACvB,MAAM,SAAS,mBAAmB,UAAU,OAAO;GACnD,IAAI,CAAC,OAAO,SAAS;IACnB,OAAO,MAAM,kCAAkC;KAC7C,KAAK;KACL,QAAQ,KAAK;IACf,CAAC;IACD;GACF;GACA,MAAM,KAAK,MAAM,iBAAiB,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,KAAK,SAAS;EACzF;CACF,GACA;EACE,KAAK;EACL,MAAM,IAAI,UAAU,MAAM;GACxB,MAAM,KAAK,QAAQ,QAAQ,KAAK,SAAS;EAC3C;CACF,CACF;AACF;AAEA,MAAa,0BAA0C,CACrD;CAAE,KAAK;CAAiB,MAAM;AAAY,CAC5C"}
|
|
@@ -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
|