@ministryofjustice/hmpps-arns-frontend-components-lib 2.0.0 → 2.1.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.
Files changed (38) hide show
  1. package/dist/ArnsComponents.d.ts +3 -1
  2. package/dist/SuppressingRestClient.d.ts +8 -0
  3. package/dist/_all.scss +1 -1
  4. package/dist/arns/components/{predictor-badge/_predictor-badge.scss → badge-base/_badge-base.scss} +19 -18
  5. package/dist/arns/components/badge-base/macro.njk +3 -0
  6. package/dist/arns/components/badge-base/template.njk +62 -0
  7. package/dist/arns/components/expanded-predictor-badge/_expanded-predictor-badge.scss +1 -6
  8. package/dist/arns/components/expanded-predictor-badge/template.njk +10 -3
  9. package/dist/arns/components/predictor-badge/template.njk +2 -35
  10. package/dist/arns/components/predictor-timeline/_predictor-timeline.scss +6 -10
  11. package/dist/arns/components/predictor-timeline/template.njk +13 -4
  12. package/dist/arns/components/rosh-badge/macro.njk +3 -0
  13. package/dist/arns/components/rosh-badge/template.njk +27 -0
  14. package/dist/index.cjs.js +114 -25
  15. package/dist/index.cjs.js.map +1 -1
  16. package/dist/index.d.ts +27 -9
  17. package/dist/index.esm.js +114 -25
  18. package/dist/index.esm.js.map +1 -1
  19. package/dist/transformers/AllRoshRiskDtoToRoshDataTransformer.d.ts +3 -0
  20. package/dist/types/AssessmentV1.d.ts +2 -2
  21. package/dist/types/AssessmentV2.d.ts +2 -2
  22. package/dist/types/Predictor.d.ts +4 -4
  23. package/dist/types/RoshAssessment.d.ts +6 -0
  24. package/dist/types/RoshData.d.ts +5 -0
  25. package/dist/types/RoshRisk.d.ts +5 -0
  26. package/dist/types/dtos/AllPredictorDto.d.ts +11 -11
  27. package/dist/types/dtos/AllRoshRiskDto.d.ts +9 -0
  28. package/dist/types/dtos/BasePredictorDto.d.ts +2 -2
  29. package/dist/types/dtos/OtherRoshRisksDto.d.ts +8 -0
  30. package/dist/types/dtos/ResponseDto.d.ts +6 -0
  31. package/dist/types/dtos/RiskDto.d.ts +8 -0
  32. package/dist/types/dtos/RiskLevelDto.d.ts +6 -0
  33. package/dist/types/dtos/RiskRoshSummaryDto.d.ts +13 -0
  34. package/dist/types/dtos/RoshRiskToSelfDto.d.ts +9 -0
  35. package/dist/types/dtos/StaticOrDynamicPredictorDto.d.ts +1 -1
  36. package/dist/utils/predictorUtils.d.ts +1 -1
  37. package/dist/utils/toMap.d.ts +4 -0
  38. package/package.json +11 -11
@@ -3,8 +3,10 @@ import type { AuthenticationClient } from '@ministryofjustice/hmpps-auth-clients
3
3
  import type Logger from 'bunyan';
4
4
  import type { ArnsComponentsConfig } from './types/ArnsComponentsConfig';
5
5
  import type { RiskData } from './types/RiskData';
6
+ import { RoshData } from './types/RoshData';
6
7
  export default class ArnsComponents {
7
- private readonly restClient;
8
+ private readonly arnsApiRestClient;
8
9
  constructor(authenticationClient: AuthenticationClient, config: ArnsComponentsConfig, logger?: Logger | Console);
9
10
  getRiskData(authOptions: AuthOptions | string, identifierType: string, identifierValue: string): Promise<RiskData>;
11
+ getRoshData(authOptions: AuthOptions | string, identifierValue: string): Promise<RoshData>;
10
12
  }
