@acorex-platform/module-communication-management-client 0.0.21

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 (21) hide show
  1. package/fesm2022/acorex-platform-module-communication-management-client-acorex-platform-module-communication-management-client-09UhY2Rc.mjs +2375 -0
  2. package/fesm2022/acorex-platform-module-communication-management-client-acorex-platform-module-communication-management-client-09UhY2Rc.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-communication-management-client-communication-email-send.command-wuqLiY8s.mjs +69 -0
  4. package/fesm2022/acorex-platform-module-communication-management-client-communication-email-send.command-wuqLiY8s.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-communication-management-client-communication-email-show-dialog.command-CP0zAEe4.mjs +285 -0
  6. package/fesm2022/acorex-platform-module-communication-management-client-communication-email-show-dialog.command-CP0zAEe4.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-communication-management-client-communication-in-app-inbox-page.component-b7ZqkMTt.mjs +514 -0
  8. package/fesm2022/acorex-platform-module-communication-management-client-communication-in-app-inbox-page.component-b7ZqkMTt.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-communication-management-client-communication-send.command-D7_MmGQe.mjs +85 -0
  10. package/fesm2022/acorex-platform-module-communication-management-client-communication-send.command-D7_MmGQe.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-communication-management-client-communication-show-sent-message.command-D8125Jxi.mjs +111 -0
  12. package/fesm2022/acorex-platform-module-communication-management-client-communication-show-sent-message.command-D8125Jxi.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-communication-management-client-communication-test-smtp.command-BySmN1Lz.mjs +155 -0
  14. package/fesm2022/acorex-platform-module-communication-management-client-communication-test-smtp.command-BySmN1Lz.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-communication-management-client-contracts.mjs +278 -0
  16. package/fesm2022/acorex-platform-module-communication-management-client-contracts.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-communication-management-client.mjs +2 -0
  18. package/fesm2022/acorex-platform-module-communication-management-client.mjs.map +1 -0
  19. package/package.json +28 -0
  20. package/types/acorex-platform-module-communication-management-client-contracts.d.ts +330 -0
  21. package/types/acorex-platform-module-communication-management-client.d.ts +360 -0
