grm-shared-library 1.1.213 → 1.1.214

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 (50) hide show
  1. package/README.md +16 -0
  2. package/dist/cjs/index.js +1 -0
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/modules/alert-intake/dtos/alert-intake.dto.js +229 -0
  5. package/dist/cjs/modules/alert-intake/dtos/alert-intake.dto.js.map +1 -0
  6. package/dist/cjs/modules/alert-intake/enums/alert-intake.enum.js +97 -0
  7. package/dist/cjs/modules/alert-intake/enums/alert-intake.enum.js.map +1 -0
  8. package/dist/cjs/modules/alert-intake/index.js +25 -0
  9. package/dist/cjs/modules/alert-intake/index.js.map +1 -0
  10. package/dist/cjs/modules/alert-intake/interfaces/alert-intake.js +3 -0
  11. package/dist/cjs/modules/alert-intake/interfaces/alert-intake.js.map +1 -0
  12. package/dist/cjs/modules/alert-intake/utils/alert-intake.util.js +48 -0
  13. package/dist/cjs/modules/alert-intake/utils/alert-intake.util.js.map +1 -0
  14. package/dist/cjs/modules/permission/data/permissions.data.js +8 -0
  15. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  16. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +16 -0
  17. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  18. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  19. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  20. package/dist/cjs/modules/role/data/roles.data.js +8 -0
  21. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  22. package/dist/esm/index.js +1 -0
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/modules/alert-intake/dtos/alert-intake.dto.js +222 -0
  25. package/dist/esm/modules/alert-intake/dtos/alert-intake.dto.js.map +1 -0
  26. package/dist/esm/modules/alert-intake/enums/alert-intake.enum.js +94 -0
  27. package/dist/esm/modules/alert-intake/enums/alert-intake.enum.js.map +1 -0
  28. package/dist/esm/modules/alert-intake/index.js +9 -0
  29. package/dist/esm/modules/alert-intake/index.js.map +1 -0
  30. package/dist/esm/modules/alert-intake/interfaces/alert-intake.js +2 -0
  31. package/dist/esm/modules/alert-intake/interfaces/alert-intake.js.map +1 -0
  32. package/dist/esm/modules/alert-intake/utils/alert-intake.util.js +42 -0
  33. package/dist/esm/modules/alert-intake/utils/alert-intake.util.js.map +1 -0
  34. package/dist/esm/modules/permission/data/permissions.data.js +8 -0
  35. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  36. package/dist/esm/modules/permission/enums/permission-actions.enum.js +16 -0
  37. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  38. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  39. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  40. package/dist/esm/modules/role/data/roles.data.js +8 -0
  41. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  42. package/dist/types/index.d.ts +1 -0
  43. package/dist/types/modules/alert-intake/dtos/alert-intake.dto.d.ts +37 -0
  44. package/dist/types/modules/alert-intake/enums/alert-intake.enum.d.ts +83 -0
  45. package/dist/types/modules/alert-intake/index.d.ts +4 -0
  46. package/dist/types/modules/alert-intake/interfaces/alert-intake.d.ts +151 -0
  47. package/dist/types/modules/alert-intake/utils/alert-intake.util.d.ts +24 -0
  48. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +4 -1
  49. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
  50. package/package.json +1 -1
package/README.md CHANGED
@@ -175,6 +175,22 @@ clarion-authentication (emitter):
175
175
  - Every send result records `sender` and `senderSource`
176
176
  (`ORGANIZATION` | `PLATFORM_DEFAULT`), so "why was this Upesy-branded?" is a query.
177
177
 
178
+ ### clarion-billing → clarion-notification (HTTP)
179
+
180
+ `BillingEmailNotificationDto`, `BillingSmsNotificationDto`, `BillingPushNotificationDto`
181
+ and their result types are the contract for `POST /billing/notifications/email | sms |
182
+ push` — the synchronous path clarion-billing uses when it wants to know a message left.
183
+ clarion-billing's `NotificationClientService` types its requests from these; do not
184
+ redeclare the fields there.
185
+
186
+ - `BillingEmailTemplate` is a **closed set**. The route renders a template by name on
187
+ another service's say-so, so an open string would let a caller render any template.
188
+ A new value needs copy defaults in clarion-notification (`api/billing`).
189
+ - Attachments go **by reference** (`documents[].signedUrl`), because billing PDFs are
190
+ private and their signed URLs expire within the hour. `signedUrl` must be `https`,
191
+ file names must be bare names, and a subject may not contain a line break.
192
+ - Every list and string is bounded; `billing-notification.spec.ts` pins the limits.
193
+
178
194
  Values that end up inside email CSS or headers are validated as such: colours are
179
195
  `#RRGGBB` only, logos are `https` only, and a sender display name may not contain a
180
196
  line break. `notification-sender.spec.ts` pins each of those.
package/dist/cjs/index.js CHANGED
@@ -41,6 +41,7 @@ __exportStar(require("./modules/alert-dispatch/index"), exports);
41
41
  __exportStar(require("./modules/system-user/index"), exports);
42
42
  __exportStar(require("./modules/partner/index"), exports);
