grm-shared-library 1.1.211 → 1.1.212

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 (99) hide show
  1. package/README.md +51 -0
  2. package/dist/cjs/kafka/dtos/account-deletion/account-deletion-request-payload.dto.js +6 -0
  3. package/dist/cjs/kafka/dtos/account-deletion/account-deletion-request-payload.dto.js.map +1 -1
  4. package/dist/cjs/kafka/dtos/otp/create-otp-payload.dto.js +6 -0
  5. package/dist/cjs/kafka/dtos/otp/create-otp-payload.dto.js.map +1 -1
  6. package/dist/cjs/kafka/dtos/password/password-reset-payload.dto.js +6 -0
  7. package/dist/cjs/kafka/dtos/password/password-reset-payload.dto.js.map +1 -1
  8. package/dist/cjs/kafka/dtos/user/create-user-registered-payload.dto.js +6 -0
  9. package/dist/cjs/kafka/dtos/user/create-user-registered-payload.dto.js.map +1 -1
  10. package/dist/cjs/modules/notification/constants/notification-sender.const.js +30 -0
  11. package/dist/cjs/modules/notification/constants/notification-sender.const.js.map +1 -0
  12. package/dist/cjs/modules/notification/dtos/organization-notification-settings.dto.js +354 -0
  13. package/dist/cjs/modules/notification/dtos/organization-notification-settings.dto.js.map +1 -0
  14. package/dist/cjs/modules/notification/enums/email-sender-verification.enum.js +33 -0
  15. package/dist/cjs/modules/notification/enums/email-sender-verification.enum.js.map +1 -0
  16. package/dist/cjs/modules/notification/enums/notification-branding-source.enum.js +22 -0
  17. package/dist/cjs/modules/notification/enums/notification-branding-source.enum.js.map +1 -0
  18. package/dist/cjs/modules/notification/enums/notification-sender-source.enum.js +15 -0
  19. package/dist/cjs/modules/notification/enums/notification-sender-source.enum.js.map +1 -0
  20. package/dist/cjs/modules/notification/enums/notification-sender-status.enum.js +24 -0
  21. package/dist/cjs/modules/notification/enums/notification-sender-status.enum.js.map +1 -0
  22. package/dist/cjs/modules/notification/enums/sms-provider-name.enum.js +5 -0
  23. package/dist/cjs/modules/notification/enums/sms-provider-name.enum.js.map +1 -1
  24. package/dist/cjs/modules/notification/enums/sms-sender-type.enum.js +22 -0
  25. package/dist/cjs/modules/notification/enums/sms-sender-type.enum.js.map +1 -0
  26. package/dist/cjs/modules/notification/index.js +10 -0
  27. package/dist/cjs/modules/notification/index.js.map +1 -1
  28. package/dist/cjs/modules/notification/interfaces/organization-notification-settings.js +3 -0
  29. package/dist/cjs/modules/notification/interfaces/organization-notification-settings.js.map +1 -0
  30. package/dist/cjs/modules/notification/utils/notification-sender.util.js +67 -0
  31. package/dist/cjs/modules/notification/utils/notification-sender.util.js.map +1 -0
  32. package/dist/cjs/modules/permission/data/permissions.data.js +8 -0
  33. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  34. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +15 -0
  35. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  36. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  37. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  38. package/dist/cjs/modules/role/data/roles.data.js +8 -0
  39. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  40. package/dist/esm/kafka/dtos/account-deletion/account-deletion-request-payload.dto.js +7 -1
  41. package/dist/esm/kafka/dtos/account-deletion/account-deletion-request-payload.dto.js.map +1 -1
  42. package/dist/esm/kafka/dtos/otp/create-otp-payload.dto.js +7 -1
  43. package/dist/esm/kafka/dtos/otp/create-otp-payload.dto.js.map +1 -1
  44. package/dist/esm/kafka/dtos/password/password-reset-payload.dto.js +7 -1
  45. package/dist/esm/kafka/dtos/password/password-reset-payload.dto.js.map +1 -1
  46. package/dist/esm/kafka/dtos/user/create-user-registered-payload.dto.js +7 -1
  47. package/dist/esm/kafka/dtos/user/create-user-registered-payload.dto.js.map +1 -1
  48. package/dist/esm/modules/notification/constants/notification-sender.const.js +27 -0
  49. package/dist/esm/modules/notification/constants/notification-sender.const.js.map +1 -0
  50. package/dist/esm/modules/notification/dtos/organization-notification-settings.dto.js +343 -0
  51. package/dist/esm/modules/notification/dtos/organization-notification-settings.dto.js.map +1 -0
  52. package/dist/esm/modules/notification/enums/email-sender-verification.enum.js +30 -0
  53. package/dist/esm/modules/notification/enums/email-sender-verification.enum.js.map +1 -0
  54. package/dist/esm/modules/notification/enums/notification-branding-source.enum.js +19 -0
  55. package/dist/esm/modules/notification/enums/notification-branding-source.enum.js.map +1 -0
  56. package/dist/esm/modules/notification/enums/notification-sender-source.enum.js +12 -0
  57. package/dist/esm/modules/notification/enums/notification-sender-source.enum.js.map +1 -0
  58. package/dist/esm/modules/notification/enums/notification-sender-status.enum.js +21 -0
  59. package/dist/esm/modules/notification/enums/notification-sender-status.enum.js.map +1 -0
  60. package/dist/esm/modules/notification/enums/sms-provider-name.enum.js +5 -0
  61. package/dist/esm/modules/notification/enums/sms-provider-name.enum.js.map +1 -1
  62. package/dist/esm/modules/notification/enums/sms-sender-type.enum.js +19 -0
  63. package/dist/esm/modules/notification/enums/sms-sender-type.enum.js.map +1 -0
  64. package/dist/esm/modules/notification/index.js +10 -0
  65. package/dist/esm/modules/notification/index.js.map +1 -1
  66. package/dist/esm/modules/notification/interfaces/organization-notification-settings.js +2 -0
  67. package/dist/esm/modules/notification/interfaces/organization-notification-settings.js.map +1 -0
  68. package/dist/esm/modules/notification/utils/notification-sender.util.js +60 -0
  69. package/dist/esm/modules/notification/utils/notification-sender.util.js.map +1 -0
  70. package/dist/esm/modules/permission/data/permissions.data.js +8 -0
  71. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  72. package/dist/esm/modules/permission/enums/permission-actions.enum.js +15 -0
  73. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  74. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  75. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  76. package/dist/esm/modules/role/data/roles.data.js +8 -0
  77. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  78. package/dist/types/kafka/dtos/account-deletion/account-deletion-request-payload.dto.d.ts +6 -0
  79. package/dist/types/kafka/dtos/otp/create-otp-payload.dto.d.ts +6 -0
  80. package/dist/types/kafka/dtos/password/password-reset-payload.dto.d.ts +6 -0
  81. package/dist/types/kafka/dtos/user/create-user-registered-payload.dto.d.ts +6 -0
  82. package/dist/types/modules/notification/constants/notification-sender.const.d.ts +16 -0
  83. package/dist/types/modules/notification/dtos/organization-notification-settings.dto.d.ts +64 -0
  84. package/dist/types/modules/notification/enums/email-sender-verification.enum.d.ts +27 -0
  85. package/dist/types/modules/notification/enums/notification-branding-source.enum.d.ts +17 -0
  86. package/dist/types/modules/notification/enums/notification-sender-source.enum.d.ts +10 -0
  87. package/dist/types/modules/notification/enums/notification-sender-status.enum.d.ts +19 -0
  88. package/dist/types/modules/notification/enums/sms-provider-name.enum.d.ts +6 -1
  89. package/dist/types/modules/notification/enums/sms-sender-type.enum.d.ts +17 -0
  90. package/dist/types/modules/notification/index.d.ts +9 -0
  91. package/dist/types/modules/notification/interfaces/email-send-request.d.ts +6 -0
  92. package/dist/types/modules/notification/interfaces/email-send-result.d.ts +7 -0
  93. package/dist/types/modules/notification/interfaces/organization-notification-settings.d.ts +163 -0
  94. package/dist/types/modules/notification/interfaces/provider-attempt.d.ts +5 -0
  95. package/dist/types/modules/notification/interfaces/sms-send-result.d.ts +7 -0
  96. package/dist/types/modules/notification/utils/notification-sender.util.d.ts +25 -0
  97. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +4 -1
  98. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
  99. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { NotificationChannel } from '../enums/notification-channel.enum';
