@messenger-box/platform-server 10.0.3-alpha.7 → 10.0.3-alpha.74

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 (202) hide show
  1. package/lib/config/env-config.d.ts +7 -0
  2. package/lib/config/env-config.js +20 -0
  3. package/lib/config/env-config.js.map +1 -1
  4. package/lib/containers/containers.js +9 -1
  5. package/lib/containers/containers.js.map +1 -1
  6. package/lib/containers/context-services-from-container.d.ts +1 -1
  7. package/lib/containers/context-services-from-container.js +4 -2
  8. package/lib/containers/context-services-from-container.js.map +1 -1
  9. package/lib/graphql/resolvers/ai-fragment.d.ts +3 -0
  10. package/lib/graphql/resolvers/ai-fragment.js +276 -0
  11. package/lib/graphql/resolvers/ai-fragment.js.map +1 -0
  12. package/lib/graphql/resolvers/channel-member.d.ts +3 -2
  13. package/lib/graphql/resolvers/channel-member.js +30 -5
  14. package/lib/graphql/resolvers/channel-member.js.map +1 -1
  15. package/lib/graphql/resolvers/channel.d.ts +3 -2
  16. package/lib/graphql/resolvers/channel.js +308 -53
  17. package/lib/graphql/resolvers/channel.js.map +1 -1
  18. package/lib/graphql/resolvers/extended-token-account.d.ts +3 -2
  19. package/lib/graphql/resolvers/extended-token-account.js +90 -23
  20. package/lib/graphql/resolvers/extended-token-account.js.map +1 -1
  21. package/lib/graphql/resolvers/index.d.ts +1 -1
  22. package/lib/graphql/resolvers/index.js +1 -1
  23. package/lib/graphql/resolvers/index.js.map +1 -1
  24. package/lib/graphql/resolvers/post-thread.d.ts +1 -1
  25. package/lib/graphql/resolvers/post-thread.js +294 -132
  26. package/lib/graphql/resolvers/post-thread.js.map +1 -1
  27. package/lib/graphql/resolvers/post.d.ts +2 -3
  28. package/lib/graphql/resolvers/post.js +874 -239
  29. package/lib/graphql/resolvers/post.js.map +1 -1
  30. package/lib/graphql/resolvers/reaction.d.ts +3 -2
  31. package/lib/graphql/resolvers/reaction.js +96 -14
  32. package/lib/graphql/resolvers/reaction.js.map +1 -1
  33. package/lib/graphql/schema/ai-fragment.graphql +311 -0
  34. package/lib/graphql/schema/ai-fragment.graphql.js +1 -0
  35. package/lib/graphql/schema/ai-fragment.graphql.js.map +1 -0
  36. package/lib/graphql/schema/channel-member.graphql +110 -21
  37. package/lib/graphql/schema/channel-member.graphql.js +1 -1
  38. package/lib/graphql/schema/channel.graphql +356 -38
  39. package/lib/graphql/schema/channel.graphql.js +1 -1
  40. package/lib/graphql/schema/index.js +2 -2
  41. package/lib/graphql/schema/index.js.map +1 -1
  42. package/lib/graphql/schema/post-thread.graphql +167 -21
  43. package/lib/graphql/schema/post-thread.graphql.js +1 -1
  44. package/lib/graphql/schema/post.graphql +360 -40
  45. package/lib/graphql/schema/post.graphql.js +1 -1
  46. package/lib/graphql/schema/reaction.graphql +71 -13
  47. package/lib/graphql/schema/reaction.graphql.js +1 -1
  48. package/lib/graphql/schema/services.graphql +21 -0
  49. package/lib/graphql/schema/users.graphql +76 -13
  50. package/lib/graphql/schema/users.graphql.js +1 -1
  51. package/lib/index.js +1 -1
  52. package/lib/index.js.map +1 -1
  53. package/lib/inngest/factory.d.ts +20 -0
  54. package/lib/inngest/factory.js +4 -0
  55. package/lib/inngest/factory.js.map +1 -0
  56. package/lib/inngest/functions.d.ts +235 -0
  57. package/lib/inngest/functions.js +1385 -0
  58. package/lib/inngest/functions.js.map +1 -0
  59. package/lib/inngest/index.d.ts +3 -0
  60. package/lib/inngest/prompt.d.ts +6 -0
  61. package/lib/inngest/prompt.js +871 -0
  62. package/lib/inngest/prompt.js.map +1 -0
  63. package/lib/inngest/utils.d.ts +5 -0
  64. package/lib/inngest/utils.js +32 -0
  65. package/lib/inngest/utils.js.map +1 -0
  66. package/lib/interfaces/index.d.ts +0 -1
  67. package/lib/interfaces/services.d.ts +1 -1
  68. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.d.ts +17 -0
  69. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.js +44 -0
  70. package/lib/migrations/dbMigrations/AddPostsConfigurationsMigration.js.map +1 -0
  71. package/lib/migrations/dbMigrations/index.d.ts +1 -0
  72. package/lib/migrations/index.d.ts +1 -0
  73. package/lib/migrations/mail-template-migration.js +1 -1
  74. package/lib/migrations/message-notification-template-migration.d.ts +1 -1
  75. package/lib/migrations/message-notification-template-migration.js +1 -1
  76. package/lib/module.js +10 -3
  77. package/lib/module.js.map +1 -1
  78. package/lib/plugins/ai-fragment-moleculer-service.d.ts +29 -0
  79. package/lib/plugins/ai-fragment-moleculer-service.js +516 -0
  80. package/lib/plugins/ai-fragment-moleculer-service.js.map +1 -0
  81. package/lib/plugins/channel-moleculer-service.d.ts +21 -1
  82. package/lib/plugins/channel-moleculer-service.js +426 -115
  83. package/lib/plugins/channel-moleculer-service.js.map +1 -1
  84. package/lib/plugins/extended-token-account-moleculer-service.d.ts +25 -1
  85. package/lib/plugins/extended-token-account-moleculer-service.js +348 -22
  86. package/lib/plugins/extended-token-account-moleculer-service.js.map +1 -1
  87. package/lib/plugins/index.d.ts +1 -0
  88. package/lib/plugins/messenger-notification-moleculer-service.d.ts +27 -3
  89. package/lib/plugins/messenger-notification-moleculer-service.js +404 -58
  90. package/lib/plugins/messenger-notification-moleculer-service.js.map +1 -1
  91. package/lib/plugins/post-moleculer-service.d.ts +85 -21
  92. package/lib/plugins/post-moleculer-service.js +1102 -256
  93. package/lib/plugins/post-moleculer-service.js.map +1 -1
  94. package/lib/plugins/post-thread-moleculer-service.d.ts +33 -1
  95. package/lib/plugins/post-thread-moleculer-service.js +326 -8
  96. package/lib/plugins/post-thread-moleculer-service.js.map +1 -1
  97. package/lib/plugins/reaction-moleculer-service.js +1 -1
  98. package/lib/plugins/reaction-moleculer-service.js.map +1 -1
  99. package/lib/preferences/settings/post-settings.d.ts +2 -0
  100. package/lib/preferences/settings/post-settings.js +47 -9
  101. package/lib/preferences/settings/post-settings.js.map +1 -1
  102. package/lib/services/ai-fragment-service.d.ts +195 -0
  103. package/lib/services/ai-fragment-service.js +631 -0
  104. package/lib/services/ai-fragment-service.js.map +1 -0
  105. package/lib/services/channel-service.d.ts +181 -33
  106. package/lib/services/channel-service.js +842 -273
  107. package/lib/services/channel-service.js.map +1 -1
  108. package/lib/services/extended-token-account-service.d.ts +130 -14
  109. package/lib/services/extended-token-account-service.js +462 -52
  110. package/lib/services/extended-token-account-service.js.map +1 -1
  111. package/lib/services/index.d.ts +3 -0
  112. package/lib/services/messenger-notification-service.d.ts +106 -13
  113. package/lib/services/messenger-notification-service.js +824 -442
  114. package/lib/services/messenger-notification-service.js.map +1 -1
  115. package/lib/services/post-service.d.ts +189 -16
  116. package/lib/services/post-service.js +949 -113
  117. package/lib/services/post-service.js.map +1 -1
  118. package/lib/services/post-thread-service.d.ts +114 -5
  119. package/lib/services/post-thread-service.js +400 -13
  120. package/lib/services/post-thread-service.js.map +1 -1
  121. package/lib/services/proxy-services/ai-fragment-microservice.d.ts +23 -0
  122. package/lib/services/proxy-services/ai-fragment-microservice.js +78 -0
  123. package/lib/services/proxy-services/ai-fragment-microservice.js.map +1 -0
  124. package/lib/services/proxy-services/channel-microservice.d.ts +6 -3
  125. package/lib/services/proxy-services/channel-microservice.js +25 -10
  126. package/lib/services/proxy-services/channel-microservice.js.map +1 -1
  127. package/lib/services/proxy-services/index.d.ts +1 -0
  128. package/lib/services/proxy-services/messenger-notification-microservice.d.ts +128 -8
  129. package/lib/services/proxy-services/messenger-notification-microservice.js +324 -29
  130. package/lib/services/proxy-services/messenger-notification-microservice.js.map +1 -1
  131. package/lib/services/proxy-services/post-microservice.d.ts +207 -12
  132. package/lib/services/proxy-services/post-microservice.js +623 -54
  133. package/lib/services/proxy-services/post-microservice.js.map +1 -1
  134. package/lib/services/proxy-services/post-thread-microservice.d.ts +134 -3
  135. package/lib/services/proxy-services/post-thread-microservice.js +388 -6
  136. package/lib/services/proxy-services/post-thread-microservice.js.map +1 -1
  137. package/lib/services/proxy-services/reaction-microservice.d.ts +161 -3
  138. package/lib/services/proxy-services/reaction-microservice.js +474 -2
  139. package/lib/services/proxy-services/reaction-microservice.js.map +1 -1
  140. package/lib/services/reaction-service.d.ts +124 -4
  141. package/lib/services/reaction-service.js +415 -3
  142. package/lib/services/reaction-service.js.map +1 -1
  143. package/lib/services/redis-cache-manager.d.ts +18 -0
  144. package/lib/services/redis-cache-manager.js +83 -0
  145. package/lib/services/redis-cache-manager.js.map +1 -0
  146. package/lib/services/sandbox-error-service.d.ts +23 -0
  147. package/lib/services/sandbox-error-service.js +422 -0
  148. package/lib/services/sandbox-error-service.js.map +1 -0
  149. package/lib/store/models/account-token-store.d.ts +1 -1
  150. package/lib/store/models/account-token-store.js.map +1 -1
  151. package/lib/store/models/ai-fragment.d.ts +4 -0
  152. package/lib/store/models/ai-fragment.js +125 -0
  153. package/lib/store/models/ai-fragment.js.map +1 -0
  154. package/lib/store/models/channel.d.ts +2 -3
  155. package/lib/store/models/channel.js +185 -71
  156. package/lib/store/models/channel.js.map +1 -1
  157. package/lib/store/models/index.d.ts +1 -0
  158. package/lib/store/models/post-thread.d.ts +3 -3
  159. package/lib/store/models/post-thread.js +96 -14
  160. package/lib/store/models/post-thread.js.map +1 -1
  161. package/lib/store/models/post.d.ts +2 -3
  162. package/lib/store/models/post.js +143 -23
  163. package/lib/store/models/post.js.map +1 -1
  164. package/lib/store/models/reaction.d.ts +2 -3
  165. package/lib/store/models/reaction.js +67 -8
  166. package/lib/store/models/reaction.js.map +1 -1
  167. package/lib/store/repositories/__tests__/__fixtures__/team-repository.d.ts +3 -3
  168. package/lib/store/repositories/ai-fragment-repository.d.ts +15 -0
  169. package/lib/store/repositories/ai-fragment-repository.js +69 -0
  170. package/lib/store/repositories/ai-fragment-repository.js.map +1 -0
  171. package/lib/store/repositories/channel-repository.d.ts +6 -6
  172. package/lib/store/repositories/channel-repository.js +5 -2
  173. package/lib/store/repositories/channel-repository.js.map +1 -1
  174. package/lib/store/repositories/index.d.ts +1 -0
  175. package/lib/store/repositories/post-repository.d.ts +6 -6
  176. package/lib/store/repositories/post-repository.js +5 -2
  177. package/lib/store/repositories/post-repository.js.map +1 -1
  178. package/lib/store/repositories/post-thread-repository.d.ts +6 -6
  179. package/lib/store/repositories/post-thread-repository.js +5 -2
  180. package/lib/store/repositories/post-thread-repository.js.map +1 -1
  181. package/lib/store/repositories/reaction-repository.d.ts +6 -6
  182. package/lib/store/repositories/reaction-repository.js +5 -2
  183. package/lib/store/repositories/reaction-repository.js.map +1 -1
  184. package/lib/templates/constants/SERVER_TYPES.ts.template +4 -4
  185. package/lib/templates/repositories/AiFragmentRepository.ts.template +4 -0
  186. package/lib/templates/repositories/ChannelRepository.ts.template +3 -3
  187. package/lib/templates/repositories/PostRepository.ts.template +3 -3
  188. package/lib/templates/repositories/PostThreadRepository.ts.template +3 -3
  189. package/lib/templates/repositories/ReactionRepository.ts.template +3 -4
  190. package/lib/templates/services/AiFragmentService.ts.template +123 -0
  191. package/lib/templates/services/ChannelService.ts.template +290 -39
  192. package/lib/templates/services/ExtendedTokenAccountService.ts.template +104 -9
  193. package/lib/templates/services/MessengerNotificationService.ts.template +94 -19
  194. package/lib/templates/services/PostService.ts.template +265 -20
  195. package/lib/templates/services/PostThreadService.ts.template +151 -6
  196. package/lib/templates/services/ReactionService.ts.template +129 -3
  197. package/lib/templates/services/RedisCacheManager.ts.template +22 -0
  198. package/lib/templates/services/SandboxErrorService.ts.template +125 -0
  199. package/package.json +14 -7
  200. package/lib/interfaces/context.d.ts +0 -14
  201. package/lib/store/models/common-options.js +0 -20
  202. package/lib/store/models/common-options.js.map +0 -1