43
43
  __exportStar(require("./modules/support/index"), exports);
44
+ __exportStar(require("./modules/alert-intake/index"), exports);
44
45
  // Interfaces
45
46
  __exportStar(require("./interfaces/server-message"), exports);
46
47
  __exportStar(require("./interfaces/i-request-with-user"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,wDAAsC;AACtC,gEAA8C;AAC9C,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,mEAAiD;AACjD,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,8DAA4C;AAC5C,0DAAwC;AACxC,0DAAwC;AAExC,aAAa;AACb,8DAA4C;AAC5C,mEAAiD;AACjD,8DAA4C;AAC5C,2DAAyC;AACzC,0DAAwC;AAExC,YAAY;AACZ,2DAAyC;AAEzC,QAAQ;AACR,gDAA8B;AAE9B,YAAY;AACZ,+DAA6C;AAC7C,wFAAsE;AAEtE,aAAa;AACb,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,wDAAsC;AACtC,gEAA8C;AAC9C,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,mEAAiD;AACjD,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,8DAA4C;AAC5C,0DAAwC;AACxC,0DAAwC;AACxC,+DAA6C;AAE7C,aAAa;AACb,8DAA4C;AAC5C,mEAAiD;AACjD,8DAA4C;AAC5C,2DAAyC;AACzC,0DAAwC;AAExC,YAAY;AACZ,2DAAyC;AAEzC,QAAQ;AACR,gDAA8B;AAE9B,YAAY;AACZ,+DAA6C;AAC7C,wFAAsE;AAEtE,aAAa;AACb,qDAAmC"}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateAlertIntakeRouteDto = exports.CreateAlertIntakeRouteDto = exports.UpdateAlertIntakeConnectionDto = exports.CreateAlertIntakeConnectionDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const class_validator_1 = require("class-validator");
16
+ const alert_intake_enum_1 = require("../enums/alert-intake.enum");
17
+ const alert_intake_util_1 = require("../utils/alert-intake.util");
18
+ const trim = ({ value }) => (typeof value === 'string' ? value.trim() : value);
19
+ const SINGLE_LINE = /^[^\r\n]*$/;
20
+ const MAX_SETTINGS = 40;
21
+ /**
22
+ * A flat bag of provider settings: a handful of short primitive values, keyed by the
23
+ * names the provider's descriptor declares. WHICH keys are allowed is the service's
24
+ * job (it has the descriptor); this only guarantees the bag cannot be a way to post
25
+ * a megabyte of nested JSON at a settings table.
26
+ */
27
+ function IsFlatSettings(options = {}, validationOptions) {
28
+ return (object, propertyName) => (0, class_validator_1.registerDecorator)({
29
+ name: 'isFlatSettings',
30
+ target: object.constructor,
31
+ propertyName,
32
+ options: validationOptions,
33
+ validator: {
34
+ validate(value) {
35
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
36
+ return false;
37
+ const entries = Object.entries(value);
38
+ if (entries.length > MAX_SETTINGS)
39
+ return false;
40
+ return entries.every(([key, item]) => {
41
+ if (!/^[A-Za-z][A-Za-z0-9_]{0,59}$/.test(key))
42
+ return false;
43
+ if (typeof item === 'string')
44
+ return item.length <= alert_intake_util_1.MAX_ALERT_INTAKE_SETTING_LENGTH;
45
+ if (options.stringsOnly)
46
+ return false;
47
+ return typeof item === 'boolean' || (typeof item === 'number' && Number.isFinite(item));
48
+ });
49
+ },
50
+ defaultMessage(args) {
51
+ return `${args.property} must be a flat object of at most ${MAX_SETTINGS} short ${options.stringsOnly ? 'string' : 'string, number or boolean'} values`;
52
+ },
53
+ },
54
+ });
55
+ }
56
+ class CreateAlertIntakeConnectionDto {
57
+ }
58
+ exports.CreateAlertIntakeConnectionDto = CreateAlertIntakeConnectionDto;
59
+ __decorate([
60
+ (0, swagger_1.ApiProperty)({ enum: alert_intake_enum_1.AlertIntakeChannel }),
61
+ (0, class_validator_1.IsEnum)(alert_intake_enum_1.AlertIntakeChannel),
62
+ __metadata("design:type", String)
63
+ ], CreateAlertIntakeConnectionDto.prototype, "channel", void 0);
64
+ __decorate([
65
+ (0, swagger_1.ApiProperty)({ enum: alert_intake_enum_1.AlertIntakeProvider }),
66
+ (0, class_validator_1.IsEnum)(alert_intake_enum_1.AlertIntakeProvider),
67
+ __metadata("design:type", String)
68
+ ], CreateAlertIntakeConnectionDto.prototype, "provider", void 0);
69
+ __decorate([
70
+ (0, swagger_1.ApiProperty)({ example: 'G4S emergency short code' }),
71
+ (0, class_transformer_1.Transform)(trim),
72
+ (0, class_validator_1.IsString)(),
73
+ (0, class_validator_1.MinLength)(2),
74
+ (0, class_validator_1.MaxLength)(100),
75
+ (0, class_validator_1.Matches)(SINGLE_LINE),
76
+ __metadata("design:type", String)
77
+ ], CreateAlertIntakeConnectionDto.prototype, "name", void 0);
78
+ __decorate([
79
+ (0, swagger_1.ApiProperty)({
80
+ example: '22384',
81
+ description: 'What people send to: the short code or number, the WhatsApp phone-number id, the mailbox address.',
82
+ }),
83
+ (0, class_transformer_1.Transform)(trim),
84
+ (0, class_validator_1.IsString)(),
85
+ (0, class_validator_1.MinLength)(1),
86
+ (0, class_validator_1.MaxLength)(254),
87
+ (0, class_validator_1.Matches)(SINGLE_LINE),
88
+ __metadata("design:type", String)
89
+ ], CreateAlertIntakeConnectionDto.prototype, "address", void 0);
90
+ __decorate([
91
+ (0, swagger_1.ApiPropertyOptional)({ default: true }),
92
+ (0, class_validator_1.IsBoolean)(),
93
+ (0, class_validator_1.IsOptional)(),
94
+ __metadata("design:type", Boolean)
95
+ ], CreateAlertIntakeConnectionDto.prototype, "enabled", void 0);
96
+ __decorate([
97
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Non-secret provider settings, as the provider descriptor declares them.' }),
98
+ IsFlatSettings(),
99
+ (0, class_validator_1.IsOptional)(),
100
+ __metadata("design:type", Object)
101
+ ], CreateAlertIntakeConnectionDto.prototype, "config", void 0);
102
+ __decorate([
103
+ (0, swagger_1.ApiPropertyOptional)({
104
+ description: 'Credentials. WRITE-ONLY: encrypted at rest and never returned. Keys are the descriptor\'s secret fields.',
105
+ }),
106
+ IsFlatSettings({ stringsOnly: true }),
107
+ (0, class_validator_1.IsOptional)(),
108
+ __metadata("design:type", Object)
109
+ ], CreateAlertIntakeConnectionDto.prototype, "secrets", void 0);
110
+ __decorate([
111
+ (0, swagger_1.ApiPropertyOptional)({
112
+ description: 'Platform operators only. NAMES of provisioned secrets, used instead of `secrets`. ' +
113
+ 'A connection uses one or the other, never both.',
114
+ }),
115
+ IsFlatSettings({ stringsOnly: true }),
116
+ (0, class_validator_1.IsOptional)(),
117
+ __metadata("design:type", Object)
118
+ ], CreateAlertIntakeConnectionDto.prototype, "secretReferences", void 0);
119
+ __decorate([
120
+ (0, swagger_1.ApiPropertyOptional)({ enum: alert_intake_enum_1.AlertIntakeEmergencyPolicy, default: alert_intake_enum_1.AlertIntakeEmergencyPolicy.AUTO }),
121
+ (0, class_validator_1.IsEnum)(alert_intake_enum_1.AlertIntakeEmergencyPolicy),
122
+ (0, class_validator_1.IsOptional)(),
123
+ __metadata("design:type", String)
124
+ ], CreateAlertIntakeConnectionDto.prototype, "emergencyPolicy", void 0);
125
+ /**
126
+ * Channel and provider cannot change: a connection IS its provider link, and the
127
+ * webhook URL registered with that provider would silently start meaning something
128
+ * else. Create a new connection instead.
129
+ */
130
+ class UpdateAlertIntakeConnectionDto {
131
+ }
132
+ exports.UpdateAlertIntakeConnectionDto = UpdateAlertIntakeConnectionDto;
133
+ __decorate([
134
+ (0, swagger_1.ApiPropertyOptional)(),
135
+ (0, class_transformer_1.Transform)(trim),
136
+ (0, class_validator_1.IsString)(),
137
+ (0, class_validator_1.MinLength)(2),
138
+ (0, class_validator_1.MaxLength)(100),
139
+ (0, class_validator_1.Matches)(SINGLE_LINE),
140
+ (0, class_validator_1.IsOptional)(),
141
+ __metadata("design:type", String)
142
+ ], UpdateAlertIntakeConnectionDto.prototype, "name", void 0);
143
+ __decorate([
144
+ (0, swagger_1.ApiPropertyOptional)(),
145
+ (0, class_transformer_1.Transform)(trim),
146
+ (0, class_validator_1.IsString)(),
147
+ (0, class_validator_1.MinLength)(1),
148
+ (0, class_validator_1.MaxLength)(254),
149
+ (0, class_validator_1.Matches)(SINGLE_LINE),
150
+ (0, class_validator_1.IsOptional)(),
151
+ __metadata("design:type", String)
152
+ ], UpdateAlertIntakeConnectionDto.prototype, "address", void 0);
153
+ __decorate([
154
+ (0, swagger_1.ApiPropertyOptional)(),
155
+ (0, class_validator_1.IsBoolean)(),
156
+ (0, class_validator_1.IsOptional)(),
157
+ __metadata("design:type", Boolean)
158
+ ], UpdateAlertIntakeConnectionDto.prototype, "enabled", void 0);
159
+ __decorate([
160
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Merged over the stored settings. A key sent as "" is removed.' }),
161
+ IsFlatSettings(),
162
+ (0, class_validator_1.IsOptional)(),
163
+ __metadata("design:type", Object)
164
+ ], UpdateAlertIntakeConnectionDto.prototype, "config", void 0);
165
+ __decorate([
166
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Only the secrets sent are replaced; the rest are kept. A key sent as "" is removed.' }),
167
+ IsFlatSettings({ stringsOnly: true }),
168
+ (0, class_validator_1.IsOptional)(),
169
+ __metadata("design:type", Object)
170
+ ], UpdateAlertIntakeConnectionDto.prototype, "secrets", void 0);
171
+ __decorate([
172
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Platform operators only.' }),
173
+ IsFlatSettings({ stringsOnly: true }),
174
+ (0, class_validator_1.IsOptional)(),
175
+ __metadata("design:type", Object)
176
+ ], UpdateAlertIntakeConnectionDto.prototype, "secretReferences", void 0);
177
+ __decorate([
178
+ (0, swagger_1.ApiPropertyOptional)({ enum: alert_intake_enum_1.AlertIntakeEmergencyPolicy }),
179
+ (0, class_validator_1.IsEnum)(alert_intake_enum_1.AlertIntakeEmergencyPolicy),
180
+ (0, class_validator_1.IsOptional)(),
181
+ __metadata("design:type", String)
182
+ ], UpdateAlertIntakeConnectionDto.prototype, "emergencyPolicy", void 0);
183
+ /** Platform operators only: sends a PLATFORM connection's messages to an organization. */
184
+ class CreateAlertIntakeRouteDto {
185
+ }
186
+ exports.CreateAlertIntakeRouteDto = CreateAlertIntakeRouteDto;
187
+ __decorate([
188
+ (0, swagger_1.ApiProperty)({ enum: alert_intake_enum_1.AlertIntakeRouteMatch }),
189
+ (0, class_validator_1.IsEnum)(alert_intake_enum_1.AlertIntakeRouteMatch),
190
+ __metadata("design:type", String)
191
+ ], CreateAlertIntakeRouteDto.prototype, "match", void 0);
192
+ __decorate([
193
+ (0, swagger_1.ApiPropertyOptional)({ example: 'G4S', description: 'Required for KEYWORD; must be absent for DEFAULT.' }),
194
+ (0, class_transformer_1.Transform)(({ value }) => (typeof value === 'string' ? value.trim().toUpperCase() : value)),
195
+ (0, class_validator_1.ValidateIf)((dto) => dto.match === alert_intake_enum_1.AlertIntakeRouteMatch.KEYWORD || dto.keyword !== undefined),
196
+ (0, class_validator_1.Matches)(alert_intake_util_1.ALERT_INTAKE_KEYWORD_PATTERN, { message: 'keyword must be 2-20 letters or digits' }),
197
+ __metadata("design:type", String)
198
+ ], CreateAlertIntakeRouteDto.prototype, "keyword", void 0);
199
+ __decorate([
200
+ (0, swagger_1.ApiProperty)(),
201
+ (0, class_transformer_1.Type)(() => Number),
202
+ (0, class_validator_1.IsInt)(),
203
+ (0, class_validator_1.IsPositive)(),
204
+ __metadata("design:type", Number)
205
+ ], CreateAlertIntakeRouteDto.prototype, "organizationId", void 0);
206
+ __decorate([
207
+ (0, swagger_1.ApiPropertyOptional)({ default: true }),
208
+ (0, class_validator_1.IsBoolean)(),
209
+ (0, class_validator_1.IsOptional)(),
210
+ __metadata("design:type", Boolean)
211
+ ], CreateAlertIntakeRouteDto.prototype, "enabled", void 0);
212
+ class UpdateAlertIntakeRouteDto {
213
+ }
214
+ exports.UpdateAlertIntakeRouteDto = UpdateAlertIntakeRouteDto;
215
+ __decorate([
216
+ (0, swagger_1.ApiPropertyOptional)(),
217
+ (0, class_transformer_1.Type)(() => Number),
218
+ (0, class_validator_1.IsInt)(),
219
+ (0, class_validator_1.IsPositive)(),
220
+ (0, class_validator_1.IsOptional)(),
221
+ __metadata("design:type", Number)
222
+ ], UpdateAlertIntakeRouteDto.prototype, "organizationId", void 0);
223
+ __decorate([
224
+ (0, swagger_1.ApiPropertyOptional)(),
225
+ (0, class_validator_1.IsBoolean)(),
226
+ (0, class_validator_1.IsOptional)(),
227
+ __metadata("design:type", Boolean)
228
+ ], UpdateAlertIntakeRouteDto.prototype, "enabled", void 0);
229
+ //# sourceMappingURL=alert-intake.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-intake.dto.js","sourceRoot":"","sources":["../../../../../src/modules/alert-intake/dtos/alert-intake.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /**
3
+ * Alert intake: how a member of the public reaches an organization WITHOUT the app -
4
+ * an SMS, a WhatsApp message or an email that clarion-alerts turns into an incident.
5
+ *
6
+ * Not to be confused with `alert-dispatch`, which is about who an SOS raised IN the
7
+ * app is sent to.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AlertIntakeRejectionReason = exports.AlertIntakeWebhookVerification = exports.AlertIntakeRouteMatch = exports.AlertIntakeEmergencyPolicy = exports.AlertIntakeSecretSource = exports.AlertIntakeProvider = exports.AlertIntakeChannel = void 0;
11
+ /** The channel a message arrived on. */
12
+ var AlertIntakeChannel;
13
+ (function (AlertIntakeChannel) {
14
+ AlertIntakeChannel["SMS"] = "SMS";
15
+ AlertIntakeChannel["WHATSAPP"] = "WHATSAPP";
16
+ AlertIntakeChannel["EMAIL"] = "EMAIL";
17
+ })(AlertIntakeChannel || (exports.AlertIntakeChannel = AlertIntakeChannel = {}));
18
+ /**
19
+ * The provider a connection talks to.
20
+ *
21
+ * A code here only RESERVES the name. Whether a provider can be connected is
22
+ * answered by clarion-alerts' provider catalogue (`AlertIntakeProviderDescriptor`),
23
+ * which lists only providers with a registered adapter. UWAZII and CELCOM are
24
+ * reserved without an adapter on purpose: their inbound callback formats have not
25
+ * been confirmed, and until they are, GENERIC_SMS connects them by configuration.
26
+ */
27
+ var AlertIntakeProvider;
28
+ (function (AlertIntakeProvider) {
29
+ // SMS
30
+ AlertIntakeProvider["AFRICASTALKING"] = "africastalking";
31
+ AlertIntakeProvider["UWAZII"] = "uwazii";
32
+ AlertIntakeProvider["CELCOM"] = "celcom";
33
+ /** Any gateway that POSTs flat JSON or form fields; the field names are configured. */
34
+ AlertIntakeProvider["GENERIC_SMS"] = "generic_sms";
35
+ // WhatsApp
36
+ AlertIntakeProvider["WHATSAPP_CLOUD"] = "whatsapp_cloud";
37
+ // Email
38
+ AlertIntakeProvider["IMAP"] = "imap";
39
+ /** An inbound-parse webhook (Mailgun routes, SendGrid Inbound Parse, or a generic JSON post). */
40
+ AlertIntakeProvider["EMAIL_WEBHOOK"] = "email_webhook";
41
+ })(AlertIntakeProvider || (exports.AlertIntakeProvider = AlertIntakeProvider = {}));
42
+ /**
43
+ * Where a connection's credentials live. Never in a plaintext column.
44
+ *
45
+ * ENCRYPTED entered by the organization, encrypted at rest by clarion-alerts
46
+ * (AES-256-GCM, bound to the connection and the field). Write-only:
47
+ * the API never returns them.
48
+ * SECRET_REFERENCE the NAME of a secret the platform operator provisioned (Secret
49
+ * Manager / environment). How the legacy per-tenant credentials
50
+ * keep working, and the option for an operator who does not want
51
+ * a credential in the database at all.
52
+ */
53
+ var AlertIntakeSecretSource;
54
+ (function (AlertIntakeSecretSource) {
55
+ AlertIntakeSecretSource["ENCRYPTED"] = "ENCRYPTED";
56
+ AlertIntakeSecretSource["SECRET_REFERENCE"] = "SECRET_REFERENCE";
57
+ })(AlertIntakeSecretSource || (exports.AlertIntakeSecretSource = AlertIntakeSecretSource = {}));
58
+ /**
59
+ * How the emergency type of an incident raised from a message is decided.
60
+ * AUTO derives it from the organization: a grievance desk never raises an
61
+ * emergency; an incident desk decides from the message's category and priority.
62
+ */
63
+ var AlertIntakeEmergencyPolicy;
64
+ (function (AlertIntakeEmergencyPolicy) {
65
+ AlertIntakeEmergencyPolicy["AUTO"] = "AUTO";
66
+ AlertIntakeEmergencyPolicy["ALWAYS_EMERGENCY"] = "ALWAYS_EMERGENCY";
67
+ AlertIntakeEmergencyPolicy["ALWAYS_NON_EMERGENCY"] = "ALWAYS_NON_EMERGENCY";
68
+ })(AlertIntakeEmergencyPolicy || (exports.AlertIntakeEmergencyPolicy = AlertIntakeEmergencyPolicy = {}));
69
+ /** How a message on a PLATFORM connection finds its organization. */
70
+ var AlertIntakeRouteMatch;
71
+ (function (AlertIntakeRouteMatch) {
72
+ /** The first word of the message, e.g. `G4S fire at ...` on a shared short code. */
73
+ AlertIntakeRouteMatch["KEYWORD"] = "KEYWORD";
74
+ /** Everything no other route claimed. At most one per connection. */
75
+ AlertIntakeRouteMatch["DEFAULT"] = "DEFAULT";
76
+ })(AlertIntakeRouteMatch || (exports.AlertIntakeRouteMatch = AlertIntakeRouteMatch = {}));
77
+ /** How a provider proves a webhook call really came from it. */
78
+ var AlertIntakeWebhookVerification;
79
+ (function (AlertIntakeWebhookVerification) {
80
+ /** The unguessable URL is the only proof (Africa's Talking signs nothing). */
81
+ AlertIntakeWebhookVerification["SECRET_URL"] = "SECRET_URL";
82
+ /** A shared secret the gateway sends in a header, compared in constant time. */
83
+ AlertIntakeWebhookVerification["SHARED_SECRET_HEADER"] = "SHARED_SECRET_HEADER";
84
+ /** `X-Hub-Signature-256`: HMAC-SHA256 of the raw body with the Meta app secret. */
85
+ AlertIntakeWebhookVerification["META_SIGNATURE"] = "META_SIGNATURE";
86
+ })(AlertIntakeWebhookVerification || (exports.AlertIntakeWebhookVerification = AlertIntakeWebhookVerification = {}));
87
+ /** Why a message that arrived did not become an incident. Stored; shown to operators. */
88
+ var AlertIntakeRejectionReason;
89
+ (function (AlertIntakeRejectionReason) {
90
+ AlertIntakeRejectionReason["UNKNOWN_CONNECTION"] = "UNKNOWN_CONNECTION";
91
+ AlertIntakeRejectionReason["CONNECTION_DISABLED"] = "CONNECTION_DISABLED";
92
+ AlertIntakeRejectionReason["VERIFICATION_FAILED"] = "VERIFICATION_FAILED";
93
+ AlertIntakeRejectionReason["NO_ORGANIZATION"] = "NO_ORGANIZATION";
94
+ AlertIntakeRejectionReason["ORGANIZATION_INACTIVE"] = "ORGANIZATION_INACTIVE";
95
+ AlertIntakeRejectionReason["RATE_LIMITED"] = "RATE_LIMITED";
96
+ })(AlertIntakeRejectionReason || (exports.AlertIntakeRejectionReason = AlertIntakeRejectionReason = {}));
97
+ //# sourceMappingURL=alert-intake.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-intake.enum.js","sourceRoot":"","sources":["../../../../../src/modules/alert-intake/enums/alert-intake.enum.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,wCAAwC;AACxC,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,iCAAW,CAAA;IACX,2CAAqB,CAAA;IACrB,qCAAe,CAAA;AACnB,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B;AAED;;;;;;;;GAQG;AACH,IAAY,mBAaX;AAbD,WAAY,mBAAmB;IAC3B,MAAM;IACN,wDAAiC,CAAA;IACjC,wCAAiB,CAAA;IACjB,wCAAiB,CAAA;IACjB,uFAAuF;IACvF,kDAA2B,CAAA;IAC3B,WAAW;IACX,wDAAiC,CAAA;IACjC,QAAQ;IACR,oCAAa,CAAA;IACb,iGAAiG;IACjG,sDAA+B,CAAA;AACnC,CAAC,EAbW,mBAAmB,mCAAnB,mBAAmB,QAa9B;AAED;;;;;;;;;;GAUG;AACH,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IAC/B,kDAAuB,CAAA;IACvB,gEAAqC,CAAA;AACzC,CAAC,EAHW,uBAAuB,uCAAvB,uBAAuB,QAGlC;AAED;;;;GAIG;AACH,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IAClC,2CAAa,CAAA;IACb,mEAAqC,CAAA;IACrC,2EAA6C,CAAA;AACjD,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAED,qEAAqE;AACrE,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,oFAAoF;IACpF,4CAAmB,CAAA;IACnB,qEAAqE;IACrE,4CAAmB,CAAA;AACvB,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC;AAED,gEAAgE;AAChE,IAAY,8BAOX;AAPD,WAAY,8BAA8B;IACtC,8EAA8E;IAC9E,2DAAyB,CAAA;IACzB,gFAAgF;IAChF,+EAA6C,CAAA;IAC7C,mFAAmF;IACnF,mEAAiC,CAAA;AACrC,CAAC,EAPW,8BAA8B,8CAA9B,8BAA8B,QAOzC;AAED,yFAAyF;AACzF,IAAY,0BAOX;AAPD,WAAY,0BAA0B;IAClC,uEAAyC,CAAA;IACzC,yEAA2C,CAAA;IAC3C,yEAA2C,CAAA;IAC3C,iEAAmC,CAAA;IACnC,6EAA+C,CAAA;IAC/C,2DAA6B,CAAA;AACjC,CAAC,EAPW,0BAA0B,0CAA1B,0BAA0B,QAOrC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Enums
18
+ __exportStar(require("./enums/alert-intake.enum"), exports);
19
+ // Interfaces
20
+ __exportStar(require("./interfaces/alert-intake"), exports);
21
+ // DTOs
22
+ __exportStar(require("./dtos/alert-intake.dto"), exports);
23
+ // Utilities
24
+ __exportStar(require("./utils/alert-intake.util"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/alert-intake/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,4DAA0C;AAE1C,aAAa;AACb,4DAA0C;AAE1C,OAAO;AACP,0DAAwC;AAExC,YAAY;AACZ,4DAA0C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=alert-intake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-intake.js","sourceRoot":"","sources":["../../../../../src/modules/alert-intake/interfaces/alert-intake.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_ALERT_INTAKE_SETTING_LENGTH = exports.MAX_ALERT_INTAKE_ROUTES_PER_CONNECTION = exports.MAX_ALERT_INTAKE_CONNECTIONS_PER_ORGANIZATION = exports.ALERT_INTAKE_KEYWORD_PATTERN = void 0;
4
+ exports.normaliseAlertIntakeKeyword = normaliseAlertIntakeKeyword;
5
+ exports.extractAlertIntakeKeyword = extractAlertIntakeKeyword;
6
+ exports.stripAlertIntakeKeyword = stripAlertIntakeKeyword;
7
+ /** A routing keyword: 2-20 letters or digits, stored upper-cased. */
8
+ exports.ALERT_INTAKE_KEYWORD_PATTERN = /^[A-Z0-9]{2,20}$/;
9
+ /** Upper bounds that keep one organization's settings a form rather than a list to page through. */
10
+ exports.MAX_ALERT_INTAKE_CONNECTIONS_PER_ORGANIZATION = 20;
11
+ exports.MAX_ALERT_INTAKE_ROUTES_PER_CONNECTION = 200;
12
+ /** One settings value (config or secret). An access token is the longest thing that goes here. */
13
+ exports.MAX_ALERT_INTAKE_SETTING_LENGTH = 4096;
14
+ /** Normalises what an operator typed into the stored form. Null when it is not a valid keyword. */
15
+ function normaliseAlertIntakeKeyword(value) {
16
+ const keyword = (value !== null && value !== void 0 ? value : '').trim().toUpperCase();
17
+ return exports.ALERT_INTAKE_KEYWORD_PATTERN.test(keyword) ? keyword : null;
18
+ }
19
+ /**
20
+ * The routing keyword of a message: its first word, upper-cased, punctuation
21
+ * stripped - `g4s, fire at the gate` and `G4S: fire` both give `G4S`.
22
+ * Null when the first word could not be a keyword.
23
+ *
24
+ * Deliberately only the FIRST word. Matching a keyword anywhere in the text would
25
+ * route "I was robbed near the G4S office" to G4S.
26
+ */
27
+ function extractAlertIntakeKeyword(text) {
28
+ var _a;
29
+ const first = (_a = (text !== null && text !== void 0 ? text : '').trim().split(/\s+/)[0]) !== null && _a !== void 0 ? _a : '';
30
+ return normaliseAlertIntakeKeyword(first.replace(/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/g, ''));
31
+ }
32
+ /**
33
+ * The message with its routing keyword removed, so "G4S fire at the gate" is
34
+ * analysed as "fire at the gate". Returns the text unchanged when it does not start
35
+ * with that keyword.
36
+ */
37
+ function stripAlertIntakeKeyword(text, keyword) {
38
+ const trimmed = (text !== null && text !== void 0 ? text : '').trim();
39
+ // Keywords are [A-Z0-9] by construction; escaping keeps this safe for a caller that skipped normalising.
40
+ const literal = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
41
+ const match = new RegExp(`^[^A-Za-z0-9]*${literal}(?![A-Za-z0-9])[^A-Za-z0-9]*`, 'i').exec(trimmed);
42
+ if (!match)
43
+ return text;
44
+ const rest = trimmed.slice(match[0].length).trim();
45
+ // A message that was ONLY the keyword is still a message; do not turn it into nothing.
46
+ return rest.length > 0 ? rest : trimmed;
47
+ }
48
+ //# sourceMappingURL=alert-intake.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-intake.util.js","sourceRoot":"","sources":["../../../../../src/modules/alert-intake/utils/alert-intake.util.ts"],"names":[],"mappings":";;;AAUA,kEAGC;AAUD,8DAGC;AAOD,0DASC;AA1CD,qEAAqE;AACxD,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D,oGAAoG;AACvF,QAAA,6CAA6C,GAAG,EAAE,CAAC;AACnD,QAAA,sCAAsC,GAAG,GAAG,CAAC;AAC1D,kGAAkG;AACrF,QAAA,+BAA+B,GAAG,IAAI,CAAC;AAEpD,mGAAmG;AACnG,SAAgB,2BAA2B,CAAC,KAAgC;IACxE,MAAM,OAAO,GAAG,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,OAAO,oCAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CAAC,IAA+B;;IACrE,MAAM,KAAK,GAAG,MAAA,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;IACxD,OAAO,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,IAAY,EAAE,OAAe;IACjE,MAAM,OAAO,GAAG,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,yGAAyG;IACzG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,iBAAiB,OAAO,8BAA8B,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpG,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,uFAAuF;IACvF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5C,CAAC"}
@@ -210,6 +210,14 @@ exports.PERMISSIONS_DATA = [
210
210
  permission_actions_enum_1.PermissionActions.MANAGE_NOTIFICATION_SETTINGS,
211
211
  permission_actions_enum_1.PermissionActions.APPROVE_NOTIFICATION_SENDER
212
212
  ]
213
+ },
214
+ {
215
+ module: permissions_module_enum_1.PermissionsModule.ALERT_INTAKE,
216
+ actions: [
217
+ permission_actions_enum_1.PermissionActions.READ_ALERT_INTAKE,
218
+ permission_actions_enum_1.PermissionActions.MANAGE_ALERT_INTAKE,
219
+ permission_actions_enum_1.PermissionActions.MANAGE_ALERT_INTAKE_PLATFORM
220
+ ]
213
221
  }
214
222
  ];
215
223
  //# sourceMappingURL=permissions.data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.data.js","sourceRoot":"","sources":["../../../../../src/modules/permission/data/permissions.data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.data.js","sourceRoot":"","sources":["../../../../../src/modules/permission/data/permissions.data.ts"],"names":[],"mappings":"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"}
@@ -234,5 +234,21 @@ var PermissionActions;
234
234
  // '*') can know that, and an organization able to activate its own sender
235
235
  // could send SMS under any name it cared to type.
236
236
  PermissionActions["APPROVE_NOTIFICATION_SENDER"] = "approve:notification-sender";
237
+ // Module: Alert Intake
238
+ // The channels the PUBLIC reaches an organization on without the app - its SMS
239
+ // short code, WhatsApp number and mailbox (clarion-alerts). A family of its own
240
+ // because a connection holds provider credentials and decides which organization
241
+ // an emergency message is raised for; neither belongs with "may edit the
242
+ // organization's address".
243
+ PermissionActions["READ_ALERT_INTAKE"] = "read:alert-intake";
244
+ PermissionActions["MANAGE_ALERT_INTAKE"] = "manage:alert-intake";
245
+ // PLATFORM connections and their routes: the shared short code every
246
+ // organization without its own falls back to, and which keyword sends a message
247
+ // to which organization. Deliberately granted to NO role - one wrong route sends
248
+ // one organization's emergencies to another. Super-Admin ('*') only. It also
249
+ // covers the two things an organization must not be able to do to itself:
250
+ // point a connection at a provisioned secret by name, and switch off TLS
251
+ // verification on a mailbox.
252
+ PermissionActions["MANAGE_ALERT_INTAKE_PLATFORM"] = "manage:alert-intake-platform";
237
253
  })(PermissionActions || (exports.PermissionActions = PermissionActions = {}));