@@ -0,0 +1,8 @@
1
+ import type { RestClient, AuthOptions } from '@ministryofjustice/hmpps-rest-client';
2
+ import type Logger from 'bunyan';
3
+ export declare class SuppressingRestClient {
4
+ private readonly restClient;
5
+ private readonly logger;
6
+ constructor(restClient: RestClient, logger: Logger | Console);
7
+ get<T>(path: string, authOptions: AuthOptions | string): Promise<T | null>;
8
+ }
package/dist/_all.scss CHANGED
@@ -2,7 +2,7 @@
2
2
  // Import this file into your project's main SCSS file
3
3
  // Requires govuk-frontend to be imported first
4
4
 
5
- @import "./arns/components/predictor-badge/predictor-badge";
5
+ @import "./arns/components/badge-base/badge-base";
6
6
  @import "./arns/components/expanded-predictor-badge/expanded-predictor-badge";
7
7
  @import "./arns/components/predictor-scale/predictor-scale";
8
8
  @import "./arns/components/predictor-scale-bar/predictor-scale-bar";
@@ -14,18 +14,18 @@ $default-colour: govuk-colour("mid-grey");
14
14
  $default-colour--light: govuk-colour("light-grey");
15
15
  $default-colour__text: govuk-colour("black");
16
16
 