2
2
  import { ProviderFailureReason } from '../enums/provider-failure-reason.enum';
3
+ import { NotificationSenderSource } from '../enums/notification-sender-source.enum';
3
4
  /**
4
5
  * Record of a single provider send attempt within a channel.
5
6
  * One channel may produce several attempts (primary + fallbacks).
@@ -22,4 +23,8 @@ export interface ProviderAttempt {
22
23
  statusCode?: number;
23
24
  startedAt?: string;
24
25
  durationMs?: number;
26
+ /** The identity this attempt sent from: an email address, or an SMS sender ID. */
27
+ sender?: string;
28
+ /** Whether that identity was the organization's own or the platform default. */
29
+ senderSource?: NotificationSenderSource;
25
30
  }
@@ -1,6 +1,7 @@
1
1
  import { NotificationChannel } from '../enums/notification-channel.enum';
2
2
  import { ProviderFailureReason } from '../enums/provider-failure-reason.enum';
3
3
  import { SmsProviderName } from '../enums/sms-provider-name.enum';
4
+ import { NotificationSenderSource } from '../enums/notification-sender-source.enum';
4
5
  import { ProviderAttempt } from './provider-attempt';
5
6
  /**
6
7
  * Normalized result of an SMS send across the configured provider chain.
@@ -19,4 +20,10 @@ export interface SmsSendResult {
19
20
  failureReason?: ProviderFailureReason;
20
21
  /** Internal, safe-to-log error summary. */
