@ministryofjustice/hmpps-connect-dps-shared-items 1.2.1 → 2.0.0

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.
@@ -1,9 +1,8 @@
1
- import Alert from './types/Alert';
2
- import AlertFlagLabel from './types/AlertFlagLabel';
1
+ import { Alert } from '../types/public/alertFlags/Alert';
2
+ import { AlertFlagLabel } from '../types/public/alertFlags/AlertFlagLabel';
3
3
  export declare const alertFlagLabels: {
4
4
  alertCodes: string[];
5
5
  classes: string;
6
6
  label: string;
7
7
  }[];
8
- declare const _default: (prisonerAlerts: Alert[]) => AlertFlagLabel[];
9
- export default _default;
8
+ export default function getAlertFlagLabelsForAlerts(prisonerAlerts: Alert[]): AlertFlagLabel[];
@@ -1,8 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.alertFlagLabels = void 0;
4
- const Alert_1 = require("./types/Alert");
5
- exports.alertFlagLabels = [
1
+ 'use strict';
2
+
3
+ const alertFlagLabels = [
6
4
  { alertCodes: ['HA'], classes: 'dps-alert-status dps-alert-status--self-harm', label: 'ACCT open' },
7
5
  {
8
6
  alertCodes: ['HA1'],
@@ -130,17 +128,22 @@ exports.alertFlagLabels = [
130
128
  label: 'Violent',
131
129
  },
132
130
  ].sort((a, b) => a.label.localeCompare(b.label));
133
- exports.default = (prisonerAlerts) => {
134
- return exports.alertFlagLabels.reduce((acc, flag) => {
131
+ function isAlertsServiceAlert(alert) {
132
+ return typeof alert.alertCode !== 'string';
133
+ }
134
+ function getAlertFlagLabelsForAlerts(prisonerAlerts) {
135
+ return alertFlagLabels.reduce((acc, flag) => {
135
136
  const alertIds = prisonerAlerts
136
137
  .filter(alert => {
137
- const alertsServiceAlert = (0, Alert_1.isAlertsServiceAlert)(alert);
138
+ const alertsServiceAlert = isAlertsServiceAlert(alert);
138
139
  const alertIsActive = alertsServiceAlert ? alert.isActive : alert.active && !alert.expired;
139
140
  const prisonerAlertCode = alertsServiceAlert ? alert.alertCode.code : alert.alertCode;
140
141
  return alertIsActive && flag.alertCodes.includes(prisonerAlertCode);
141
142
  })
142
- .map(alert => ((0, Alert_1.isAlertsServiceAlert)(alert) ? alert.alertUuid : alert.alertCode));
143
+ .map(alert => (isAlertsServiceAlert(alert) ? alert.alertUuid : alert.alertCode));
143
144
  return alertIds.length ? [...acc, { ...flag, alertIds }] : acc;
144
145
  }, []);
145
- };
146
- //# sourceMappingURL=getAlertFlagLabelsForAlerts.js.map
146
+ }
147
+
148
+ exports.getAlertFlagLabelsForAlerts = getAlertFlagLabelsForAlerts;
149
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/alertFlags/getAlertFlagLabelsForAlerts.ts"],"sourcesContent":["import { Alert, AlertsServiceAlert } from '../types/public/alertFlags/Alert'\nimport { AlertFlagLabel } from '../types/public/alertFlags/AlertFlagLabel'\n\nexport const alertFlagLabels = [\n { alertCodes: ['HA'], classes: 'dps-alert-status dps-alert-status--self-harm', label: 'ACCT open' },\n {\n alertCodes: ['HA1'],\n classes: 'dps-alert-status dps-alert-status--self-harm',\n label: 'ACCT post closure',\n },\n {\n alertCodes: ['XSA', 'SA'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Staff assaulter',\n },\n {\n alertCodes: ['XA'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Arsonist',\n },\n {\n alertCodes: ['PEEP'],\n classes: 'dps-alert-status dps-alert-status--medical',\n label: 'PEEP',\n },\n {\n alertCodes: ['HID'],\n classes: 'dps-alert-status dps-alert-status--medical',\n label: 'Hidden disability',\n },\n { alertCodes: ['XEL'], classes: 'dps-alert-status dps-alert-status--security', label: 'E-list' },\n { alertCodes: ['XELH'], classes: 'dps-alert-status dps-alert-status--security', label: 'E-list heightened' },\n { alertCodes: ['XER'], classes: 'dps-alert-status dps-alert-status--security', label: 'Escape risk' },\n {\n alertCodes: ['XRF'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Risk to females',\n },\n { alertCodes: ['XTACT'], classes: 'dps-alert-status dps-alert-status--security', label: 'TACT' },\n {\n alertCodes: ['XCO'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Corruptor',\n },\n {\n alertCodes: ['XCA'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Chemical attacker',\n },\n {\n alertCodes: ['XCI'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Concerted indiscipline',\n },\n { alertCodes: ['XR'], classes: 'dps-alert-status dps-alert-status--security', label: 'Racist' },\n {\n alertCodes: ['RTP', 'RLG'],\n classes: 'dps-alert-status dps-alert-status--risk',\n label: 'Risk to LGBT',\n },\n {\n alertCodes: ['XHT'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Hostage taker',\n },\n {\n alertCodes: ['XCU'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Controlled unlock',\n },\n {\n alertCodes: ['XGANG'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Gang member',\n },\n { alertCodes: ['CSIP'], classes: 'dps-alert-status dps-alert-status--other', label: 'CSIP' },\n { alertCodes: ['F1'], classes: 'dps-alert-status dps-alert-status--ex-armed-forces', label: 'Veteran' },\n {\n alertCodes: ['LCE'],\n classes: 'dps-alert-status dps-alert-status--care-leaver',\n label: 'Care experienced',\n },\n {\n alertCodes: ['RNO121'],\n classes: 'dps-alert-status dps-alert-status--risk',\n label: 'No one-to-one',\n },\n { alertCodes: ['RCON'], classes: 'dps-alert-status dps-alert-status--risk', label: 'Conflict' },\n {\n alertCodes: ['RCDR'],\n classes: 'dps-alert-status dps-alert-status--quarantined',\n label: 'Quarantined',\n },\n {\n alertCodes: ['URCU'],\n classes: 'dps-alert-status dps-alert-status--reverse-cohorting-unit',\n label: 'Reverse Cohorting Unit',\n },\n {\n alertCodes: ['UPIU'],\n classes: 'dps-alert-status dps-alert-status--protective-isolation-unit',\n label: 'Protective Isolation Unit',\n },\n { alertCodes: ['USU'], classes: 'dps-alert-status dps-alert-status--shielding-unit', label: 'Shielding Unit' },\n {\n alertCodes: ['URS'],\n classes: 'dps-alert-status dps-alert-status--refusing-to-shield',\n label: 'Refusing to shield',\n },\n {\n alertCodes: ['RKS'],\n classes: 'dps-alert-status dps-alert-status--risk-to-known-adults',\n label: 'Risk to known adults',\n },\n { alertCodes: ['VIP'], classes: 'dps-alert-status dps-alert-status--isolated-prisoner', label: 'Isolated' },\n {\n alertCodes: ['PVN'],\n classes: 'dps-alert-status dps-alert-status--multicase dps-alert-status--visor',\n label: 'ViSOR',\n },\n {\n alertCodes: ['XCDO'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Involved in 2024 civil disorder',\n },\n {\n alertCodes: ['XVL'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Violent',\n },\n].sort((a, b) => a.label.localeCompare(b.label))\n\nfunction isAlertsServiceAlert(alert: Alert): alert is AlertsServiceAlert {\n return typeof alert.alertCode !== 'string'\n}\n\nexport default function getAlertFlagLabelsForAlerts(prisonerAlerts: Alert[]): AlertFlagLabel[] {\n return alertFlagLabels.reduce(\n (acc: AlertFlagLabel[], flag: { alertCodes: string[]; classes: string; label: string }) => {\n const alertIds = prisonerAlerts\n .filter(alert => {\n const alertsServiceAlert = isAlertsServiceAlert(alert)\n const alertIsActive = alertsServiceAlert ? alert.isActive : alert.active && !alert.expired\n const prisonerAlertCode = alertsServiceAlert ? alert.alertCode.code : alert.alertCode\n\n return alertIsActive && flag.alertCodes.includes(prisonerAlertCode)\n })\n .map(alert => (isAlertsServiceAlert(alert) ? (alert.alertUuid as string) : alert.alertCode))\n\n return alertIds.length ? [...acc, { ...flag, alertIds }] : acc\n },\n [] as AlertFlagLabel[],\n )\n}\n"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,71 @@
1
- declare const _default: {
2
- alertFlags: {
3
- getAlertFlagLabelsForAlerts: (prisonerAlerts: import("./alertFlags/types/Alert").default[]) => import("./alertFlags/types/AlertFlagLabel").default[];
1
+ type Alert = BasicAlert | PrisonApiAlert | AlertsServiceAlert;
2
+ interface BasicAlert {
3
+ alertType: string;
4
+ alertCode: string;
5
+ active: boolean;
6
+ expired: boolean;
7
+ }
8
+ interface PrisonApiAlert {
9
+ alertId: string;
10
+ alertType: string;
11
+ alertTypeDescription: string;
12
+ alertCode: string;
13
+ alertCodeDescription: string;
14
+ comment?: string;
15
+ dateCreated: string;
16
+ modifiedDateTime?: string;
17
+ dateExpires?: string;
18
+ expired: boolean;
19
+ active: boolean;
20
+ addedByFirstName?: string;
21
+ addedByLastName?: string;
22
+ addedByFullName?: string;
23
+ expiredByFirstName?: string;
24
+ expiredByLastName?: string;
25
+ expiredByFullName?: string;
26
+ }
27
+ interface AlertsServiceAlert {
28
+ alertUuid?: string;
29
+ prisonNumber?: string;
30
+ alertCode: {
31
+ alertTypeCode: string;
32
+ alertTypeDescription: string;
33
+ code: string;
34
+ description: string;
4
35
  };
5
- };
6
- export default _default;
36
+ description: string;
37
+ authorisedBy?: string;
38
+ activeFrom: string;
39
+ activeTo?: string;
40
+ isActive: boolean;
41
+ comments?: [
42
+ {
43
+ commentUuid: string;
44
+ comment: string;
45
+ createdAt: string;
46
+ createdBy: string;
47
+ createdByDisplayName: string;
48
+ }
49
+ ];
50
+ createdAt?: string;
51
+ createdBy?: string;
52
+ createdByDisplayName: string;
53
+ lastModifiedAt?: string;
54
+ lastModifiedBy?: string;
55
+ lastModifiedByDisplayName?: string;
56
+ activeToLastSetAt?: string;
57
+ activeToLastSetBy?: string;
58
+ activeToLastSetByDisplayName?: string;
59
+ }
60
+
61
+ interface AlertFlagLabel {
62
+ alertCodes: string[];
63
+ classes: string;
64
+ label: string;
65
+ alertIds?: string[];
66
+ }
67
+
68
+ declare function getAlertFlagLabelsForAlerts(prisonerAlerts: Alert[]): AlertFlagLabel[];
69
+
70
+ export { getAlertFlagLabelsForAlerts };
71
+ export type { Alert, AlertFlagLabel, AlertsServiceAlert, BasicAlert, PrisonApiAlert };
@@ -0,0 +1,147 @@
1
+ const alertFlagLabels = [
2
+ { alertCodes: ['HA'], classes: 'dps-alert-status dps-alert-status--self-harm', label: 'ACCT open' },
3
+ {
4
+ alertCodes: ['HA1'],
5
+ classes: 'dps-alert-status dps-alert-status--self-harm',
6
+ label: 'ACCT post closure',
7
+ },
8
+ {
9
+ alertCodes: ['XSA', 'SA'],
10
+ classes: 'dps-alert-status dps-alert-status--security',
11
+ label: 'Staff assaulter',
12
+ },
13
+ {
14
+ alertCodes: ['XA'],
15
+ classes: 'dps-alert-status dps-alert-status--security',
16
+ label: 'Arsonist',
17
+ },
18
+ {
19
+ alertCodes: ['PEEP'],
20
+ classes: 'dps-alert-status dps-alert-status--medical',
21
+ label: 'PEEP',
22
+ },
23
+ {
24
+ alertCodes: ['HID'],
25
+ classes: 'dps-alert-status dps-alert-status--medical',
26
+ label: 'Hidden disability',
27
+ },
28
+ { alertCodes: ['XEL'], classes: 'dps-alert-status dps-alert-status--security', label: 'E-list' },
29
+ { alertCodes: ['XELH'], classes: 'dps-alert-status dps-alert-status--security', label: 'E-list heightened' },
30
+ { alertCodes: ['XER'], classes: 'dps-alert-status dps-alert-status--security', label: 'Escape risk' },
31
+ {
32
+ alertCodes: ['XRF'],
33
+ classes: 'dps-alert-status dps-alert-status--security',
34
+ label: 'Risk to females',
35
+ },
36
+ { alertCodes: ['XTACT'], classes: 'dps-alert-status dps-alert-status--security', label: 'TACT' },
37
+ {
38
+ alertCodes: ['XCO'],
39
+ classes: 'dps-alert-status dps-alert-status--security',
40
+ label: 'Corruptor',
41
+ },
42
+ {
43
+ alertCodes: ['XCA'],
44
+ classes: 'dps-alert-status dps-alert-status--security',
45
+ label: 'Chemical attacker',
46
+ },
47
+ {
48
+ alertCodes: ['XCI'],
49
+ classes: 'dps-alert-status dps-alert-status--security',
50
+ label: 'Concerted indiscipline',
51
+ },
52
+ { alertCodes: ['XR'], classes: 'dps-alert-status dps-alert-status--security', label: 'Racist' },
53
+ {
54
+ alertCodes: ['RTP', 'RLG'],
55
+ classes: 'dps-alert-status dps-alert-status--risk',
56
+ label: 'Risk to LGBT',
57
+ },
58
+ {
59
+ alertCodes: ['XHT'],
60
+ classes: 'dps-alert-status dps-alert-status--security',
61
+ label: 'Hostage taker',
62
+ },
63
+ {
64
+ alertCodes: ['XCU'],
65
+ classes: 'dps-alert-status dps-alert-status--security',
66
+ label: 'Controlled unlock',
67
+ },
68
+ {
69
+ alertCodes: ['XGANG'],
70
+ classes: 'dps-alert-status dps-alert-status--security',
71
+ label: 'Gang member',
72
+ },
73
+ { alertCodes: ['CSIP'], classes: 'dps-alert-status dps-alert-status--other', label: 'CSIP' },
74
+ { alertCodes: ['F1'], classes: 'dps-alert-status dps-alert-status--ex-armed-forces', label: 'Veteran' },
75
+ {
76
+ alertCodes: ['LCE'],
77
+ classes: 'dps-alert-status dps-alert-status--care-leaver',
78
+ label: 'Care experienced',
79
+ },
80
+ {
81
+ alertCodes: ['RNO121'],
82
+ classes: 'dps-alert-status dps-alert-status--risk',
83
+ label: 'No one-to-one',
84
+ },
85
+ { alertCodes: ['RCON'], classes: 'dps-alert-status dps-alert-status--risk', label: 'Conflict' },
86
+ {
87
+ alertCodes: ['RCDR'],
88
+ classes: 'dps-alert-status dps-alert-status--quarantined',
89
+ label: 'Quarantined',
90
+ },
91
+ {
92
+ alertCodes: ['URCU'],
93
+ classes: 'dps-alert-status dps-alert-status--reverse-cohorting-unit',
94
+ label: 'Reverse Cohorting Unit',
95
+ },
96
+ {
97
+ alertCodes: ['UPIU'],
98
+ classes: 'dps-alert-status dps-alert-status--protective-isolation-unit',
99
+ label: 'Protective Isolation Unit',
100
+ },
101
+ { alertCodes: ['USU'], classes: 'dps-alert-status dps-alert-status--shielding-unit', label: 'Shielding Unit' },
102
+ {
103
+ alertCodes: ['URS'],
104
+ classes: 'dps-alert-status dps-alert-status--refusing-to-shield',
105
+ label: 'Refusing to shield',
106
+ },
107
+ {
108
+ alertCodes: ['RKS'],
109
+ classes: 'dps-alert-status dps-alert-status--risk-to-known-adults',
110
+ label: 'Risk to known adults',
111
+ },
112
+ { alertCodes: ['VIP'], classes: 'dps-alert-status dps-alert-status--isolated-prisoner', label: 'Isolated' },
113
+ {
114
+ alertCodes: ['PVN'],
115
+ classes: 'dps-alert-status dps-alert-status--multicase dps-alert-status--visor',
116
+ label: 'ViSOR',
117
+ },
118
+ {
119
+ alertCodes: ['XCDO'],
120
+ classes: 'dps-alert-status dps-alert-status--security',
121
+ label: 'Involved in 2024 civil disorder',
122
+ },
123
+ {
124
+ alertCodes: ['XVL'],
125
+ classes: 'dps-alert-status dps-alert-status--security',
126
+ label: 'Violent',
127
+ },
128
+ ].sort((a, b) => a.label.localeCompare(b.label));
129
+ function isAlertsServiceAlert(alert) {
130
+ return typeof alert.alertCode !== 'string';
131
+ }
132
+ function getAlertFlagLabelsForAlerts(prisonerAlerts) {
133
+ return alertFlagLabels.reduce((acc, flag) => {
134
+ const alertIds = prisonerAlerts
135
+ .filter(alert => {
136
+ const alertsServiceAlert = isAlertsServiceAlert(alert);
137
+ const alertIsActive = alertsServiceAlert ? alert.isActive : alert.active && !alert.expired;
138
+ const prisonerAlertCode = alertsServiceAlert ? alert.alertCode.code : alert.alertCode;
139
+ return alertIsActive && flag.alertCodes.includes(prisonerAlertCode);
140
+ })
141
+ .map(alert => (isAlertsServiceAlert(alert) ? alert.alertUuid : alert.alertCode));
142
+ return alertIds.length ? [...acc, { ...flag, alertIds }] : acc;
143
+ }, []);
144
+ }
145
+
146
+ export { getAlertFlagLabelsForAlerts };
147
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../src/alertFlags/getAlertFlagLabelsForAlerts.ts"],"sourcesContent":["import { Alert, AlertsServiceAlert } from '../types/public/alertFlags/Alert'\nimport { AlertFlagLabel } from '../types/public/alertFlags/AlertFlagLabel'\n\nexport const alertFlagLabels = [\n { alertCodes: ['HA'], classes: 'dps-alert-status dps-alert-status--self-harm', label: 'ACCT open' },\n {\n alertCodes: ['HA1'],\n classes: 'dps-alert-status dps-alert-status--self-harm',\n label: 'ACCT post closure',\n },\n {\n alertCodes: ['XSA', 'SA'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Staff assaulter',\n },\n {\n alertCodes: ['XA'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Arsonist',\n },\n {\n alertCodes: ['PEEP'],\n classes: 'dps-alert-status dps-alert-status--medical',\n label: 'PEEP',\n },\n {\n alertCodes: ['HID'],\n classes: 'dps-alert-status dps-alert-status--medical',\n label: 'Hidden disability',\n },\n { alertCodes: ['XEL'], classes: 'dps-alert-status dps-alert-status--security', label: 'E-list' },\n { alertCodes: ['XELH'], classes: 'dps-alert-status dps-alert-status--security', label: 'E-list heightened' },\n { alertCodes: ['XER'], classes: 'dps-alert-status dps-alert-status--security', label: 'Escape risk' },\n {\n alertCodes: ['XRF'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Risk to females',\n },\n { alertCodes: ['XTACT'], classes: 'dps-alert-status dps-alert-status--security', label: 'TACT' },\n {\n alertCodes: ['XCO'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Corruptor',\n },\n {\n alertCodes: ['XCA'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Chemical attacker',\n },\n {\n alertCodes: ['XCI'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Concerted indiscipline',\n },\n { alertCodes: ['XR'], classes: 'dps-alert-status dps-alert-status--security', label: 'Racist' },\n {\n alertCodes: ['RTP', 'RLG'],\n classes: 'dps-alert-status dps-alert-status--risk',\n label: 'Risk to LGBT',\n },\n {\n alertCodes: ['XHT'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Hostage taker',\n },\n {\n alertCodes: ['XCU'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Controlled unlock',\n },\n {\n alertCodes: ['XGANG'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Gang member',\n },\n { alertCodes: ['CSIP'], classes: 'dps-alert-status dps-alert-status--other', label: 'CSIP' },\n { alertCodes: ['F1'], classes: 'dps-alert-status dps-alert-status--ex-armed-forces', label: 'Veteran' },\n {\n alertCodes: ['LCE'],\n classes: 'dps-alert-status dps-alert-status--care-leaver',\n label: 'Care experienced',\n },\n {\n alertCodes: ['RNO121'],\n classes: 'dps-alert-status dps-alert-status--risk',\n label: 'No one-to-one',\n },\n { alertCodes: ['RCON'], classes: 'dps-alert-status dps-alert-status--risk', label: 'Conflict' },\n {\n alertCodes: ['RCDR'],\n classes: 'dps-alert-status dps-alert-status--quarantined',\n label: 'Quarantined',\n },\n {\n alertCodes: ['URCU'],\n classes: 'dps-alert-status dps-alert-status--reverse-cohorting-unit',\n label: 'Reverse Cohorting Unit',\n },\n {\n alertCodes: ['UPIU'],\n classes: 'dps-alert-status dps-alert-status--protective-isolation-unit',\n label: 'Protective Isolation Unit',\n },\n { alertCodes: ['USU'], classes: 'dps-alert-status dps-alert-status--shielding-unit', label: 'Shielding Unit' },\n {\n alertCodes: ['URS'],\n classes: 'dps-alert-status dps-alert-status--refusing-to-shield',\n label: 'Refusing to shield',\n },\n {\n alertCodes: ['RKS'],\n classes: 'dps-alert-status dps-alert-status--risk-to-known-adults',\n label: 'Risk to known adults',\n },\n { alertCodes: ['VIP'], classes: 'dps-alert-status dps-alert-status--isolated-prisoner', label: 'Isolated' },\n {\n alertCodes: ['PVN'],\n classes: 'dps-alert-status dps-alert-status--multicase dps-alert-status--visor',\n label: 'ViSOR',\n },\n {\n alertCodes: ['XCDO'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Involved in 2024 civil disorder',\n },\n {\n alertCodes: ['XVL'],\n classes: 'dps-alert-status dps-alert-status--security',\n label: 'Violent',\n },\n].sort((a, b) => a.label.localeCompare(b.label))\n\nfunction isAlertsServiceAlert(alert: Alert): alert is AlertsServiceAlert {\n return typeof alert.alertCode !== 'string'\n}\n\nexport default function getAlertFlagLabelsForAlerts(prisonerAlerts: Alert[]): AlertFlagLabel[] {\n return alertFlagLabels.reduce(\n (acc: AlertFlagLabel[], flag: { alertCodes: string[]; classes: string; label: string }) => {\n const alertIds = prisonerAlerts\n .filter(alert => {\n const alertsServiceAlert = isAlertsServiceAlert(alert)\n const alertIsActive = alertsServiceAlert ? alert.isActive : alert.active && !alert.expired\n const prisonerAlertCode = alertsServiceAlert ? alert.alertCode.code : alert.alertCode\n\n return alertIsActive && flag.alertCodes.includes(prisonerAlertCode)\n })\n .map(alert => (isAlertsServiceAlert(alert) ? (alert.alertUuid as string) : alert.alertCode))\n\n return alertIds.length ? [...acc, { ...flag, alertIds }] : acc\n },\n [] as AlertFlagLabel[],\n )\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- type Alert = BasicAlert | PrisonApiAlert | AlertsServiceAlert;
2
- export default Alert;
1
+ export type Alert = BasicAlert | PrisonApiAlert | AlertsServiceAlert;
3
2
  export interface BasicAlert {
4
3
  alertType: string;
5
4
  alertCode: string;
@@ -58,4 +57,3 @@ export interface AlertsServiceAlert {
58
57
  activeToLastSetBy?: string;
59
58
  activeToLastSetByDisplayName?: string;
60
59
  }
61
- export declare function isAlertsServiceAlert(alert: Alert): alert is AlertsServiceAlert;
@@ -1,4 +1,4 @@
1
- export default interface AlertFlagLabel {
1
+ export interface AlertFlagLabel {
2
2
  alertCodes: string[];
3
3
  classes: string;
4
4
  label: string;
@@ -0,0 +1 @@
1
+ export type { default as getAlertFlagLabelsForAlerts } from '../../../alertFlags/getAlertFlagLabelsForAlerts';
package/package.json CHANGED
@@ -1,80 +1,71 @@
1
1
  {
2
2
  "name": "@ministryofjustice/hmpps-connect-dps-shared-items",
3
- "version": "1.2.1",
4
- "description": "A package to share connect dps functionality across applications",
5
- "main": "./dist/index.js",
3
+ "version": "2.0.0",
4
+ "description": "A package to share Connect DPS functionality across applications",
5
+ "main": "./dist/index.cjs",
6
+ "module": "./dist/index.esm.js",
6
7
  "types": "./dist/index.d.ts",
7
8
  "files": [
9
+ "*.md",
8
10
  "dist/**/*"
9
11
  ],
12
+ "engines": {
13
+ "node": "20 || 22"
14
+ },
10
15
  "scripts": {
11
- "build": "tsc && npm run copy:assets",
12
- "test": "jest --passWithNoTests",
13
- "test:ci": "jest --runInBand --passWithNoTests",
16
+ "build": "rollup -c rollup.config.ts --bundleConfigAsCjs && npm run copy:assets",
17
+ "clean": "rm -rf ./dist/",
18
+ "test": "jest",
19
+ "test:ci": "jest --runInBand",
20
+ "typecheck": "tsc",
14
21
  "lint": "eslint . --cache --max-warnings 0",
22
+ "lint:fix": "eslint . --cache --max-warnings 0 --fix",
15
23
  "copy:assets": "rm -rf dist/assets && cp -r src/assets dist/assets",
16
- "security_audit": "npx audit-ci --config audit-ci.json"
24
+ "security_audit": "npx audit-ci --config audit-ci.json",
25
+ "prepare": "hmpps-precommit-hooks-prepare",
26
+ "precommit:secrets": "gitleaks git --pre-commit --redact --staged --verbose --config .gitleaks/config.toml",
27
+ "precommit:lint": "node_modules/.bin/lint-staged",
28
+ "precommit:verify": "npm run typecheck && npm test"
17
29
  },
18
- "jest": {
19
- "transform": {
20
- "^.+\\.tsx?$": [
21
- "ts-jest",
22
- {
23
- "isolatedModules": true
24
- }
25
- ]
26
- },
27
- "testMatch": [
28
- "<rootDir>/**/**/?(*.)(cy|test).{ts,js,jsx,mjs}"
29
- ],
30
- "testEnvironment": "node",
31
- "reporters": [
32
- "default",
33
- [
34
- "jest-junit",
35
- {
36
- "outputDirectory": "test_results/jest/"
37
- }
38
- ],
39
- [
40
- "./node_modules/jest-html-reporter",
41
- {
42
- "outputPath": "test_results/unit-test-reports.html"
43
- }
44
- ]
30
+ "lint-staged": {
31
+ "*.{ts,css}": [
32
+ "prettier --write",
33
+ "eslint --fix"
45
34
  ],
46
- "moduleFileExtensions": [
47
- "web.js",
48
- "js",
49
- "json",
50
- "node",
51
- "ts"
35
+ "*.json": [
36
+ "prettier --write"
52
37
  ]
53
38
  },
39
+ "author": "hmpps-developers",
40
+ "homepage": "https://github.com/ministryofjustice/hmpps-connect-dps-shared-items-package#readme",
41
+ "license": "MIT",
54
42
  "repository": {
55
43
  "type": "git",
56
44
  "url": "git+ssh://git@github.com/ministryofjustice/hmpps-connect-dps-shared-items-package.git"
57
45
  },
58
- "author": "",
59
- "license": "MIT",
60
46
  "bugs": {
61
47
  "url": "https://github.com/ministryofjustice/hmpps-connect-dps-shared-items-package/issues"
62
48
  },
63
- "homepage": "https://github.com/ministryofjustice/hmpps-connect-dps-shared-items-package#readme",
64
49
  "devDependencies": {
50
+ "@ministryofjustice/eslint-config-hmpps": "^0.0.3",
51
+ "@ministryofjustice/hmpps-precommit-hooks": "^0.0.3",
52
+ "@rollup/plugin-commonjs": "^28.0.6",
53
+ "@rollup/plugin-multi-entry": "^6.0.1",
54
+ "@rollup/plugin-node-resolve": "^16.0.1",
55
+ "@rollup/plugin-typescript": "^12.1.4",
56
+ "@tsconfig/node22": "^22.0.2",
65
57
  "@types/jest": "^29.5.14",
66
- "@typescript-eslint/eslint-plugin": "^6.21.0",
67
- "eslint": "^8.57.1",
68
- "eslint-config-airbnb-base": "^15.0.0",
69
- "eslint-config-prettier": "^9.1.0",
70
- "eslint-import-resolver-typescript": "^3.6.3",
71
- "eslint-plugin-cypress": "^2.15.2",
72
- "eslint-plugin-import": "^2.31.0",
58
+ "@typescript-eslint/eslint-plugin": "^8.41.0",
59
+ "eslint-import-resolver-typescript": "^4.4.4",
73
60
  "eslint-plugin-no-only-tests": "^3.3.0",
74
- "eslint-plugin-prettier": "^5.2.1",
75
61
  "jest": "^29.7.0",
76
62
  "jest-html-reporter": "^3.10.2",
77
63
  "jest-junit": "^16.0.0",
78
- "ts-jest": "^29.2.5"
79
- }
64
+ "lint-staged": "^16.1.5",
65
+ "rollup": "^4.49.0",
66
+ "rollup-plugin-dts": "^6.2.3",
67
+ "ts-jest": "^29.4.1",
68
+ "tslib": "^2.8.1"
69
+ },
70
+ "dependencies": {}
80
71
  }
@@ -0,0 +1,21 @@
1
+ [< Back](../README.md)
2
+ ---
3
+
4
+ ## Publishing to NPM
5
+
6
+ This library is [published to NPM](https://www.npmjs.com/package/@ministryofjustice/hmpps-connect-dps-components).
7
+
8
+ The process to publish a change is as follows:
9
+
10
+ * Create a branch from `main`
11
+ * Make the code changes
12
+ * Run `npm version <patch|minor|major> --no-git-tag-version` to bump the version number appropriately (for help with
13
+ semantic versioning, see https://semver.org/)
14
+ * Commit the changes, push the branch and raise a PR
15
+ * Once the PR has been merged to `main`, [create a new release](https://github.com/ministryofjustice/hmpps-connect-dps-shared-items-package/releases/new):
16
+ * Select the `Choose a tag` dropdown and create a new tag entering the new version number (this must start with a `v`, e.g. `v0.0.1`)
17
+ * Enter a release title with the following format `<version>: <short title>` e.g. `v0.0.1: First Release`
18
+ * Enter a more detailed description of the release
19
+ * Click `Publish release`
20
+
21
+ CircleCI is configured to trigger on the tagged release and publish to NPM.
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAlertFlagLabelsForAlerts.js","sourceRoot":"","sources":["../../src/alertFlags/getAlertFlagLabelsForAlerts.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAlertsServiceAlert = isAlertsServiceAlert;
4
- function isAlertsServiceAlert(alert) {
5
- return typeof alert.alertCode !== 'string';
6
- }
7
- //# sourceMappingURL=Alert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../src/alertFlags/types/Alert.ts"],"names":[],"mappings":";;AAgEA,oDAEC;AAFD,SAAgB,oBAAoB,CAAC,KAAY;IAC/C,OAAO,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAA;AAC5C,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=AlertFlagLabel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AlertFlagLabel.js","sourceRoot":"","sources":["../../../src/alertFlags/types/AlertFlagLabel.ts"],"names":[],"mappings":""}
package/dist/index.js DELETED
@@ -1,12 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const getAlertFlagLabelsForAlerts_1 = __importDefault(require("./alertFlags/getAlertFlagLabelsForAlerts"));
7
- exports.default = {
8
- alertFlags: {
9
- getAlertFlagLabelsForAlerts: getAlertFlagLabelsForAlerts_1.default,
10
- },
11
- };
12
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,2GAAkF;AAElF,kBAAe;IACb,UAAU,EAAE;QACV,2BAA2B,EAA3B,qCAA2B;KAC5B;CACF,CAAA"}