@@ -0,0 +1,278 @@
1
+ //#endregion
2
+
3
+ //#region ---- Channel adapter registration ----
4
+ const COMMUNICATION_CHANNEL_ADAPTER = Symbol('COMMUNICATION_CHANNEL_ADAPTER');
5
+ //#endregion
6
+ //#region ---- Delivery executor registration ----
7
+ const COMMUNICATION_DELIVERY_EXECUTOR = Symbol('COMMUNICATION_DELIVERY_EXECUTOR');
8
+ //#endregion
9
+ //#region ---- Send validation registration ----
10
+ const COMMUNICATION_CHANNEL_SEND_VALIDATOR = Symbol('COMMUNICATION_CHANNEL_SEND_VALIDATOR');
11
+ //#endregion
12
+
13
+ //#region ---- Channel capabilities ----
14
+ const COMMUNICATION_BUILTIN_CHANNEL_KEYS = ['in-app', 'email-smtp'];
15
+ const BUILTIN_CHANNEL_DEFINITIONS = [
16
+ {
17
+ key: 'in-app',
18
+ title: 'In-App',
19
+ builtIn: true,
20
+ capabilities: {
21
+ deliveryConfirmation: true,
22
+ deliveryReceipt: true,
23
+ seenTracking: true,
24
+ readReceipt: true,
25
+ replyTracking: false,
26
+ webhookCallbacks: false,
27
+ },
28
+ },
29
+ {
30
+ key: 'email-smtp',
31
+ title: 'Email (SMTP)',
32
+ builtIn: true,
33
+ capabilities: {
34
+ deliveryConfirmation: true,
35
+ deliveryReceipt: false,
36
+ seenTracking: false,
37
+ readReceipt: false,
38
+ replyTracking: false,
39
+ webhookCallbacks: false,
40
+ },
41
+ },
42
+ ];
43
+ //#endregion
44
+
45
+ //#region ---- Built-in channel registry ----
46
+ const registry = new Map(BUILTIN_CHANNEL_DEFINITIONS.map((channel) => [channel.key, channel]));
47
+ function listCommunicationChannels() {
48
+ return [...registry.values()];
49
+ }
50
+ function getCommunicationChannel(key) {
51
+ return registry.get(key);
52
+ }
53
+ function registerCommunicationChannel(definition) {
54
+ registry.set(definition.key, definition);
55
+ }
56
+ function isBuiltInCommunicationChannel(key) {
57
+ return BUILTIN_CHANNEL_DEFINITIONS.some((channel) => channel.key === key);
58
+ }
59
+ //#endregion
60
+
61
+ //#region ---- Debug redirect resolver registration ----
62
+ const COMMUNICATION_DEBUG_REDIRECT_RESOLVER = Symbol('COMMUNICATION_DEBUG_REDIRECT_RESOLVER');
63
+ //#endregion
64
+
65
+ //#region ---- Email command keys ----
66
+ const COMMUNICATION_MANAGEMENT_EMAIL_SHOW_DIALOG_COMMAND_KEY = 'CommunicationManagement:Email:ShowDialog';
67
+ const COMMUNICATION_MANAGEMENT_EMAIL_SEND_COMMAND_KEY = 'CommunicationManagement:Email:Send';
68
+ //#endregion
69
+
70
+ //#region ---- Email compose types ----
71
+ //#endregion
72
+
73
+ //#region ---- Client command keys ----
74
+ const AXMCommunicationManagementCommandKeys = {
75
+ Send: 'CommunicationManagement:Communication:Send',
76
+ TestSmtp: 'CommunicationManagement:Communication:TestSmtp',
77
+ EmailShowDialog: 'CommunicationManagement:Email:ShowDialog',
78
+ EmailSend: 'CommunicationManagement:Email:Send',
79
+ ShowSentMessage: 'CommunicationManagement:Communication:ShowSentMessage',
80
+ };
81
+ //#endregion
82
+
83
+ //#region ---- Communication domain types ----
84
+ //#endregion
85
+
86
+ //#region ---- Communication message helpers ----
87
+ function resolveCommunicationMessage(communication, fallbackTitle = 'Message') {
88
+ const message = communication['message'];
89
+ if (message != null && typeof message === 'object' && !Array.isArray(message)) {
90
+ const nested = message;
91
+ const subject = typeof nested['subject'] === 'string' ? nested['subject'] : '';
92
+ const body = typeof nested['body'] === 'string' ? nested['body'] : '';
93
+ if (subject || body) {
94
+ return {
95
+ subject: subject || String(communication['title'] ?? fallbackTitle),
96
+ body,
97
+ };
98
+ }
99
+ }
100
+ const legacySubject = typeof communication['subject'] === 'string' ? communication['subject'] : '';
101
+ const legacyBody = typeof communication['body'] === 'string' ? communication['body'] : '';
102
+ return {
103
+ subject: legacySubject || String(communication['title'] ?? fallbackTitle),
104
+ body: legacyBody,
105
+ };
106
+ }
107
+ //#endregion
108
+
109
+ //#region ---- Communication delivery job title helpers ----
110
+ function resolveCommunicationRecipientLabel(input) {
111
+ const name = input.recipientName?.trim();
112
+ if (name) {
113
+ return name;
114
+ }
115
+ const address = input.recipientAddress?.trim();
116
+ if (address) {
117
+ return address;
118
+ }
119
+ const userId = input.recipientUserId?.trim();
120
+ if (userId) {
121
+ return userId;
122
+ }
123
+ return 'Unknown recipient';
124
+ }
125
+ function formatCommunicationDeliveryJobTitle(channelLabel, input) {
126
+ return `${channelLabel} — ${resolveCommunicationRecipientLabel(input)}`;
127
+ }
128
+ //#endregion
129
+
130
+ //#region ---- In-app engagement types ----
131
+ //#endregion
132
+
133
+ //#region ----- Menu keys -----
134
+ const AXMCommunicationManagementMenuKeys = {
135
+ Root: 'CommunicationManagement:Menu:Root',
136
+ Communications: 'CommunicationManagement:Menu:Communications',
137
+ };
138
+ //#endregion
139
+
140
+ /**
141
+ * Collaboration capabilities used by this module.
142
+ * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
143
+ */
144
+ const AXPCollaborationPermissionKeys = {
145
+ Access: 'Collaboration:Permission:Access',
146
+ MaintainConversations: 'Collaboration:Permission:MaintainConversations',
147
+ MaintainMeetings: 'Collaboration:Permission:MaintainMeetings',
148
+ MaintainCalendars: 'Collaboration:Permission:MaintainCalendars',
149
+ MaintainCommunications: 'Collaboration:Permission:MaintainCommunications',
150
+ MaintainReservations: 'Collaboration:Permission:MaintainReservations',
151
+ MaintainHelpDesk: 'Collaboration:Permission:MaintainHelpDesk',
152
+ Setup: 'Collaboration:Permission:Setup',
153
+ };
154
+ const maintainCommunications = AXPCollaborationPermissionKeys.MaintainCommunications;
155
+ /**
156
+ * @deprecated Prefer {@link AXPCollaborationPermissionKeys}.
157
+ * Legacy flat shape kept so existing imports compile during migration.
158
+ */
159
+ const AXMCommunicationManagementPermissionKeys = {
160
+ Management: maintainCommunications,
161
+ Send: maintainCommunications,
162
+ Email: {
163
+ ShowDialog: maintainCommunications,
164
+ Send: maintainCommunications,
165
+ },
166
+ };
167
+
168
+ const config = {
169
+ i18n: 'communication-management',
170
+ };
171
+ const dashboardWidgetId = (segment) => `CommunicationManagement:Widget:Dashboard:${segment}`;
172
+ const RootConfig = {
173
+ config,
174
+ module: {
175
+ name: 'CommunicationManagement',
176
+ title: '@communication-management:module.title',
177
+ icon: 'fa-light fa-paper-plane',
178
+ },
179
+ entities: {
180
+ communication: {
181
+ name: 'Communications',
182
+ title: '@communication-management:entities.communication.title',
183
+ titlePlural: '@communication-management:entities.communication.plural',
184
+ icon: 'fa-light fa-envelope',
185
+ },
186
+ communicationDelivery: {
187
+ name: 'CommunicationDeliveries',
188
+ title: '@communication-management:entities.communication-delivery.title',
189
+ titlePlural: '@communication-management:entities.communication-delivery.plural',
190
+ icon: 'fa-light fa-truck-fast',
191
+ },
192
+ },
193
+ widgets: {
194
+ myInAppInboxDashboard: dashboardWidgetId('MyInAppInboxDashboard'),
195
+ },
196
+ queries: {
197
+ dashboard: {
198
+ deliveryStatusDonut: 'CommunicationManagement:Dashboard:DeliveryStatusDonut',
199
+ },
200
+ },
201
+ };
202
+ const COMMUNICATION_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communication.name}`;
203
+ const COMMUNICATION_DELIVERY_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`;
204
+
205
+ //#region ---- Server command keys ----
206
+ const AXMCommunicationManagementServerCommands = {
207
+ Send: 'CommunicationManagement:Server:Send',
208
+ Deliver: 'CommunicationManagement:Server:Deliver',
209
+ InApp: {
210
+ MarkSeen: 'CommunicationManagement:InApp:MarkSeen',
211
+ MarkRead: 'CommunicationManagement:InApp:MarkRead',
212
+ MarkAllRead: 'CommunicationManagement:InApp:MarkAllRead',
213
+ TogglePin: 'CommunicationManagement:InApp:TogglePin',
214
+ Archive: 'CommunicationManagement:InApp:Archive',
215
+ Delete: 'CommunicationManagement:InApp:Delete',
216
+ },
217
+ Smtp: {
218
+ Test: 'CommunicationManagement:Smtp:Test',
219
+ },
220
+ };
221
+ //#endregion
222
+
223
+ //#region ---- User notification settings layout (shared with channel extensions) ----
224
+ /** Settings group slug → `/:app/settings/user/communication-notifications` */
225
+ const AXP_COMMUNICATION_USER_NOTIFICATIONS_SETTINGS_GROUP = 'communication-notifications';
226
+ /** Section within {@link AXP_COMMUNICATION_USER_NOTIFICATIONS_SETTINGS_GROUP}. */
227
+ const AXP_COMMUNICATION_DELIVERY_CHANNELS_SETTINGS_SECTION = 'delivery-channels';
228
+ //#endregion
229
+
230
+ //#region ---- Communication management SMTP settings ----
231
+ var AXPCommunicationManagementSettingKeys;
232
+ (function (AXPCommunicationManagementSettingKeys) {
233
+ AXPCommunicationManagementSettingKeys["EmailServer"] = "CommunicationManagement:Setting:Email.Server";
234
+ AXPCommunicationManagementSettingKeys["EmailPort"] = "CommunicationManagement:Setting:Email.Port";
235
+ AXPCommunicationManagementSettingKeys["EmailUsername"] = "CommunicationManagement:Setting:Email.Username";
236
+ AXPCommunicationManagementSettingKeys["EmailPassword"] = "CommunicationManagement:Setting:Email.Password";
237
+ AXPCommunicationManagementSettingKeys["EmailFromAddress"] = "CommunicationManagement:Setting:Email.FromAddress";
238
+ AXPCommunicationManagementSettingKeys["EmailUseSsl"] = "CommunicationManagement:Setting:Email.UseSSL";
239
+ AXPCommunicationManagementSettingKeys["EmailUseTls"] = "CommunicationManagement:Setting:Email.UseTLS";
240
+ AXPCommunicationManagementSettingKeys["DebugRedirectEmailAddress"] = "CommunicationManagement:Setting:Debug.Redirect.EmailAddress";
241
+ AXPCommunicationManagementSettingKeys["UserChannelInAppEnabled"] = "CommunicationManagement:Setting:User.Channel.InApp.Enabled";
242
+ AXPCommunicationManagementSettingKeys["UserChannelEmailEnabled"] = "CommunicationManagement:Setting:User.Channel.Email.Enabled";
243
+ })(AXPCommunicationManagementSettingKeys || (AXPCommunicationManagementSettingKeys = {}));
244
+ const AXP_COMMUNICATION_USER_NOTIFICATION_DEFAULTS = {
245
+ [AXPCommunicationManagementSettingKeys.UserChannelInAppEnabled]: true,
246
+ [AXPCommunicationManagementSettingKeys.UserChannelEmailEnabled]: true,
247
+ };
248
+ const AXP_COMMUNICATION_SMTP_SETTING_DEFAULTS = {
249
+ [AXPCommunicationManagementSettingKeys.EmailServer]: '',
250
+ [AXPCommunicationManagementSettingKeys.EmailPort]: 587,
251
+ [AXPCommunicationManagementSettingKeys.EmailUsername]: '',
252
+ [AXPCommunicationManagementSettingKeys.EmailPassword]: '',
253
+ [AXPCommunicationManagementSettingKeys.EmailFromAddress]: '',
254
+ [AXPCommunicationManagementSettingKeys.EmailUseSsl]: false,
255
+ [AXPCommunicationManagementSettingKeys.EmailUseTls]: true,
256
+ [AXPCommunicationManagementSettingKeys.DebugRedirectEmailAddress]: '',
257
+ };
258
+ //#endregion
259
+
260
+ //#region ---- Status definition keys ----
261
+ /** Registered client status provider key for logical communications. */
262
+ const AXP_COMMUNICATION_STATUS_DEFINITION_KEY = 'communication-management.status.communication';
263
+ /** Registered client status provider key for communication deliveries. */
264
+ const AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY = 'communication-management.status.communication-delivery';
265
+ const AXP_COMMUNICATION_STATUS_PENDING = 'Pending';
266
+ const AXP_COMMUNICATION_STATUS_PROCESSING = 'Processing';
267
+ const AXP_COMMUNICATION_STATUS_COMPLETED = 'Completed';
268
+ const AXP_COMMUNICATION_STATUS_FAILED = 'Failed';
269
+ const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING = 'Pending';
270
+ const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED = 'Delivered';
271
+ //#endregion
272
+
273
+ /**
274
+ * Generated bundle index. Do not edit.
275
+ */
276
+
277
+ export { AXMCommunicationManagementCommandKeys, AXMCommunicationManagementMenuKeys, AXMCommunicationManagementPermissionKeys, AXMCommunicationManagementServerCommands, AXPCollaborationPermissionKeys, AXPCommunicationManagementSettingKeys, AXP_COMMUNICATION_DELIVERY_CHANNELS_SETTINGS_SECTION, AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY, AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED, AXP_COMMUNICATION_DELIVERY_STATUS_PENDING, AXP_COMMUNICATION_SMTP_SETTING_DEFAULTS, AXP_COMMUNICATION_STATUS_COMPLETED, AXP_COMMUNICATION_STATUS_DEFINITION_KEY, AXP_COMMUNICATION_STATUS_FAILED, AXP_COMMUNICATION_STATUS_PENDING, AXP_COMMUNICATION_STATUS_PROCESSING, AXP_COMMUNICATION_USER_NOTIFICATIONS_SETTINGS_GROUP, AXP_COMMUNICATION_USER_NOTIFICATION_DEFAULTS, BUILTIN_CHANNEL_DEFINITIONS, COMMUNICATION_BUILTIN_CHANNEL_KEYS, COMMUNICATION_CHANNEL_ADAPTER, COMMUNICATION_CHANNEL_SEND_VALIDATOR, COMMUNICATION_DEBUG_REDIRECT_RESOLVER, COMMUNICATION_DELIVERY_ENTITY_NAME, COMMUNICATION_DELIVERY_EXECUTOR, COMMUNICATION_ENTITY_NAME, COMMUNICATION_MANAGEMENT_EMAIL_SEND_COMMAND_KEY, COMMUNICATION_MANAGEMENT_EMAIL_SHOW_DIALOG_COMMAND_KEY, RootConfig, formatCommunicationDeliveryJobTitle, getCommunicationChannel, isBuiltInCommunicationChannel, listCommunicationChannels, registerCommunicationChannel, resolveCommunicationMessage, resolveCommunicationRecipientLabel };
278
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-contracts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-contracts.mjs","sources":["../../../../libs/modules/communication-management/contracts/src/channels/channel.adapter.ts","../../../../libs/modules/communication-management/contracts/src/channels/channel.registration.ts","../../../../libs/modules/communication-management/contracts/src/channels/channel.types.ts","../../../../libs/modules/communication-management/contracts/src/channels/channel.registry.ts","../../../../libs/modules/communication-management/contracts/src/channels/debug-redirect.registration.ts","../../../../libs/modules/communication-management/contracts/src/communication-email.keys.ts","../../../../libs/modules/communication-management/contracts/src/communication-email.types.ts","../../../../libs/modules/communication-management/contracts/src/commands.keys.ts","../../../../libs/modules/communication-management/contracts/src/communication.types.ts","../../../../libs/modules/communication-management/contracts/src/communication-message.util.ts","../../../../libs/modules/communication-management/contracts/src/communication-delivery-job-title.util.ts","../../../../libs/modules/communication-management/contracts/src/engagement.types.ts","../../../../libs/modules/communication-management/contracts/src/menu.keys.ts","../../../../libs/modules/communication-management/contracts/src/permission.keys.ts","../../../../libs/modules/communication-management/contracts/src/root-config.ts","../../../../libs/modules/communication-management/contracts/src/server-commands.ts","../../../../libs/modules/communication-management/contracts/src/communication-user-notifications-settings.constants.ts","../../../../libs/modules/communication-management/contracts/src/settings.keys.ts","../../../../libs/modules/communication-management/contracts/src/status.keys.ts","../../../../libs/modules/communication-management/contracts/src/acorex-platform-module-communication-management-client-contracts.ts"],"sourcesContent":["import type {\n CommunicationAggregateStatus,\n CommunicationDeliveryStatus,\n CommunicationSendInput,\n} from '../communication.types';\nimport type { CommunicationChannelDefinition } from './channel.types';\n\n//#region ---- Channel adapter port (Phase 2+) ----\n\nexport interface CommunicationChannelAdapterContext {\n communicationId: string;\n deliveryId: string;\n input: CommunicationSendInput;\n channel: CommunicationChannelDefinition;\n now: Date;\n}\n\nexport interface CommunicationChannelDeliverResult {\n status: CommunicationDeliveryStatus;\n sentAt?: Date | null;\n deliveredAt?: Date | null;\n timelineLines: string[];\n communicationStatus: CommunicationAggregateStatus;\n}\n\nexport interface CommunicationChannelAdapter {\n readonly channelKey: string;\n deliver(context: CommunicationChannelAdapterContext): Promise<CommunicationChannelDeliverResult>;\n}\n\n//#endregion\n","import type {\n CommunicationDeliverPayload,\n CommunicationDeliverResult,\n CommunicationSendInput,\n} from '../communication.types';\n\n//#region ---- Channel adapter registration ----\n\nexport const COMMUNICATION_CHANNEL_ADAPTER = Symbol('COMMUNICATION_CHANNEL_ADAPTER');\n\n//#endregion\n\n//#region ---- Delivery executor registration ----\n\nexport const COMMUNICATION_DELIVERY_EXECUTOR = Symbol('COMMUNICATION_DELIVERY_EXECUTOR');\n\nexport interface CommunicationDeliveryExecutor {\n readonly channelKey: string;\n execute(payload: CommunicationDeliverPayload): Promise<CommunicationDeliverResult>;\n}\n\n//#endregion\n\n//#region ---- Send validation registration ----\n\nexport const COMMUNICATION_CHANNEL_SEND_VALIDATOR = Symbol('COMMUNICATION_CHANNEL_SEND_VALIDATOR');\n\nexport interface CommunicationChannelSendValidator {\n readonly channelKey: string;\n validate(input: CommunicationSendInput): void;\n}\n\n//#endregion\n","//#region ---- Channel capabilities ----\n\nexport interface CommunicationChannelCapabilities {\n deliveryConfirmation: boolean;\n deliveryReceipt: boolean;\n seenTracking: boolean;\n readReceipt: boolean;\n replyTracking: boolean;\n webhookCallbacks: boolean;\n}\n\nexport interface CommunicationChannelDefinition {\n key: string;\n title: string;\n builtIn: boolean;\n capabilities: CommunicationChannelCapabilities;\n}\n\nexport const COMMUNICATION_BUILTIN_CHANNEL_KEYS = ['in-app', 'email-smtp'] as const;\nexport type CommunicationBuiltinChannelKey = (typeof COMMUNICATION_BUILTIN_CHANNEL_KEYS)[number];\n\nexport const BUILTIN_CHANNEL_DEFINITIONS: readonly CommunicationChannelDefinition[] = [\n {\n key: 'in-app',\n title: 'In-App',\n builtIn: true,\n capabilities: {\n deliveryConfirmation: true,\n deliveryReceipt: true,\n seenTracking: true,\n readReceipt: true,\n replyTracking: false,\n webhookCallbacks: false,\n },\n },\n {\n key: 'email-smtp',\n title: 'Email (SMTP)',\n builtIn: true,\n capabilities: {\n deliveryConfirmation: true,\n deliveryReceipt: false,\n seenTracking: false,\n readReceipt: false,\n replyTracking: false,\n webhookCallbacks: false,\n },\n },\n] as const;\n\n//#endregion\n","import {\n BUILTIN_CHANNEL_DEFINITIONS,\n type CommunicationChannelDefinition,\n} from './channel.types';\n\n//#region ---- Built-in channel registry ----\n\nconst registry = new Map<string, CommunicationChannelDefinition>(\n BUILTIN_CHANNEL_DEFINITIONS.map((channel) => [channel.key, channel]),\n);\n\nexport function listCommunicationChannels(): CommunicationChannelDefinition[] {\n return [...registry.values()];\n}\n\nexport function getCommunicationChannel(key: string): CommunicationChannelDefinition | undefined {\n return registry.get(key);\n}\n\nexport function registerCommunicationChannel(definition: CommunicationChannelDefinition): void {\n registry.set(definition.key, definition);\n}\n\nexport function isBuiltInCommunicationChannel(key: string): boolean {\n return BUILTIN_CHANNEL_DEFINITIONS.some((channel) => channel.key === key);\n}\n\n//#endregion\n","//#region ---- Debug redirect resolver registration ----\n\nexport const COMMUNICATION_DEBUG_REDIRECT_RESOLVER = Symbol('COMMUNICATION_DEBUG_REDIRECT_RESOLVER');\n\nexport interface CommunicationDebugRedirectResolver {\n readonly channelKey: string;\n resolveOverride(tenantId: string): Promise<string | null>;\n}\n\nexport interface CommunicationDebugRedirectResult {\n effectiveRecipient: string | null;\n redirected: boolean;\n skipped: boolean;\n timelineNote?: string;\n}\n\n//#endregion\n","//#region ---- Email command keys ----\n\nexport const COMMUNICATION_MANAGEMENT_EMAIL_SHOW_DIALOG_COMMAND_KEY =\n 'CommunicationManagement:Email:ShowDialog' as const;\n\nexport const COMMUNICATION_MANAGEMENT_EMAIL_SEND_COMMAND_KEY =\n 'CommunicationManagement:Email:Send' as const;\n\n//#endregion\n","//#region ---- Email compose types ----\n\n/** Opens the send-email layout dialog (optional text template pre-render). */\nexport interface CommunicationManagementEmailShowDialogInput {\n dialogTitle?: string;\n to?: string;\n cc?: string;\n bcc?: string;\n subject?: string;\n body?: string;\n textTemplateId?: string;\n merge?: Record<string, string>;\n}\n\nexport interface CommunicationManagementEmailSendInput {\n to: string;\n cc?: string;\n bcc?: string;\n subject: string;\n body: string;\n textTemplateId?: string;\n}\n\nexport interface CommunicationManagementEmailSendResult {\n communicationId: string;\n deliveryId: string;\n}\n\n//#endregion\n","//#region ---- Client command keys ----\n\nexport const AXMCommunicationManagementCommandKeys = {\n Send: 'CommunicationManagement:Communication:Send',\n TestSmtp: 'CommunicationManagement:Communication:TestSmtp',\n EmailShowDialog: 'CommunicationManagement:Email:ShowDialog',\n EmailSend: 'CommunicationManagement:Email:Send',\n ShowSentMessage: 'CommunicationManagement:Communication:ShowSentMessage',\n} as const;\n\n//#endregion\n","//#region ---- Communication domain types ----\n\nexport type CommunicationAggregateStatus = 'Pending' | 'Processing' | 'Completed' | 'Failed' | 'Cancelled';\n\nexport type CommunicationDeliveryStatus =\n | 'Pending'\n | 'Queued'\n | 'Processing'\n | 'Accepted'\n | 'Sent'\n | 'Delivered'\n | 'Failed'\n | 'RetryScheduled'\n | 'Cancelled'\n | 'DeadLettered';\n\nexport interface CommunicationMessage {\n subject: string;\n body: string;\n}\n\nexport interface CommunicationNotificationAction {\n title: string;\n command: {\n name: string;\n options?: Record<string, unknown>;\n };\n}\n\nexport type CommunicationPriority = 'Notice' | 'Danger' | 'Warning';\n\nexport interface AXMCommunicationModel {\n id: string;\n title: string;\n message?: CommunicationMessage;\n definitionKey?: string;\n correlationId?: string;\n idempotencyKey?: string;\n actions?: CommunicationNotificationAction[];\n status: CommunicationAggregateStatus;\n primaryChannel?: string;\n recipientSummary?: string;\n priority?: CommunicationPriority;\n}\n\nexport interface AXMCommunicationDeliveryModel {\n id: string;\n communicationId: string;\n channel: string;\n providerKey?: string;\n status: CommunicationDeliveryStatus;\n recipientUserId?: string;\n recipientAddress?: string;\n /** Provider-assigned message id (SMTP Message-ID, Telegram message_id, WhatsApp wamid, etc.). */\n providerMessageId?: string | null;\n sentAt?: Date | null;\n deliveredAt?: Date | null;\n seenAt?: Date | null;\n readAt?: Date | null;\n repliedAt?: Date | null;\n isPinned?: boolean;\n archivedAt?: Date | null;\n timelineSummary?: string;\n}\n\nexport interface CommunicationSendInput {\n title: string;\n message: CommunicationMessage;\n channel: string;\n recipientUserId?: string;\n recipientAddress?: string;\n /** Human-readable recipient label (e.g. employee full name) for summaries and job titles. */\n recipientName?: string;\n /**\n * Tenant scope for system/unauthenticated sends (e.g. public password-reset).\n * When omitted, channel adapters use the authenticated session tenant.\n */\n tenantId?: string;\n definitionKey?: string;\n correlationId?: string;\n idempotencyKey?: string;\n priority?: CommunicationPriority;\n actions?: CommunicationNotificationAction[];\n}\n\nexport interface CommunicationSendResult {\n communicationId: string;\n deliveryId: string;\n status: CommunicationDeliveryStatus;\n}\n\nexport interface CommunicationDeliverPayload {\n deliveryId: string;\n communicationId: string;\n tenantId: string;\n}\n\nexport interface CommunicationDeliverResult {\n deliveryId: string;\n status: CommunicationDeliveryStatus;\n messageId?: string;\n}\n\nexport interface CommunicationSmtpTestInput {\n recipientAddress: string;\n}\n\nexport interface CommunicationSmtpTestResult {\n recipientAddress: string;\n messageId?: string;\n}\n\n//#endregion\n","//#region ---- Communication message helpers ----\n\nimport type { CommunicationMessage } from './communication.types';\n\nexport function resolveCommunicationMessage(\n communication: Record<string, unknown>,\n fallbackTitle = 'Message',\n): CommunicationMessage {\n const message = communication['message'];\n if (message != null && typeof message === 'object' && !Array.isArray(message)) {\n const nested = message as Record<string, unknown>;\n const subject = typeof nested['subject'] === 'string' ? nested['subject'] : '';\n const body = typeof nested['body'] === 'string' ? nested['body'] : '';\n if (subject || body) {\n return {\n subject: subject || String(communication['title'] ?? fallbackTitle),\n body,\n };\n }\n }\n\n const legacySubject = typeof communication['subject'] === 'string' ? communication['subject'] : '';\n const legacyBody = typeof communication['body'] === 'string' ? communication['body'] : '';\n return {\n subject: legacySubject || String(communication['title'] ?? fallbackTitle),\n body: legacyBody,\n };\n}\n\n//#endregion\n","//#region ---- Communication delivery job title helpers ----\n\nimport type { CommunicationSendInput } from './communication.types';\n\nexport type CommunicationRecipientLabelInput = Pick<\n CommunicationSendInput,\n 'recipientName' | 'recipientAddress' | 'recipientUserId'\n>;\n\nexport function resolveCommunicationRecipientLabel(input: CommunicationRecipientLabelInput): string {\n const name = input.recipientName?.trim();\n if (name) {\n return name;\n }\n\n const address = input.recipientAddress?.trim();\n if (address) {\n return address;\n }\n\n const userId = input.recipientUserId?.trim();\n if (userId) {\n return userId;\n }\n\n return 'Unknown recipient';\n}\n\nexport function formatCommunicationDeliveryJobTitle(\n channelLabel: string,\n input: CommunicationRecipientLabelInput,\n): string {\n return `${channelLabel} — ${resolveCommunicationRecipientLabel(input)}`;\n}\n\n//#endregion\n","//#region ---- In-app engagement types ----\n\nexport interface CommunicationDeliveryEngagementRequest {\n deliveryIds: string[];\n}\n\nexport interface CommunicationDeliveryEngagementResult {\n updatedIds: string[];\n}\n\nexport interface CommunicationDeliveryMutationResult {\n affectedIds: string[];\n}\n\n//#endregion\n","//#region ----- Menu keys -----\n\nexport const AXMCommunicationManagementMenuKeys = {\n Root: 'CommunicationManagement:Menu:Root',\n Communications: 'CommunicationManagement:Menu:Communications',\n} as const;\n\n//#endregion\n","/**\n * Collaboration capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPCollaborationPermissionKeys = {\n Access: 'Collaboration:Permission:Access',\n MaintainConversations: 'Collaboration:Permission:MaintainConversations',\n MaintainMeetings: 'Collaboration:Permission:MaintainMeetings',\n MaintainCalendars: 'Collaboration:Permission:MaintainCalendars',\n MaintainCommunications: 'Collaboration:Permission:MaintainCommunications',\n MaintainReservations: 'Collaboration:Permission:MaintainReservations',\n MaintainHelpDesk: 'Collaboration:Permission:MaintainHelpDesk',\n Setup: 'Collaboration:Permission:Setup',\n} as const;\n\nconst maintainCommunications = AXPCollaborationPermissionKeys.MaintainCommunications;\n\n/**\n * @deprecated Prefer {@link AXPCollaborationPermissionKeys}.\n * Legacy flat shape kept so existing imports compile during migration.\n */\nexport const AXMCommunicationManagementPermissionKeys = {\n Management: maintainCommunications,\n Send: maintainCommunications,\n Email: {\n ShowDialog: maintainCommunications,\n Send: maintainCommunications,\n },\n} as const;\n","const config = {\n i18n: 'communication-management',\n};\n\nconst dashboardWidgetId = (segment: string): string =>\n `CommunicationManagement:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n name: 'CommunicationManagement',\n title: '@communication-management:module.title',\n icon: 'fa-light fa-paper-plane',\n },\n entities: {\n communication: {\n name: 'Communications',\n title: '@communication-management:entities.communication.title',\n titlePlural: '@communication-management:entities.communication.plural',\n icon: 'fa-light fa-envelope',\n },\n communicationDelivery: {\n name: 'CommunicationDeliveries',\n title: '@communication-management:entities.communication-delivery.title',\n titlePlural: '@communication-management:entities.communication-delivery.plural',\n icon: 'fa-light fa-truck-fast',\n },\n },\n widgets: {\n myInAppInboxDashboard: dashboardWidgetId('MyInAppInboxDashboard'),\n },\n queries: {\n dashboard: {\n deliveryStatusDonut: 'CommunicationManagement:Dashboard:DeliveryStatusDonut',\n },\n },\n} as const;\n\nexport const COMMUNICATION_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communication.name}`;\nexport const COMMUNICATION_DELIVERY_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`;\n","//#region ---- Server command keys ----\n\nexport const AXMCommunicationManagementServerCommands = {\n Send: 'CommunicationManagement:Server:Send',\n Deliver: 'CommunicationManagement:Server:Deliver',\n InApp: {\n MarkSeen: 'CommunicationManagement:InApp:MarkSeen',\n MarkRead: 'CommunicationManagement:InApp:MarkRead',\n MarkAllRead: 'CommunicationManagement:InApp:MarkAllRead',\n TogglePin: 'CommunicationManagement:InApp:TogglePin',\n Archive: 'CommunicationManagement:InApp:Archive',\n Delete: 'CommunicationManagement:InApp:Delete',\n },\n Smtp: {\n Test: 'CommunicationManagement:Smtp:Test',\n },\n} as const;\n\n//#endregion\n","//#region ---- User notification settings layout (shared with channel extensions) ----\n\n/** Settings group slug → `/:app/settings/user/communication-notifications` */\nexport const AXP_COMMUNICATION_USER_NOTIFICATIONS_SETTINGS_GROUP = 'communication-notifications';\n\n/** Section within {@link AXP_COMMUNICATION_USER_NOTIFICATIONS_SETTINGS_GROUP}. */\nexport const AXP_COMMUNICATION_DELIVERY_CHANNELS_SETTINGS_SECTION = 'delivery-channels';\n\n//#endregion\n","//#region ---- Communication management SMTP settings ----\n\nexport enum AXPCommunicationManagementSettingKeys {\n EmailServer = 'CommunicationManagement:Setting:Email.Server',\n EmailPort = 'CommunicationManagement:Setting:Email.Port',\n EmailUsername = 'CommunicationManagement:Setting:Email.Username',\n EmailPassword = 'CommunicationManagement:Setting:Email.Password',\n EmailFromAddress = 'CommunicationManagement:Setting:Email.FromAddress',\n EmailUseSsl = 'CommunicationManagement:Setting:Email.UseSSL',\n EmailUseTls = 'CommunicationManagement:Setting:Email.UseTLS',\n DebugRedirectEmailAddress = 'CommunicationManagement:Setting:Debug.Redirect.EmailAddress',\n UserChannelInAppEnabled = 'CommunicationManagement:Setting:User.Channel.InApp.Enabled',\n UserChannelEmailEnabled = 'CommunicationManagement:Setting:User.Channel.Email.Enabled',\n}\n\nexport const AXP_COMMUNICATION_USER_NOTIFICATION_DEFAULTS: Record<string, unknown> = {\n [AXPCommunicationManagementSettingKeys.UserChannelInAppEnabled]: true,\n [AXPCommunicationManagementSettingKeys.UserChannelEmailEnabled]: true,\n};\n\nexport const AXP_COMMUNICATION_SMTP_SETTING_DEFAULTS: Record<string, unknown> = {\n [AXPCommunicationManagementSettingKeys.EmailServer]: '',\n [AXPCommunicationManagementSettingKeys.EmailPort]: 587,\n [AXPCommunicationManagementSettingKeys.EmailUsername]: '',\n [AXPCommunicationManagementSettingKeys.EmailPassword]: '',\n [AXPCommunicationManagementSettingKeys.EmailFromAddress]: '',\n [AXPCommunicationManagementSettingKeys.EmailUseSsl]: false,\n [AXPCommunicationManagementSettingKeys.EmailUseTls]: true,\n [AXPCommunicationManagementSettingKeys.DebugRedirectEmailAddress]: '',\n};\n\nexport interface CommunicationSmtpSettings {\n server: string;\n port: number;\n username: string;\n password: string;\n fromAddress: string;\n useSsl: boolean;\n useTls: boolean;\n}\n\n//#endregion\n","//#region ---- Status definition keys ----\n\n/** Registered client status provider key for logical communications. */\nexport const AXP_COMMUNICATION_STATUS_DEFINITION_KEY = 'communication-management.status.communication';\n\n/** Registered client status provider key for communication deliveries. */\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY =\n 'communication-management.status.communication-delivery';\n\nexport const AXP_COMMUNICATION_STATUS_PENDING = 'Pending' as const;\nexport const AXP_COMMUNICATION_STATUS_PROCESSING = 'Processing' as const;\nexport const AXP_COMMUNICATION_STATUS_COMPLETED = 'Completed' as const;\nexport const AXP_COMMUNICATION_STATUS_FAILED = 'Failed' as const;\n\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING = 'Pending' as const;\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED = 'Delivered' as const;\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { f as AXMCommunicationManagementMenuProvider, g as AXMCommunicationManagementModule, h as AXMCommunicationManagementPermissionDefinitionProvider, i as AXMCommunicationManagementSearchCommandProvider, j as AXPCommunicationInAppInboxWidgetViewComponent, d as AXPCommunicationManagementClient, A as AXPInAppInboxConnectorService, c as AXPInAppInboxItemComponent, k as AXPInAppInboxPanelComponent, e as AXPInAppInboxRealtimeService, l as AXPInAppInboxSlotComponent, m as AXPMyInAppInboxDashboardWidget, n as AXP_IN_APP_INBOX_CONFIG, b as AXP_IN_APP_INBOX_I18N, o as AXP_IN_APP_INBOX_LEGACY_DB_NAME, p as AXP_IN_APP_INBOX_LOCAL_ENTITY_KEY, q as AXP_IN_APP_INBOX_LOCAL_MAX_ITEMS, r as AXP_IN_APP_INBOX_PORT, s as AXP_IN_APP_INBOX_SYNC_STATUS, t as AXP_MY_IN_APP_INBOX_DASHBOARD_DIMENSIONS, u as buildMyInAppInboxDashboardWidget, v as filterInAppInboxItemsLocally, w as getInAppInboxPriorityClass, x as isArchiveCategoryFilter, y as isInAppInboxUnread, z as isInAppInboxUnseen, B as normalizeInAppInboxItem, C as resolveCommunicationDeliveryChannelsSettingsSection, D as sortInAppInboxItems } from './acorex-platform-module-communication-management-client-acorex-platform-module-communication-management-client-09UhY2Rc.mjs';
2
+ //# sourceMappingURL=acorex-platform-module-communication-management-client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@acorex-platform/module-communication-management-client",
3
+ "version": "0.0.21",
4
+ "sideEffects": false,
5
+ "peerDependencies": {
6
+ "@angular/common": "^21.0.0",
7
+ "@angular/core": "^21.0.0"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "module": "fesm2022/acorex-platform-module-communication-management-client.mjs",
13
+ "typings": "types/acorex-platform-module-communication-management-client.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./types/acorex-platform-module-communication-management-client.d.ts",
20
+ "default": "./fesm2022/acorex-platform-module-communication-management-client.mjs"
21
+ },
22
+ "./contracts": {
23
+ "types": "./types/acorex-platform-module-communication-management-client-contracts.d.ts",
24
+ "default": "./fesm2022/acorex-platform-module-communication-management-client-contracts.mjs"
25
+ }
26
+ },
27
+ "type": "module"
28
+ }