21
22
  errorMessage?: string;
23
+ /** The organization the message was sent on behalf of, when known. */
24
+ organizationId?: number;
25
+ /** The identity the successful attempt sent from: an email address, or an SMS sender ID. */
26
+ sender?: string;
27
+ /** Whether that identity was the organization's own or the platform default. */
28
+ senderSource?: NotificationSenderSource;
22
29
  }
@@ -0,0 +1,25 @@
1
+ import { SmsSenderType } from '../enums/sms-sender-type.enum';
2
+ /**
3
+ * Validates an SMS sender value against its declared type.
4
+ * Returns null when valid, otherwise a message fit to show an operator.
5
+ */
6
+ export declare function validateSmsSenderId(senderType: SmsSenderType, senderId: string): string | null;
7
+ /** The domain part of an email address, lower-cased. Null when there is none. */
8
+ export declare function emailDomainOf(address: string | null | undefined): string | null;
9
+ /**
10
+ * WCAG contrast ratio of a `#RRGGBB` colour against white, from 1 (white) to 21
11
+ * (black). The email templates put WHITE text on the primary colour (buttons) and
12
+ * on the accent colour (header banner, footer), so a pale brand colour produces
13
+ * an email nobody can read. Returns 0 for anything that is not a hex colour.
14
+ */
15
+ export declare function contrastRatioWithWhite(hex: string): number;
16
+ /** Large text and UI components (WCAG 1.4.11): buttons and links in the primary colour. */
17
+ export declare const MIN_PRIMARY_COLOUR_CONTRAST = 3;
18
+ /** Body-size white text sits on the accent colour (WCAG 1.4.3). */
19
+ export declare const MIN_ACCENT_COLOUR_CONTRAST = 4.5;
20
+ /**
21
+ * Darkens a `#RRGGBB` colour by a fraction (0-1). Used to derive the hover/pressed
22
+ * shade of a brand colour so an organization only has to choose one.
23
+ * Returns the input unchanged when it is not a valid hex colour.
24
+ */
25
+ export declare function darkenHexColour(hex: string, fraction?: number): string;
@@ -146,5 +146,8 @@ export declare enum PermissionActions {
146
146
  UPDATE_NEWSFEED_POST = "update:newsfeed-post",
147
147
  PUBLISH_NEWSFEED_POST = "publish:newsfeed-post",
148
148
  ARCHIVE_NEWSFEED_POST = "archive:newsfeed-post",
149
- DELETE_NEWSFEED_POST = "delete:newsfeed-post"
149
+ DELETE_NEWSFEED_POST = "delete:newsfeed-post",
150
+ READ_NOTIFICATION_SETTINGS = "read:notification-settings",
151
+ MANAGE_NOTIFICATION_SETTINGS = "manage:notification-settings",
152
+ APPROVE_NOTIFICATION_SENDER = "approve:notification-sender"
150
153
  }
@@ -10,5 +10,6 @@ export declare enum PermissionsModule {
10
10
  TRACKING = "Tracking",
11
11
  BILLING = "Billing",
12
12
  NEWSFEED = "Newsfeed",
13
- SUPPORT = "Support"
13
+ SUPPORT = "Support",
14
+ NOTIFICATION = "Notification"
14
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grm-shared-library",
3
- "version": "1.1.211",
3
+ "version": "1.1.212",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",