238
254
  //# sourceMappingURL=permission-actions.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}
@@ -16,5 +16,6 @@ var PermissionsModule;
16
16
  PermissionsModule["NEWSFEED"] = "Newsfeed";
17
17
  PermissionsModule["SUPPORT"] = "Support";
18
18
  PermissionsModule["NOTIFICATION"] = "Notification";
19
+ PermissionsModule["ALERT_INTAKE"] = "Alert Intake";
19
20
  })(PermissionsModule || (exports.PermissionsModule = PermissionsModule = {}));
20
21
  //# sourceMappingURL=permissions-module.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-module.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permissions-module.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAcX;AAdD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,2CAAsB,CAAA;IACtB,oDAA+B,CAAA;IAC/B,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;AACjC,CAAC,EAdW,iBAAiB,iCAAjB,iBAAiB,QAc5B"}
1
+ {"version":3,"file":"permissions-module.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permissions-module.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAeX;AAfD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,2CAAsB,CAAA;IACtB,oDAA+B,CAAA;IAC/B,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;AACjC,CAAC,EAfW,iBAAiB,iCAAjB,iBAAiB,QAe5B"}
@@ -109,6 +109,10 @@ exports.ROLES_DATA = [
109
109
  //APPROVE_NOTIFICATION_SENDER is withheld on purpose - see the enum.
110
110
  permission_1.PermissionActions.READ_NOTIFICATION_SETTINGS,
111
111
  permission_1.PermissionActions.MANAGE_NOTIFICATION_SETTINGS,
112
+ //Alert intake: the organization's own SMS, WhatsApp and email channels.
113
+ //MANAGE_ALERT_INTAKE_PLATFORM is withheld on purpose - see the enum.
114
+ permission_1.PermissionActions.READ_ALERT_INTAKE,
115
+ permission_1.PermissionActions.MANAGE_ALERT_INTAKE,
112
116
  //Partner
113
117
  permission_1.PermissionActions.CREATE_PARTNER,
114
118
  permission_1.PermissionActions.READ_PARTNER,
@@ -210,6 +214,10 @@ exports.ROLES_DATA = [
210
214
  //APPROVE_NOTIFICATION_SENDER is withheld on purpose - see the enum.
211
215
  permission_1.PermissionActions.READ_NOTIFICATION_SETTINGS,
212
216
  permission_1.PermissionActions.MANAGE_NOTIFICATION_SETTINGS,
217
+ //Alert intake: the organization's own SMS, WhatsApp and email channels.
218
+ //MANAGE_ALERT_INTAKE_PLATFORM is withheld on purpose - see the enum.
219
+ permission_1.PermissionActions.READ_ALERT_INTAKE,
220
+ permission_1.PermissionActions.MANAGE_ALERT_INTAKE,
213
221
  //Partner
214
222
  permission_1.PermissionActions.CREATE_PARTNER,
215
223
  permission_1.PermissionActions.READ_PARTNER,