@@ -1,24 +1,119 @@
1
1
  import { ServiceBroker } from 'moleculer';
2
- import { IChannel, IPost, IPreference_Account as IPreferenceAccount, IUserAccount, ICountryRepository, IChannelRepository, IExpoNotification, IExpoNotificationBodyData, IMessengerNotificationService, IPostRepository, IPostThreadRepository, ISupportServiceConfig, NotificationDurationUnitEnum, IExpoNotificationData } from 'common';
2
+ import { IChannel, IPost, ICountryRepository, IChannelRepository, IExpoNotification, IExpoNotificationBodyData, IMessengerNotificationService, IPostRepository, IPostThreadRepository, ISupportServiceConfig, NotificationDurationUnitEnum, IExpoNotificationData } from 'common/server';
3
3
  import { CdmLogger } from '@cdm-logger/core';
4
+ import { Disposable, DisposableCollection } from '@adminide-stack/core';
4
5
  export interface IChannelWithPost extends IChannel {
5
6
  post: IPost;
6
7
  }
7
8
  export interface IMemberWithAllChannels {
8
9
  [key: string]: IChannelWithPost[];
9
10
  }
10
- export declare class MessengerNotificationService implements IMessengerNotificationService {
11
+ /**
12
+ * Messenger Notification Service Implementation
13
+ *
14
+ * This service handles comprehensive notification management within the messenger platform,
15
+ * providing operations for sending various types of notifications including email, SMS,
16
+ * push notifications, and Expo notifications across different messaging contexts.
17
+ *
18
+ * Key capabilities:
19
+ * - Multi-channel notification delivery (email, SMS, push, Expo)
20
+ * - Unread message notification scheduling and management
21
+ * - User preference-based notification filtering
22
+ * - Support service notification handling
23
+ * - Alert message notification broadcasting
24
+ * - Thread-based notification management
25
+ * - Real-time push notification integration
26
+ * - Template-based notification customization
27
+ * - Channel and post-based notification routing
28
+ * - User aggregation and preference management
29
+ *
30
+ * The service integrates with multiple external services through Moleculer broker
31
+ * and provides comprehensive error handling and logging for notification workflows.
32
+ */
33
+ export declare class MessengerNotificationService implements IMessengerNotificationService, Disposable {
11
34
  private readonly channelRepository;
12
35
  private readonly postRepository;
13
36
  private readonly postThreadRepository;
14
37
  private readonly countryRepository;
15
38
  private readonly broker;
16
- private readonly logger;
17
- users: Record<string, IUserAccount>;
18
- userPreferences: Record<string, IPreferenceAccount>;
19
- supportServiceenvConfig: ISupportServiceConfig;
39
+ protected readonly toDispose: DisposableCollection;
40
+ private users;
41
+ private userPreferences;
42
+ private supportServiceenvConfig;
43
+ private logger;
20
44
  constructor(channelRepository: IChannelRepository, postRepository: IPostRepository, postThreadRepository: IPostThreadRepository, countryRepository: ICountryRepository, broker: ServiceBroker, logger: CdmLogger.ILogger);
21
- setSupportServiceConfig(config: ISupportServiceConfig): Promise<void>;
45
+ /**
46
+ * Disposes of resources used by the service
47
+ */
48
+ dispose(): void;
49
+ /**
50
+ * Sets the support service configuration
51
+ *
52
+ * @description Updates the support service notification configuration for customized notifications
53
+ *
54
+ * @param {ISupportServiceConfig} config - Support service configuration
55
+ * @returns {Promise<void | Error>} - Void promise or error
56
+ */
57
+ setSupportServiceConfig(config: ISupportServiceConfig): Promise<void | Error>;
58
+ /**
59
+ * Sends notification for unread messages within a specified time frame
60
+ *
61
+ * @description Aggregates unread messages across channels and sends notifications
62
+ * to users based on their preferences within the specified duration
63
+ *
64
+ * @param {NotificationDurationUnitEnum} unit - Time unit for the duration
65
+ * @param {number} value - Number of time units to look back
66
+ * @returns {Promise<boolean | Error>} - Success status or error
67
+ */
68
+ sendNotificationOfUnreadMessages(unit: NotificationDurationUnitEnum, value: number): Promise<boolean | Error>;
69
+ /**
70
+ * Sends Expo push notifications
71
+ *
72
+ * @description Sends push notifications through the Expo notification service
73
+ *
74
+ * @param {IExpoNotificationData} data - Notification data
75
+ * @returns {Promise<IExpoNotification | Error>} - Notification result or error
76
+ */
77
+ sendPushNotificationsExpo(data: IExpoNotificationData): Promise<IExpoNotification | Error>;
78
+ /**
79
+ * Sends Expo notification when a post is created
80
+ *
81
+ * @description Handles push notification logic for new posts with thread and channel support
82
+ *
83
+ * @param {IPost} post - The post that triggered the notification
84
+ * @param {IExpoNotificationBodyData} notificationData - Optional notification data override
85
+ * @returns {Promise<boolean | Error>} - Success status or error
86
+ */
87
+ sendExpoNotificationOnPost(post: IPost, notificationData?: IExpoNotificationBodyData): Promise<boolean | Error>;
88
+ /**
89
+ * Sends general notifications for a post
90
+ *
91
+ * @description Handles email and SMS notifications for posts with template support
92
+ *
93
+ * @param {IPost} post - The post that triggered the notification
94
+ * @returns {Promise<boolean | Error>} - Success status or error
95
+ */
96
+ sendNotificationOnPost(post: IPost): Promise<boolean | Error>;
97
+ /**
98
+ * Sends notifications for alert messages within a time frame
99
+ *
100
+ * @description Processes and sends notifications for alert-type messages
101
+ *
102
+ * @param {NotificationDurationUnitEnum} unit - Time unit for the duration
103
+ * @param {number} value - Number of time units to look back
104
+ * @returns {Promise<boolean | Error>} - Success status or error
105
+ */
106
+ sendNotificationOfAlertMessages(unit: NotificationDurationUnitEnum, value: number): Promise<boolean | Error>;
107
+ /**
108
+ * Sends notifications for unread service messages
109
+ *
110
+ * @description Handles notifications for support service channels
111
+ *
112
+ * @param {NotificationDurationUnitEnum} unit - Time unit for the duration
113
+ * @param {number} value - Number of time units to look back
114
+ * @returns {Promise<boolean | Error>} - Success status or error
115
+ */
116
+ sendNotificationOfUnreadServiceMessages(unit: NotificationDurationUnitEnum, value: number): Promise<boolean | Error>;
22
117
  private getLatestMessageInAllChannels;
23
118
  private groupByMember;
24
119
  private findMembersWithUnreadMessage;
@@ -29,18 +124,16 @@ export declare class MessengerNotificationService implements IMessengerNotificat
29
124
  private getUser;
30
125
  private fetchUsersForMembers;
31
126
  private sendNotificationToUser;
32
- sendNotificationOfUnreadMessages(unit: NotificationDurationUnitEnum, value: number): Promise<void>;
33
- sendPushNotificationsExpo(data: IExpoNotificationData): Promise<IExpoNotification>;
34
127
  private getThreadWithParticipants;
35
128
  private getChannelWithMembers;
36
- sendExpoNotificationOnPost(post: IPost, notificationData: IExpoNotificationBodyData): Promise<Boolean>;
129
+ private extractNotificationTokens;
130
+ private extractTemplateVariables;
131
+ private findChannelOwner;
132
+ private prepareNotificationContent;
37
133
  private sendMailOnPost;
38
134
  private sendSmsOnPost;
39
- sendNotificationOnPost(post: IPost): Promise<Boolean>;
40
135
  private getLatestAlertMessage;
41
- sendNotificationOfAlertMessages(unit: NotificationDurationUnitEnum, value: number): Promise<void>;
42
136
  private sendServiceNotificationOnPost;
43
137
  private getServiceThreads;
44
138
  private getServicePosts;
45
- sendNotificationOfUnreadServiceMessages(unit: NotificationDurationUnitEnum, value: number): Promise<void>;
46
139
  }