17
- @mixin arns-predictor-badge-base($primary-colour, $secondary-colour, $text-colour) {
17
+ @mixin arns-badge-base-base($primary-colour, $secondary-colour, $text-colour) {
18
18
  display: inline-flex;
19
19
  outline: 2px solid $primary-colour;
20
20
 
21
- & .arns-predictor-badge__type_and_level {
21
+ & .arns-badge-base__type_and_level {
22
22
  @include govuk-font(19, "regular");
23
23
  color: $text-colour;
24
24
 
25
25
  padding: 2px 10px;
26
26
  }
27
27
 
28
- & .arns-predictor-badge__score {
28
+ & .arns-badge-base__score {
29
29
  @include govuk-font(19, "bold");
30
30
  color: govuk-colour("black");
31
31
 
@@ -36,38 +36,39 @@ $default-colour__text: govuk-colour("black");
36
36
  align-content: center;
37
37
  }
38
38
 
39
- & .arns-predictor-badge__static_or_dynamic {
39
+ & .arns-badge-base__static_or_dynamic {
40
40
  @include govuk-font(19, "regular");
41
41
  color: #282D30;
42
-
43
- background-color: #E5E6E7;
42
+ background-color: #cecece;
44
43
  border-left: 2px solid $primary-colour;
45
-
46
- padding: 2px 2px;
47
44
  align-content: center;
48
45
  }
46
+
47
+ & .arns-predictor-badge__govuk-tag-sizing {
48
+ padding: 2px
49
+ }
49
50
  }
50
51
 
51
- .arns-predictor-badge--very-high {
52
- @include arns-predictor-badge-base(
52
+ .arns-badge-base--very-high {
53
+ @include arns-badge-base-base(
53
54
  $very-high-score-colour,
54
55
  $very-high-score-colour--light,
55
56
  $very-high-score-colour__text
56
57
  );
57
58
  }
58
59
 
59
- .arns-predictor-badge--high {
60
- @include arns-predictor-badge-base($high-score-colour, $high-score-colour--light, $high-score-colour__text);
60
+ .arns-badge-base--high {
61
+ @include arns-badge-base-base($high-score-colour, $high-score-colour--light, $high-score-colour__text);
61
62
  }
62
63
 
63
- .arns-predictor-badge--medium {
64
- @include arns-predictor-badge-base($medium-score-colour, $medium-score-colour--light, $medium-score-colour__text);
64
+ .arns-badge-base--medium {
65
+ @include arns-badge-base-base($medium-score-colour, $medium-score-colour--light, $medium-score-colour__text);
65
66
  }
66
67
 
67
- .arns-predictor-badge--low {
68
- @include arns-predictor-badge-base($low-score-colour, $low-score-colour--light, $low-score-colour__text);
68
+ .arns-badge-base--low {
69
+ @include arns-badge-base-base($low-score-colour, $low-score-colour--light, $low-score-colour__text);
69
70
  }
70
71
 
71
- .arns-predictor-badge--default {
72
- @include arns-predictor-badge-base($default-colour, $default-colour--light, $default-colour__text);
72
+ .arns-badge-base--default {
73
+ @include arns-badge-base-base($default-colour, $default-colour--light, $default-colour__text);
73
74
  }
@@ -0,0 +1,3 @@
1
+ {% macro badgeBase(name, band, score, staticOrDynamic, shouldShowScore) %}
2
+ {%- include "./template.njk" -%}
3
+ {% endmacro %}
@@ -0,0 +1,62 @@
1
+ {#
2
+ ARNS Badge Base Component
3
+
4
+ @name badgeBase
5
+
6
+ @description Common component for displaying a specified risk predictor score badge.
7
+ It uses the latest assessment from the provided data set.
8
+
9
+ @example
10
+ In template:
11
+ {% from "components/badge-base/macro.njk" import badgeBase %}
12
+ {{ badgeBase({
13
+ name: string,
14
+ band: "LOW",
15
+ score: "12.84",
16
+ staticOrDynamic: "Static",
17
+ shouldShowScore: true,
18
+ }) }}
19
+
20
+ @param {object} params
21
+ @param {string} name: Predictor name or Risk of Serious Harm text
22
+ @param {BandLevel} band: Risk level,
23
+ @param {number | undefined} score: Percentage score,
24
+ @param {StaticOrDynamicContent} staticOrDynamic: Static or Dynamic,
25
+ @param {boolean | undefined} shouldShowScore: Optional config override - If true, displays the percentage score
26
+ #}
27
+ {%- from "govuk/components/tag/macro.njk" import govukTag -%}
28
+
29
+ {% set badgeClass = '' %}
30
+ {% switch band %}
31
+ {% case 'VERY HIGH' %}
32
+ {% set badgeClass = 'arns-badge-base--very-high' %}
33
+ {% case 'HIGH' %}
34
+ {% set badgeClass = 'arns-badge-base--high' %}
35
+ {% case 'MEDIUM' %}
36
+ {% set badgeClass = 'arns-badge-base--medium' %}
37
+ {% case 'LOW' %}
38
+ {% set badgeClass = 'arns-badge-base--low' %}
39
+ {% default %}
40
+ {% set badgeClass = 'arns-badge-base--default' %}
41
+ {% endswitch %}
42
+ {% if band == null or (shouldShowScore == true and score == null) %}
43
+ {% set band = 'UNKNOWN' %}
44
+ {% set badgeClass = 'arns-badge-base--default' %}
45
+ {% else %}
46
+ {% set band = band | replace('_', ' ') %}
47
+ {% endif %}
48
+ <div class="{{ badgeClass }}"
49
+ data-badge-base="{{ name }} {{ band }}">
50
+
51
+ <span class="arns-badge-base__type_and_level" data-test-id="nameAndBand">{{ name }} <strong>{{ band }}</strong></span>
52
+
53
+ {% if shouldShowScore and badgeClass != 'arns-badge-base--default' %}
54
+ <span class="arns-badge-base__score" data-test-id="score">{{ score }}%</span>
55
+ {% endif %}
56
+
57
+ {% if staticOrDynamic and badgeClass !== 'arns-badge-base--default' %}
58
+ <span class="arns-badge-base__static_or_dynamic" data-test-id="staticOrDynamic">
59
+ {{ govukTag({ text: staticOrDynamic, classes: "govuk-tag--grey arns-badge-base__govuk-tag-sizing"}) }}
60
+ </span>
61
+ {% endif %}
62
+ </div>
@@ -48,12 +48,7 @@ $default-colour__text: govuk-colour("black");
48
48
  }
49
49
 
50
50
  & .arns-predictor-badge__static_or_dynamic {
51
- @include govuk-font(19, "regular");
52
- color: #282D30;
53
-
54
- background-color: #E5E6E7;
55
-
56
- padding: 2px 4px;
51
+ padding: 1px 4px;
57
52
  }
58
53
 
59
54
  & .arns-predictor-badge__wrapped_static_or_dynamic {
@@ -28,6 +28,8 @@
28
28
  @param {boolean} [params.legacyFallback] - Optional (default false) - If true and predictor requested is OGRS4-gen, fallback to showing the OGRS3-gen predictor if the latest assessment is OGRS3-gen.
29
29
  @param {boolean} params.excludeDate - Optional flag for excluding date
30
30
  #}
31
+ {%- from "govuk/components/tag/macro.njk" import govukTag -%}
32
+
31
33
  {% set latestAssessment = params.data.assessments | first if params.data.assessments else null %}
32
34
 
33
35
  {% if latestAssessment %}
@@ -59,9 +61,9 @@
59
61
  {% set badgeClass = 'arns-expanded-predictor-badge--default' %}
60
62
  {% endswitch %}
61
63
 
62
- {% set staticOrDynamicClass = 'arns-predictor-badge__static_or_dynamic' %}
64
+ {% set staticOrDynamicWrapperClass = '' %}
63
65
  {% if shouldShowScore and predictor.band in ['VERY HIGH', 'MEDIUM'] and predictor.staticOrDynamic | upper === 'DYNAMIC' %}
64
- {% set staticOrDynamicClass = staticOrDynamicClass + ' arns-predictor-badge__wrapped_static_or_dynamic' %}
66
+ {% set staticOrDynamicWrapperClass = 'class=arns-predictor-badge__wrapped_static_or_dynamic' %}
65
67
  {% endif %}
66
68
 
67
69
  {% if params.fixedWidth or params.fixedWidth is undefined %}
@@ -91,7 +93,12 @@
91
93
  {% endif %}
92
94
 
93
95
  {% if predictor.staticOrDynamic and badgeClass != 'arns-expanded-predictor-badge--default' %}
94
- <span class="{{ staticOrDynamicClass }}" data-test-id="staticOrDynamic">{{ predictor.staticOrDynamic }}</span>
96
+ <span {{ staticOrDynamicWrapperClass }} data-test-id="staticOrDynamic">
97
+ {{ govukTag({
98
+ text: predictor.staticOrDynamic,
99
+ classes: "govuk-tag--grey arns-predictor-badge__static_or_dynamic"
100
+ }) }}
101
+ </span>
95
102
  {% endif %}
96
103
 
97
104
  </div>
@@ -26,6 +26,7 @@
26
26
  @param {boolean} [params.showScore] - Optional config override - If true, displays the percentage score
27
27
  @param {boolean} [params.legacyFallback] - Optional (default false) - If true and predictor requested is OGRS4-gen, fallback to showing the OGRS3-gen predictor if the latest assessment is OGRS3-gen.
28
28
  #}
29
+ {%- from "../badge-base/macro.njk" import badgeBase -%}
29
30
  {% set latestAssessment = params.data.assessments | first if params.data.assessments else null %}
30
31
 
31
32
  {% if latestAssessment %}
@@ -42,41 +43,7 @@
42
43
  {% if key == predictorToRender %}
43
44
 
44
45
  {% set shouldShowScore = params.showScore if params.showScore is defined else config.showScore %}
45
-
46
- {% set badgeClass = '' %}
47
- {% switch predictor.band %}
48
- {% case 'VERY HIGH' %}
49
- {% set badgeClass = 'arns-predictor-badge--very-high' %}
50
- {% case 'HIGH' %}
51
- {% set badgeClass = 'arns-predictor-badge--high' %}
52
- {% case 'MEDIUM' %}
53
- {% set badgeClass = 'arns-predictor-badge--medium' %}
54
- {% case 'LOW' %}
55
- {% set badgeClass = 'arns-predictor-badge--low' %}
56
- {% default %}
57
- {% set badgeClass = 'arns-predictor-badge--default' %}
58
- {% endswitch %}
59
-
60
- {% if predictor.band == null or (shouldShowScore == true and predictor.score == null) %}
61
- {% set band = 'UNKNOWN' %}
62
- {% set badgeClass = 'arns-predictor-badge--default' %}
63
- {% else %}
64
- {% set band = predictor.band | replace('_', ' ') %}
65
- {% endif %}
66
-
67
- <div class="{{ badgeClass }}"
68
- data-predictor-badge="{{ predictor.name }} {{ band }}">
69
-
70
- <span class="arns-predictor-badge__type_and_level" data-test-id="nameAndBand">{{ predictor.name }} <strong>{{ band }}</strong></span>
71
-
72
- {% if shouldShowScore and badgeClass != 'arns-predictor-badge--default' %}
73
- <span class="arns-predictor-badge__score" data-test-id="score">{{ predictor.score }}%</span>
74
- {% endif %}
75
-
76
- {% if predictor.staticOrDynamic and badgeClass !== 'arns-predictor-badge--default' %}
77
- <span class="arns-predictor-badge__static_or_dynamic" data-test-id="staticOrDynamic">{{ predictor.staticOrDynamic }}</span>
78
- {% endif %}
79
- </div>
46
+ {{ badgeBase(predictor.name, predictor.band, predictor.score, predictor.staticOrDynamic, shouldShowScore) }}
80
47
  {% endif %}
81
48
  {% endfor %}
82
49
  {% endif %}
@@ -109,12 +109,7 @@ $default-colour__text: govuk-colour("black");
109
109
  }
110
110
 
111
111
  & .arns-predictor-timeline-item__static_or_dynamic {
112
- @include govuk-font(19, "regular");
113
- color: #282D30;
114
-
115
- background-color: #E5E6E7;
116
-
117
- padding: 2px 5px;
112
+ padding: 1px 4px;
118
113
  }
119
114
 
120
115
  & .arns-predictor-timeline-item__wrapped_static_or_dynamic {
@@ -208,13 +203,14 @@ $default-colour__text: govuk-colour("black");
208
203
  & .arns-legacy-predictor-timeline-item__static_or_dynamic {
209
204
  @include govuk-font(19, "regular");
210
205
  color: #282D30;
211
-
212
- background-color: #E5E6E7;
206
+ background-color: #cecece;
213
207
  border-left: 2px solid $primary-colour;
214
-
215
- padding: 2px 2px;
216
208
  align-content: center;
217
209
  }
210
+
211
+ & .arns-legacy-predictor-timeline-item__govuk-tag-sizing {
212
+ padding: 2px
213
+ }
218
214
  }
219
215
 
220
216
  .arns-legacy-predictor-timeline-item--very-high {
@@ -21,6 +21,8 @@ In template:
21
21
  @param {RiskData} params.data - Risk data object from ArnsComponents.getRiskData() containing an 'assessments' array
22
22
  @param {string} params.ogrs4ReleaseDate - The release date for the warning macro
23
23
  #}
24
+ {%- from "govuk/components/tag/macro.njk" import govukTag -%}
25
+
24
26
  {% set ogrs4ReleaseDate = params.ogrs4ReleaseDate | default("23 February 2026 at 09:00") %}
25
27
  {% set hasTimelineWarning = false %}
26
28
 
@@ -59,7 +61,9 @@ In template:
59
61
  {% endif %}
60
62
 
61
63
  {% if predictor.staticOrDynamic and timelineItemClass != 'arns-legacy-predictor-timeline-item--default' %}
62
- <span class="arns-legacy-predictor-timeline-item__static_or_dynamic" data-test-id="staticOrDynamic">{{ predictor.staticOrDynamic }}</span>
64
+ <span class="arns-legacy-predictor-timeline-item__static_or_dynamic" data-test-id="staticOrDynamic">
65
+ {{ govukTag({ text: predictor.staticOrDynamic, classes: "govuk-tag--grey arns-legacy-predictor-timeline-item__govuk-tag-sizing"}) }}
66
+ </span>
63
67
  {% endif %}
64
68
 
65
69
  </div>
@@ -79,9 +83,9 @@ In template:
79
83
  {% set timelineItemClass = 'arns-predictor-timeline-item--default' %}
80
84
  {% endswitch %}
81
85
 
82
- {% set staticOrDynamicClass = 'arns-predictor-timeline-item__static_or_dynamic' %}
86
+ {% set staticOrDynamicWrapperClass = '' %}
83
87
  {% if predictor.score and predictor.band in ['VERY HIGH', 'MEDIUM'] and predictor.staticOrDynamic | upper === 'DYNAMIC' %}
84
- {% set staticOrDynamicClass = staticOrDynamicClass + ' arns-predictor-timeline-item__wrapped_static_or_dynamic' %}
88
+ {% set staticOrDynamicWrapperClass = 'class=arns-predictor-timeline-item__wrapped_static_or_dynamic' %}
85
89
  {% endif %}
86
90
 
87
91
  {% if predictor.band is undefined %}
@@ -102,7 +106,12 @@ In template:
102
106
  {% endif %}
103
107
 
104
108
  {% if predictor.staticOrDynamic and timelineItemClass != 'arns-predictor-timeline-item--default' %}
105
- <span class="{{ staticOrDynamicClass }}" data-test-id="staticOrDynamic">{{ predictor.staticOrDynamic }}</span>
109
+ <span {{ staticOrDynamicWrapperClass }} data-test-id="staticOrDynamic">
110
+ {{ govukTag({
111
+ text: predictor.staticOrDynamic,
112
+ classes: "govuk-tag--grey arns-predictor-timeline-item__static_or_dynamic"
113
+ }) }}
114
+ </span>
106
115
  {% endif %}
107
116
 
108
117
  </div>
@@ -0,0 +1,3 @@
1
+ {% macro roshBadge(params) %}
2
+ {%- include "./template.njk" -%}
3
+ {% endmacro %}
@@ -0,0 +1,27 @@
1
+ {#
2
+ ARNS Rosh Badge Component
3
+
4
+ @name roshBadge
5
+
6
+ @description Displays a specified rosh badge.
7
+ It uses the latest assessment from the provided data set.
8
+
9
+ @example
10
+ In route handler:
11
+ const riskData = await arnsComponents.getRoshData(token, 'crn', 'X123456')
12
+ res.render('page', { riskData })
13
+
14
+ In template:
15
+ {% from "components/rosh-badge/macro.njk" import roshBadge %}
16
+ {{ roshBadge({
17
+ data: roshData
18
+ }) }}
19
+
20
+ @param {object} params
21
+ @param {RoshData} params.data - Rosh data object from ArnsComponents.getRoshData() containing an 'assessment' object
22
+ #}
23
+ {%- from "../badge-base/macro.njk" import badgeBase -%}
24
+ {% set assessment = params.data.assessment if params.data.assessment else "null" %}
25
+ {% if assessment %}
26
+ {{ badgeBase("Risk of serious harm", assessment.overallRisk, null, null, false) }}
27
+ {% endif %}
package/dist/index.cjs.js CHANGED
@@ -11,24 +11,26 @@ function transformAllPredictorVersionedDtoToAssessments(dtos) {
11
11
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
12
12
  let dateFormatDayMonthYearTime;
13
13
  let dateFormatDayMonthYear;
14
- if (dto.completedDate) {
15
- const date = new Date(dto.completedDate);
16
- if (!Number.isNaN(date.getTime())) {
17
- dateFormatDayMonthYear = new Intl.DateTimeFormat('en-GB', {
18
- day: '2-digit',
19
- month: 'long',
20
- year: 'numeric',
21
- }).format(date);
22
- const time = date.toLocaleTimeString('en-GB', {
23
- hour: '2-digit',
24
- minute: '2-digit',
25
- hour12: false,
26
- });
27
- dateFormatDayMonthYearTime = `${dateFormatDayMonthYear} at ${time}`;
28
- }
14
+ const date = new Date(dto.completedDate);
15
+ if (!Number.isNaN(date.getTime())) {
16
+ dateFormatDayMonthYear = new Intl.DateTimeFormat('en-GB', {
17
+ day: '2-digit',
18
+ month: 'long',
19
+ year: 'numeric',
20
+ }).format(date);
21
+ const time = date.toLocaleTimeString('en-GB', {
22
+ hour: '2-digit',
23
+ minute: '2-digit',
24
+ hour12: false,
25
+ });
26
+ dateFormatDayMonthYearTime = `${dateFormatDayMonthYear} at ${time}`;
27
+ }
28
+ else {
29
+ dateFormatDayMonthYear = null;
30
+ dateFormatDayMonthYearTime = null;
29
31
  }
30
32
  const { output } = dto;
31
- if (dto.outputVersion === '1') {
33
+ if (output && dto.outputVersion === '1') {
32
34
  return {
33
35
  outputVersion: '1',
34
36
  completedDate: dateFormatDayMonthYear,
@@ -42,7 +44,7 @@ function transformAllPredictorVersionedDtoToAssessments(dtos) {
42
44
  ospiic: mapPredictor('OSP\u2013IIC', (_m = output.sexualPredictorScore) === null || _m === void 0 ? void 0 : _m.ospIndecentScoreLevel, null, (_o = output.sexualPredictorScore) === null || _o === void 0 ? void 0 : _o.ospIndecentPercentageScore, dateFormatDayMonthYear),
43
45
  };
44
46
  }
45
- if (dto.outputVersion === '2') {
47
+ if (output && dto.outputVersion === '2') {
46
48
  return {
47
49
  outputVersion: '2',
48
50
  completedDate: dateFormatDayMonthYear,
@@ -62,12 +64,13 @@ function transformAllPredictorVersionedDtoToAssessments(dtos) {
62
64
  function mapPredictor(name, band, staticOrDynamic, score, date) {
63
65
  return {
64
66
  name,
65
- band: band === null || band === void 0 ? void 0 : band.replace(/_/g, ' ').toUpperCase(),
67
+ // Use optional chaining and fallback to null
68
+ band: band ? band.replace(/_/g, ' ').toUpperCase() : null,
66
69
  staticOrDynamic: staticOrDynamic
67
70
  ? staticOrDynamic.charAt(0).toUpperCase() + staticOrDynamic.slice(1).toLowerCase()
68
71
  : null,
69
- score,
70
- completedDate: date,
72
+ score: score !== null && score !== void 0 ? score : null, // Fallback to null if score is missing
73
+ completedDate: date !== null && date !== void 0 ? date : null,
71
74
  };
72
75
  }
73
76
  function convertAssessmentType(assessmentType) {
@@ -81,23 +84,109 @@ function convertAssessmentType(assessmentType) {
81
84
  }
82
85
  }
83
86
 
87
+ const toMap = (partial) => {
88
+ const x = {};
89
+ Object.entries(partial).forEach(item => {
90
+ item[1].forEach(v => {
91
+ // eslint-disable-next-line prefer-destructuring
92
+ x[v] = item[0];
93
+ });
94
+ });
95
+ return x;
96
+ };
97
+
98
+ function transformAllRoshRiskDtoToRoshData(dto) {
99
+ var _a, _b, _c, _d, _e, _f;
100
+ let dateFormatDayMonthYear;
101
+ if ((_a = dto.summary) === null || _a === void 0 ? void 0 : _a.assessedOn) {
102
+ const date = new Date((_b = dto.summary) === null || _b === void 0 ? void 0 : _b.assessedOn);
103
+ dateFormatDayMonthYear = !Number.isNaN(date.getTime())
104
+ ? new Intl.DateTimeFormat('en-GB', {
105
+ day: '2-digit',
106
+ month: 'long',
107
+ year: 'numeric',
108
+ }).format(date)
109
+ : null;
110
+ }
111
+ else {
112
+ dateFormatDayMonthYear = null;
113
+ }
114
+ const riskInCommunity = ((_c = dto.summary) === null || _c === void 0 ? void 0 : _c.riskInCommunity) ? toMap(dto.summary.riskInCommunity) : {};
115
+ const riskInCustody = ((_d = dto.summary) === null || _d === void 0 ? void 0 : _d.riskInCustody) ? toMap(dto.summary.riskInCustody) : {};
116
+ const risks = Array.from(new Set([...Object.keys(riskInCommunity), ...Object.keys(riskInCustody)])).map(key => {
117
+ var _a, _b;
118
+ return {
119
+ riskTo: key,
120
+ community: ((_a = riskInCommunity[key]) === null || _a === void 0 ? void 0 : _a.toUpperCase()) || 'N/A',
121
+ custody: ((_b = riskInCustody[key]) === null || _b === void 0 ? void 0 : _b.toUpperCase()) || 'N/A',
122
+ };
123
+ });
124
+ const getOverallRisk = ((_e = dto.summary) === null || _e === void 0 ? void 0 : _e.overallRiskLevel) ? (_f = dto.summary) === null || _f === void 0 ? void 0 : _f.overallRiskLevel.toUpperCase() : null;
125
+ return {
126
+ completedDate: dateFormatDayMonthYear,
127
+ overallRisk: getOverallRisk,
128
+ risks,
129
+ };
130
+ }
131
+
132
+ class SuppressingRestClient {
133
+ constructor(restClient, logger) {
134
+ this.restClient = restClient;
135
+ this.logger = logger;
136
+ }
137
+ async get(path, authOptions) {
138
+ return this.restClient.get({
139
+ path,
140
+ errorHandler: (requestPath, method, error) => {
141
+ if (error.responseStatus === 404) {
142
+ this.logger.debug(`API returned 404 (Not Found) for ${method}: ${requestPath}`);
143
+ return null;
144
+ }
145
+ throw error;
146
+ },
147
+ }, authOptions);
148
+ }
149
+ }
150
+
84
151
  class ArnsComponents {
85
152
  constructor(authenticationClient, config, logger = console) {
86
- this.restClient = new hmppsRestClient.RestClient('ARNS API', config, logger, authenticationClient);
153
+ this.arnsApiRestClient = new SuppressingRestClient(new hmppsRestClient.RestClient('ARNS API', config, logger, authenticationClient), logger);
87
154
  }
88
155
  async getRiskData(authOptions, identifierType, identifierValue) {
89
- var _a;
90
156
  try {
91
- const response = await this.restClient.get({ path: `/risks/predictors/all/${identifierType}/${identifierValue}` }, authOptions);
157
+ const response = await this.arnsApiRestClient.get(`/risks/predictors/all/${identifierType}/${identifierValue}`, authOptions);
158
+ if (!response) {
159
+ return { assessments: [], httpStatus: 404 };
160
+ }
92
161
  return {
93
162
  assessments: transformAllPredictorVersionedDtoToAssessments(response),
94
163
  httpStatus: 200,
95
164
  };
96
165
  }
97
166
  catch (error) {
167
+ const status = error && typeof error === 'object' && 'status' in error ? error.status : 500;
98
168
  return {
99
169
  assessments: [],
100
- httpStatus: (_a = error.status) !== null && _a !== void 0 ? _a : 500,
170
+ httpStatus: status !== null && status !== void 0 ? status : 500,
171
+ };
172
+ }
173
+ }
174
+ async getRoshData(authOptions, identifierValue) {
175
+ try {
176
+ const response = await this.arnsApiRestClient.get(`/risks/crn/${identifierValue}`, authOptions);
177
+ if (!response) {
178
+ return { assessment: null, httpStatus: 404 };
179
+ }
180
+ return {
181
+ assessment: transformAllRoshRiskDtoToRoshData(response),
182
+ httpStatus: 200,
183
+ };
184
+ }
185
+ catch (error) {
186
+ const status = error && typeof error === 'object' && 'status' in error ? error.status : 500;
187
+ return {
188
+ assessment: null,
189
+ httpStatus: status !== null && status !== void 0 ? status : 500,
101
190
  };
102
191
  }
103
192
  }
@@ -156,7 +245,7 @@ const containsCompletedAssessment = (data) => {
156
245
  var _a, _b;
157
246
  return (data === null || data === void 0 ? void 0 : data.httpStatus) === 200 && ((_b = (_a = data === null || data === void 0 ? void 0 : data.assessments) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0;
158
247
  };
159
- const isBefore = (dateStr, targetDateStr = null) => {
248
+ const isBefore = (dateStr, targetDateStr) => {
160
249
  const formattedDate = dateStr.replace(' at ', ' ');
161
250
  const date = new Date(formattedDate);
162
251
  const target = targetDateStr ? new Date(targetDateStr.replace(' at ', ' ')) : new Date();
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/transformers/AllPredictorVersionedDtoToAssessmentsTransformer.ts","../src/ArnsComponents.ts","../src/utils/predictorUtils.ts","../src/NunjucksSetup.ts"],"sourcesContent":[null,null,null,null],"names":["RestClient"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/transformers/AllPredictorVersionedDtoToAssessmentsTransformer.ts","../src/utils/toMap.ts","../src/transformers/AllRoshRiskDtoToRoshDataTransformer.ts","../src/SuppressingRestClient.ts","../src/ArnsComponents.ts","../src/utils/predictorUtils.ts","../src/NunjucksSetup.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["RestClient"],"mappings":"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"}