@platform-modules/civil-aviation-authority 2.3.305 → 2.3.306

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.
@@ -214,6 +214,10 @@
214
214
  "en": "Request Received",
215
215
  "ar": "تم استلام الطلب"
216
216
  },
217
+ "request_received_by_role": {
218
+ "en": "Request Received by {{roleName}}",
219
+ "ar": "تم استلام الطلب من قبل {{roleName}}"
220
+ },
217
221
  "request_assigned_by_role": {
218
222
  "en": "Request assigned by {{roleName}}{{comment}}",
219
223
  "ar": "تم تعيين الطلب من قبل {{roleName}}{{comment}}"
@@ -80,6 +80,17 @@ export declare function buildSynchronizedWorkflowMessage(ctx: WorkflowMessageCon
80
80
  * Use for every chat insert/update across all CAA modules.
81
81
  */
82
82
  export declare function buildSynchronizedChatMessage(ctx: ChatMessageContext): BilingualText;
83
+ /** Chat row: "Request Received by {{roleName}}" with Arabic role name when available. */
84
+ export declare function buildRequestReceivedByRoleChatMessage(params: {
85
+ roleName: string;
86
+ roleArabicName?: string | null;
87
+ }): BilingualText;
88
+ /** Chat row: "Request assigned by {{roleName}}" with optional ". Comment: ..." suffix. */
89
+ export declare function buildAssignmentByRoleChatMessage(params: {
90
+ roleName: string;
91
+ roleArabicName?: string | null;
92
+ comment?: string | null;
93
+ }): BilingualText;
83
94
  export type RequestApprovedAssignedWorkflowParams = {
84
95
  assignedUserName: string;
85
96
  roleName: string;
@@ -24,6 +24,8 @@ exports.buildAssignTasksEmpPendingWorkflowFields = buildAssignTasksEmpPendingWor
24
24
  exports.chatTemplate = chatTemplate;
25
25
  exports.buildSynchronizedWorkflowMessage = buildSynchronizedWorkflowMessage;
26
26
  exports.buildSynchronizedChatMessage = buildSynchronizedChatMessage;
27
+ exports.buildRequestReceivedByRoleChatMessage = buildRequestReceivedByRoleChatMessage;
28
+ exports.buildAssignmentByRoleChatMessage = buildAssignmentByRoleChatMessage;
27
29
  exports.tryParseRequestAssignedComment = tryParseRequestAssignedComment;
28
30
  exports.buildRequestApprovedAssignedWorkflowFields = buildRequestApprovedAssignedWorkflowFields;
29
31
  exports.buildWorkflowLogUpdateFields = buildWorkflowLogUpdateFields;
@@ -315,6 +317,19 @@ function buildSynchronizedChatMessage(ctx) {
315
317
  return chatTemplate('request_received');
316
318
  }
317
319
  }
320
+ /** Chat row: "Request Received by {{roleName}}" with Arabic role name when available. */
321
+ function buildRequestReceivedByRoleChatMessage(params) {
322
+ const roleEn = params.roleName?.trim() || 'Approver';
323
+ const roleAr = resolveBilingualName(roleEn, params.roleArabicName);
324
+ return renderSynchronizedChatMessage('request_received_by_role', { roleName: roleEn }, { roleName: roleAr });
325
+ }
326
+ /** Chat row: "Request assigned by {{roleName}}" with optional ". Comment: ..." suffix. */
327
+ function buildAssignmentByRoleChatMessage(params) {
328
+ const roleEn = params.roleName?.trim() || 'Unknown Role';
329
+ const roleAr = resolveBilingualName(roleEn, params.roleArabicName);
330
+ const commentSuffix = params.comment?.trim() ? `. Comment: ${params.comment.trim()}` : '';
331
+ return renderSynchronizedChatMessage('request_assigned_by_role', { roleName: roleEn, comment: commentSuffix }, { roleName: roleAr, comment: commentSuffix });
332
+ }
318
333
  /** Parse legacy English-only assignment comments used as workflow log suffixes. */
319
334
  function parseRequestAssignedCommentText(text) {
320
335
  const normalized = text.trim();
@@ -1392,6 +1407,14 @@ function resolveChatMessageAr(message, actors) {
1392
1407
  continue;
1393
1408
  return interpolate(tpl.ar, buildArabicChatTemplateParams(params, actors));
1394
1409
  }
1410
+ const receivedByPrefix = 'Request Received by ';
1411
+ if (normalized.startsWith(receivedByPrefix)) {
1412
+ const rolePartEn = normalized.slice(receivedByPrefix.length).trim();
1413
+ if (rolePartEn) {
1414
+ const roleAr = resolveBilingualName(rolePartEn, actors?.roleArabicName);
1415
+ return renderSynchronizedChatMessage('request_received_by_role', { roleName: rolePartEn }, { roleName: roleAr }).ar;
1416
+ }
1417
+ }
1395
1418
  return null;
1396
1419
  }
1397
1420
  /** True when message matches a known system chat template (safe to resolve message_ar). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platform-modules/civil-aviation-authority",
3
- "version": "2.3.305",
3
+ "version": "2.3.306",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -214,6 +214,10 @@
214
214
  "en": "Request Received",
215
215
  "ar": "تم استلام الطلب"
216
216
  },
217
+ "request_received_by_role": {
218
+ "en": "Request Received by {{roleName}}",
219
+ "ar": "تم استلام الطلب من قبل {{roleName}}"
220
+ },
217
221
  "request_assigned_by_role": {
218
222
  "en": "Request assigned by {{roleName}}{{comment}}",
219
223
  "ar": "تم تعيين الطلب من قبل {{roleName}}{{comment}}"
@@ -456,6 +456,36 @@ export function buildSynchronizedChatMessage(ctx: ChatMessageContext): Bilingual
456
456
  }
457
457
  }
458
458
 
459
+ /** Chat row: "Request Received by {{roleName}}" with Arabic role name when available. */
460
+ export function buildRequestReceivedByRoleChatMessage(params: {
461
+ roleName: string;
462
+ roleArabicName?: string | null;
463
+ }): BilingualText {
464
+ const roleEn = params.roleName?.trim() || 'Approver';
465
+ const roleAr = resolveBilingualName(roleEn, params.roleArabicName);
466
+ return renderSynchronizedChatMessage(
467
+ 'request_received_by_role',
468
+ { roleName: roleEn },
469
+ { roleName: roleAr },
470
+ );
471
+ }
472
+
473
+ /** Chat row: "Request assigned by {{roleName}}" with optional ". Comment: ..." suffix. */
474
+ export function buildAssignmentByRoleChatMessage(params: {
475
+ roleName: string;
476
+ roleArabicName?: string | null;
477
+ comment?: string | null;
478
+ }): BilingualText {
479
+ const roleEn = params.roleName?.trim() || 'Unknown Role';
480
+ const roleAr = resolveBilingualName(roleEn, params.roleArabicName);
481
+ const commentSuffix = params.comment?.trim() ? `. Comment: ${params.comment.trim()}` : '';
482
+ return renderSynchronizedChatMessage(
483
+ 'request_assigned_by_role',
484
+ { roleName: roleEn, comment: commentSuffix },
485
+ { roleName: roleAr, comment: commentSuffix },
486
+ );
487
+ }
488
+
459
489
  // ─── Backward-compatible aliases used by Cancellation pilot ───────────────────
460
490
 
461
491
  export type RequestApprovedAssignedWorkflowParams = {
@@ -2044,6 +2074,19 @@ export function resolveChatMessageAr(
2044
2074
  return interpolate(tpl.ar, buildArabicChatTemplateParams(params, actors));
2045
2075
  }
2046
2076
 
2077
+ const receivedByPrefix = 'Request Received by ';
2078
+ if (normalized.startsWith(receivedByPrefix)) {
2079
+ const rolePartEn = normalized.slice(receivedByPrefix.length).trim();
2080
+ if (rolePartEn) {
2081
+ const roleAr = resolveBilingualName(rolePartEn, actors?.roleArabicName);
2082
+ return renderSynchronizedChatMessage(
2083
+ 'request_received_by_role',
2084
+ { roleName: rolePartEn },
2085
+ { roleName: roleAr },
2086
+ ).ar;
2087
+ }
2088
+ }
2089
+
2047
2090
  return null;
2048
2091
  }
2049
2092