@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.27.0 → 4.28.1

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 (581) hide show
  1. package/dpr/DprClientClass.js +43 -0
  2. package/dpr/DprClientClass.js.map +7 -0
  3. package/dpr/{DprClientClass.mjs → DprClientClass.ts} +1 -0
  4. package/dpr/DprFormValidationClass.js +157 -0
  5. package/dpr/DprFormValidationClass.js.map +7 -0
  6. package/dpr/{DprFormValidationClass.mjs → DprFormValidationClass.ts} +2 -1
  7. package/dpr/DprGenericFormClass.js +66 -0
  8. package/dpr/DprGenericFormClass.js.map +7 -0
  9. package/dpr/{DprGenericFormClass.mjs → DprGenericFormClass.ts} +2 -1
  10. package/dpr/DprLoadingHelper.js +51 -0
  11. package/dpr/DprLoadingHelper.js.map +7 -0
  12. package/dpr/{DprLoadingHelper.mjs → DprLoadingHelper.ts} +1 -0
  13. package/dpr/DprPollingStatusClass.js +79 -0
  14. package/dpr/DprPollingStatusClass.js.map +7 -0
  15. package/dpr/{DprPollingStatusClass.mjs → DprPollingStatusClass.ts} +2 -1
  16. package/dpr/DprQueryParamClass.js +231 -0
  17. package/dpr/DprQueryParamClass.js.map +7 -0
  18. package/dpr/{DprQueryParamClass.mjs → DprQueryParamClass.ts} +2 -1
  19. package/dpr/DprSyncLoading.js +44 -0
  20. package/dpr/DprSyncLoading.js.map +7 -0
  21. package/dpr/{DprSyncLoading.mjs → DprSyncLoading.ts} +2 -1
  22. package/dpr/all.js +111 -0
  23. package/dpr/all.js.map +7 -0
  24. package/dpr/{all.mjs → all.ts} +29 -28
  25. package/dpr/assets/app.js +1 -1
  26. package/dpr/assets/app.js.map +4 -4
  27. package/dpr/components/_async/async-filters-form/clientClass.js +76 -0
  28. package/dpr/components/_async/async-filters-form/clientClass.js.map +7 -0
  29. package/dpr/components/_async/async-filters-form/{clientClass.mjs → clientClass.ts} +3 -2
  30. package/dpr/components/_async/async-filters-form/sortByTemplate.js +60 -1
  31. package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +3 -3
  32. package/dpr/components/_async/async-filters-form/types.d.js +16 -1
  33. package/dpr/components/_async/async-filters-form/types.d.js.map +3 -3
  34. package/dpr/components/_async/async-filters-form/utils.js +180 -1
  35. package/dpr/components/_async/async-filters-form/utils.js.map +3 -3
  36. package/dpr/components/_async/async-polling/clientClass.js +78 -0
  37. package/dpr/components/_async/async-polling/clientClass.js.map +7 -0
  38. package/dpr/components/_async/async-polling/{clientClass.mjs → clientClass.ts} +2 -1
  39. package/dpr/components/_catalogue/catalogue/types.js +16 -1
  40. package/dpr/components/_catalogue/catalogue/types.js.map +3 -3
  41. package/dpr/components/_catalogue/catalogue/utils.js +83 -1
  42. package/dpr/components/_catalogue/catalogue/utils.js.map +3 -3
  43. package/dpr/components/_catalogue/catalogue-filter-by-type/clientClass.js +94 -0
  44. package/dpr/components/_catalogue/catalogue-filter-by-type/clientClass.js.map +7 -0
  45. package/dpr/components/_catalogue/catalogue-filter-by-type/{clientClass.mjs → clientClass.ts} +2 -1
  46. package/dpr/components/_catalogue/catalogue-filters/clientClass.js +70 -0
  47. package/dpr/components/_catalogue/catalogue-filters/clientClass.js.map +7 -0
  48. package/dpr/components/_catalogue/catalogue-filters/{clientClass.mjs → clientClass.ts} +2 -1
  49. package/dpr/components/_catalogue/catalogue-list/utils.js +140 -1
  50. package/dpr/components/_catalogue/catalogue-list/utils.js.map +3 -3
  51. package/dpr/components/_catalogue/catalogue-search/clientClass.js +106 -0
  52. package/dpr/components/_catalogue/catalogue-search/clientClass.js.map +7 -0
  53. package/dpr/components/_catalogue/catalogue-search/{clientClass.mjs → clientClass.ts} +3 -2
  54. package/dpr/components/_catalogue/catalogue-unauthorised-toggle/clientClass.js +135 -0
  55. package/dpr/components/_catalogue/catalogue-unauthorised-toggle/clientClass.js.map +7 -0
  56. package/dpr/components/_catalogue/catalogue-unauthorised-toggle/{clientClass.mjs → clientClass.ts} +2 -1
  57. package/dpr/components/_charts/chart/Chart.js +99 -1
  58. package/dpr/components/_charts/chart/Chart.js.map +3 -3
  59. package/dpr/components/_charts/chart/ChartColours.js +61 -1
  60. package/dpr/components/_charts/chart/ChartColours.js.map +3 -3
  61. package/dpr/components/_charts/chart/ChartTimeseries.js +101 -1
  62. package/dpr/components/_charts/chart/ChartTimeseries.js.map +3 -3
  63. package/dpr/components/_charts/chart/bar/BarChart.js +193 -1
  64. package/dpr/components/_charts/chart/bar/BarChart.js.map +3 -3
  65. package/dpr/components/_charts/chart/bar/clientClass.js +98 -0
  66. package/dpr/components/_charts/chart/bar/clientClass.js.map +7 -0
  67. package/dpr/components/_charts/chart/bar/{clientClass.mjs → clientClass.ts} +2 -1
  68. package/dpr/components/_charts/chart/bar/types.js +16 -1
  69. package/dpr/components/_charts/chart/bar/types.js.map +3 -3
  70. package/dpr/components/_charts/chart/bar/validate.js +73 -1
  71. package/dpr/components/_charts/chart/bar/validate.js.map +3 -3
  72. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js +80 -1
  73. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js.map +3 -3
  74. package/dpr/components/_charts/chart/bar-timeseries/types.js +16 -1
  75. package/dpr/components/_charts/chart/bar-timeseries/types.js.map +3 -3
  76. package/dpr/components/_charts/chart/bar-timeseries/validate.js +48 -1
  77. package/dpr/components/_charts/chart/bar-timeseries/validate.js.map +3 -3
  78. package/dpr/components/_charts/chart/buckets/Buckets.js +194 -1
  79. package/dpr/components/_charts/chart/buckets/Buckets.js.map +3 -3
  80. package/dpr/components/_charts/chart/buckets/types.js +16 -1
  81. package/dpr/components/_charts/chart/buckets/types.js.map +3 -3
  82. package/dpr/components/_charts/chart/buckets/validate.js +40 -1
  83. package/dpr/components/_charts/chart/buckets/validate.js.map +3 -3
  84. package/dpr/components/_charts/chart/chart-config.js +62 -1
  85. package/dpr/components/_charts/chart/chart-config.js.map +3 -3
  86. package/dpr/components/_charts/chart/clientClass.js +136 -0
  87. package/dpr/components/_charts/chart/clientClass.js.map +7 -0
  88. package/dpr/components/_charts/chart/{clientClass.mjs → clientClass.ts} +2 -1
  89. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js +96 -1
  90. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js.map +3 -3
  91. package/dpr/components/_charts/chart/doughnut/clientClass.js +170 -0
  92. package/dpr/components/_charts/chart/doughnut/clientClass.js.map +7 -0
  93. package/dpr/components/_charts/chart/doughnut/{clientClass.mjs → clientClass.ts} +2 -1
  94. package/dpr/components/_charts/chart/doughnut/types.js +16 -1
  95. package/dpr/components/_charts/chart/doughnut/types.js.map +3 -3
  96. package/dpr/components/_charts/chart/doughnut/validate.js +48 -1
  97. package/dpr/components/_charts/chart/doughnut/validate.js.map +3 -3
  98. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +213 -1
  99. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
  100. package/dpr/components/_charts/chart/heatmap/clientClass.js +118 -0
  101. package/dpr/components/_charts/chart/heatmap/clientClass.js.map +7 -0
  102. package/dpr/components/_charts/chart/heatmap/{clientClass.mjs → clientClass.ts} +2 -1
  103. package/dpr/components/_charts/chart/heatmap/types.js +16 -1
  104. package/dpr/components/_charts/chart/heatmap/types.js.map +3 -3
  105. package/dpr/components/_charts/chart/heatmap/validate.js +40 -1
  106. package/dpr/components/_charts/chart/heatmap/validate.js.map +3 -3
  107. package/dpr/components/_charts/chart/line/LineChart.js +107 -1
  108. package/dpr/components/_charts/chart/line/LineChart.js.map +3 -3
  109. package/dpr/components/_charts/chart/line/clientClass.js +93 -0
  110. package/dpr/components/_charts/chart/line/clientClass.js.map +7 -0
  111. package/dpr/components/_charts/chart/line/{clientClass.mjs → clientClass.ts} +2 -1
  112. package/dpr/components/_charts/chart/line/types.js +16 -1
  113. package/dpr/components/_charts/chart/line/types.js.map +3 -3
  114. package/dpr/components/_charts/chart/line/validate.js +48 -1
  115. package/dpr/components/_charts/chart/line/validate.js.map +3 -3
  116. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js +81 -1
  117. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js.map +3 -3
  118. package/dpr/components/_charts/chart/line-timeseries/types.js +16 -1
  119. package/dpr/components/_charts/chart/line-timeseries/types.js.map +3 -3
  120. package/dpr/components/_charts/chart/line-timeseries/validate.js +48 -1
  121. package/dpr/components/_charts/chart/line-timeseries/validate.js.map +3 -3
  122. package/dpr/components/_charts/utils.js +240 -1
  123. package/dpr/components/_charts/utils.js.map +3 -3
  124. package/dpr/components/_dashboards/dashboard-list/types.js +16 -1
  125. package/dpr/components/_dashboards/dashboard-list/types.js.map +3 -3
  126. package/dpr/components/_dashboards/dashboard-list/utils.js +170 -1
  127. package/dpr/components/_dashboards/dashboard-list/utils.js.map +3 -3
  128. package/dpr/components/_dashboards/dashboard-list/validate.js +43 -1
  129. package/dpr/components/_dashboards/dashboard-list/validate.js.map +3 -3
  130. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js +95 -1
  131. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js.map +3 -3
  132. package/dpr/components/_dashboards/dashboard-visualisation/types.js +40 -1
  133. package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +3 -3
  134. package/dpr/components/_dashboards/scorecard/Scorecard.js +176 -1
  135. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +3 -3
  136. package/dpr/components/_dashboards/scorecard/clientClass.js +50 -0
  137. package/dpr/components/_dashboards/scorecard/clientClass.js.map +7 -0
  138. package/dpr/components/_dashboards/scorecard/{clientClass.mjs → clientClass.ts} +2 -1
  139. package/dpr/components/_dashboards/scorecard/types.js +16 -1
  140. package/dpr/components/_dashboards/scorecard/types.js.map +3 -3
  141. package/dpr/components/_dashboards/scorecard/utils.js +61 -1
  142. package/dpr/components/_dashboards/scorecard/utils.js.map +3 -3
  143. package/dpr/components/_dashboards/scorecard/validate.js +50 -1
  144. package/dpr/components/_dashboards/scorecard/validate.js.map +3 -3
  145. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js +212 -1
  146. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js.map +3 -3
  147. package/dpr/components/_dashboards/scorecard-group/types.js +16 -1
  148. package/dpr/components/_dashboards/scorecard-group/types.js.map +3 -3
  149. package/dpr/components/_dashboards/scorecard-group/validate.js +50 -1
  150. package/dpr/components/_dashboards/scorecard-group/validate.js.map +3 -3
  151. package/dpr/components/_filters/filter-input/enum.js +38 -1
  152. package/dpr/components/_filters/filter-input/enum.js.map +3 -3
  153. package/dpr/components/_filters/filter-input/filters.js +37 -1
  154. package/dpr/components/_filters/filter-input/filters.js.map +3 -3
  155. package/dpr/components/_filters/filter-input/types.d.js +16 -1
  156. package/dpr/components/_filters/filter-input/types.d.js.map +3 -3
  157. package/dpr/components/_filters/filters-form/clientClass.js +104 -0
  158. package/dpr/components/_filters/filters-form/clientClass.js.map +7 -0
  159. package/dpr/components/_filters/filters-form/{clientClass.mjs → clientClass.ts} +2 -1
  160. package/dpr/components/_filters/filters-interactive/clientClass.js +55 -0
  161. package/dpr/components/_filters/filters-interactive/clientClass.js.map +7 -0
  162. package/dpr/components/_filters/filters-interactive/{clientClass.mjs → clientClass.ts} +2 -1
  163. package/dpr/components/_filters/filters-selected/clientClass.js +396 -0
  164. package/dpr/components/_filters/filters-selected/clientClass.js.map +7 -0
  165. package/dpr/components/_filters/filters-selected/{clientClass.mjs → clientClass.ts} +7 -7
  166. package/dpr/components/_filters/filters-selected/utils.js +314 -1
  167. package/dpr/components/_filters/filters-selected/utils.js.map +3 -3
  168. package/dpr/components/_filters/filtersTypeEnum.js +32 -1
  169. package/dpr/components/_filters/filtersTypeEnum.js.map +3 -3
  170. package/dpr/components/_filters/types.d.js +16 -1
  171. package/dpr/components/_filters/types.d.js.map +3 -3
  172. package/dpr/components/_filters/utils.js +385 -1
  173. package/dpr/components/_filters/utils.js.map +3 -3
  174. package/dpr/components/_inputs/autocomplete-text-input/clientClass.js +153 -0
  175. package/dpr/components/_inputs/autocomplete-text-input/clientClass.js.map +7 -0
  176. package/dpr/components/_inputs/autocomplete-text-input/{clientClass.mjs → clientClass.ts} +2 -1
  177. package/dpr/components/_inputs/autocomplete-text-input/utils.js +45 -1
  178. package/dpr/components/_inputs/autocomplete-text-input/utils.js.map +3 -3
  179. package/dpr/components/_inputs/date-input/clientClass.js +109 -0
  180. package/dpr/components/_inputs/date-input/clientClass.js.map +7 -0
  181. package/dpr/components/_inputs/date-input/{clientClass.mjs → clientClass.ts} +2 -1
  182. package/dpr/components/_inputs/date-input/utils.js +88 -1
  183. package/dpr/components/_inputs/date-input/utils.js.map +3 -3
  184. package/dpr/components/_inputs/date-range/clientClass.js +206 -0
  185. package/dpr/components/_inputs/date-range/clientClass.js.map +7 -0
  186. package/dpr/components/_inputs/date-range/{clientClass.mjs → clientClass.ts} +2 -1
  187. package/dpr/components/_inputs/date-range/types.js +38 -1
  188. package/dpr/components/_inputs/date-range/types.js.map +3 -3
  189. package/dpr/components/_inputs/date-range/utils.js +229 -1
  190. package/dpr/components/_inputs/date-range/utils.js.map +3 -3
  191. package/dpr/components/_inputs/granular-date-range/clientClass.js +245 -0
  192. package/dpr/components/_inputs/granular-date-range/clientClass.js.map +7 -0
  193. package/dpr/components/_inputs/granular-date-range/{clientClass.mjs → clientClass.ts} +2 -1
  194. package/dpr/components/_inputs/granular-date-range/types.js +70 -1
  195. package/dpr/components/_inputs/granular-date-range/types.js.map +3 -3
  196. package/dpr/components/_inputs/granular-date-range/utils.js +445 -1
  197. package/dpr/components/_inputs/granular-date-range/utils.js.map +3 -3
  198. package/dpr/components/_inputs/multi-select/utils.js +88 -1
  199. package/dpr/components/_inputs/multi-select/utils.js.map +3 -3
  200. package/dpr/components/_inputs/start-end-date/utils.js +84 -1
  201. package/dpr/components/_inputs/start-end-date/utils.js.map +3 -3
  202. package/dpr/components/_reports/report-actions/actionsTemplate.js +59 -1
  203. package/dpr/components/_reports/report-actions/actionsTemplate.js.map +3 -3
  204. package/dpr/components/_reports/report-actions/clientClass.js +103 -0
  205. package/dpr/components/_reports/report-actions/clientClass.js.map +7 -0
  206. package/dpr/components/_reports/report-actions/{clientClass.mjs → clientClass.ts} +2 -1
  207. package/dpr/components/_reports/report-actions/types.d.js +16 -1
  208. package/dpr/components/_reports/report-actions/types.d.js.map +3 -3
  209. package/dpr/components/_reports/report-actions/utils.js +97 -1
  210. package/dpr/components/_reports/report-actions/utils.js.map +3 -3
  211. package/dpr/components/_reports/report-columns-form/clientClass.js +76 -0
  212. package/dpr/components/_reports/report-columns-form/clientClass.js.map +7 -0
  213. package/dpr/components/_reports/report-columns-form/{clientClass.mjs → clientClass.ts} +2 -1
  214. package/dpr/components/_reports/report-columns-form/types.d.js +16 -1
  215. package/dpr/components/_reports/report-columns-form/types.d.js.map +3 -3
  216. package/dpr/components/_reports/report-columns-form/utils.js +65 -1
  217. package/dpr/components/_reports/report-columns-form/utils.js.map +3 -3
  218. package/dpr/components/_reports/report-data-table/clientClass.js +80 -0
  219. package/dpr/components/_reports/report-data-table/clientClass.js.map +7 -0
  220. package/dpr/components/_reports/report-data-table/{clientClass.mjs → clientClass.ts} +2 -1
  221. package/dpr/components/_reports/report-data-table/types.d.js +16 -1
  222. package/dpr/components/_reports/report-data-table/types.d.js.map +3 -3
  223. package/dpr/components/_reports/report-data-table/utils.js +122 -1
  224. package/dpr/components/_reports/report-data-table/utils.js.map +3 -3
  225. package/dpr/components/_reports/report-download-message/clientClass.js +42 -0
  226. package/dpr/components/_reports/report-download-message/clientClass.js.map +7 -0
  227. package/dpr/components/_reports/report-download-message/{clientClass.mjs → clientClass.ts} +2 -1
  228. package/dpr/components/_reports/report-pagination/clientClass.js +61 -0
  229. package/dpr/components/_reports/report-pagination/clientClass.js.map +7 -0
  230. package/dpr/components/_reports/report-pagination/{clientClass.mjs → clientClass.ts} +2 -1
  231. package/dpr/components/_reports/report-pagination/types.d.js +16 -1
  232. package/dpr/components/_reports/report-pagination/types.d.js.map +3 -3
  233. package/dpr/components/_reports/report-pagination/utils.js +105 -1
  234. package/dpr/components/_reports/report-pagination/utils.js.map +3 -3
  235. package/dpr/components/_reports/report-totals/utils.js +42 -1
  236. package/dpr/components/_reports/report-totals/utils.js.map +3 -3
  237. package/dpr/components/bookmark-toggle/clientClass.js +111 -0
  238. package/dpr/components/bookmark-toggle/clientClass.js.map +7 -0
  239. package/dpr/components/bookmark-toggle/{clientClass.mjs → clientClass.ts} +2 -1
  240. package/dpr/components/card-group/clientClass.js +53 -0
  241. package/dpr/components/card-group/clientClass.js.map +7 -0
  242. package/dpr/components/card-group/{clientClass.mjs → clientClass.ts} +2 -1
  243. package/dpr/components/card-group/utils.js +57 -1
  244. package/dpr/components/card-group/utils.js.map +3 -3
  245. package/dpr/components/report-list/defaultTokenProvider.js +36 -1
  246. package/dpr/components/report-list/defaultTokenProvider.js.map +3 -3
  247. package/dpr/components/report-list/types.d.js +16 -1
  248. package/dpr/components/report-list/types.d.js.map +3 -3
  249. package/dpr/components/report-list/utils.js +238 -1
  250. package/dpr/components/report-list/utils.js.map +3 -3
  251. package/dpr/components/show-more/clientClass.js +63 -0
  252. package/dpr/components/show-more/clientClass.js.map +7 -0
  253. package/dpr/components/show-more/{clientClass.mjs → clientClass.ts} +2 -1
  254. package/dpr/components/show-more/utils.js +38 -3
  255. package/dpr/components/show-more/utils.js.map +3 -3
  256. package/dpr/components/user-reports/bookmarks/utils.js +198 -1
  257. package/dpr/components/user-reports/bookmarks/utils.js.map +3 -3
  258. package/dpr/components/user-reports/requested/clientClass.js +132 -0
  259. package/dpr/components/user-reports/requested/clientClass.js.map +7 -0
  260. package/dpr/components/user-reports/requested/{clientClass.mjs → clientClass.ts} +2 -1
  261. package/dpr/components/user-reports/requested/utils.js +65 -1
  262. package/dpr/components/user-reports/requested/utils.js.map +3 -3
  263. package/dpr/components/user-reports/types.d.js +16 -1
  264. package/dpr/components/user-reports/types.d.js.map +3 -3
  265. package/dpr/components/user-reports/utils.js +365 -1
  266. package/dpr/components/user-reports/utils.js.map +3 -3
  267. package/dpr/components/user-reports/viewed/clientClass.js +102 -0
  268. package/dpr/components/user-reports/viewed/clientClass.js.map +7 -0
  269. package/dpr/components/user-reports/viewed/{clientClass.mjs → clientClass.ts} +2 -1
  270. package/dpr/components/user-reports/viewed/utils.js +37 -1
  271. package/dpr/components/user-reports/viewed/utils.js.map +3 -3
  272. package/dpr/data/agentConfig.js +35 -1
  273. package/dpr/data/agentConfig.js.map +3 -3
  274. package/dpr/data/dashboardClient.js +108 -1
  275. package/dpr/data/dashboardClient.js.map +3 -3
  276. package/dpr/data/dprReportingClient.js +55 -1
  277. package/dpr/data/dprReportingClient.js.map +3 -3
  278. package/dpr/data/missingReportClient.js +55 -1
  279. package/dpr/data/missingReportClient.js.map +3 -3
  280. package/dpr/data/productCollectionClient.js +58 -1
  281. package/dpr/data/productCollectionClient.js.map +3 -3
  282. package/dpr/data/reportDataStore.js +77 -1
  283. package/dpr/data/reportDataStore.js.map +3 -3
  284. package/dpr/data/reportingClient.js +173 -1
  285. package/dpr/data/reportingClient.js.map +3 -3
  286. package/dpr/data/restClient.js +143 -1
  287. package/dpr/data/restClient.js.map +3 -3
  288. package/dpr/data/types.d.js +16 -1
  289. package/dpr/data/types.d.js.map +3 -3
  290. package/dpr/middleware/reportAuthoriser.js +63 -1
  291. package/dpr/middleware/reportAuthoriser.js.map +3 -3
  292. package/dpr/middleware/setUpDprResources.js +173 -1
  293. package/dpr/middleware/setUpDprResources.js.map +3 -3
  294. package/dpr/middleware/setUpNestedRoute.js +35 -1
  295. package/dpr/middleware/setUpNestedRoute.js.map +3 -3
  296. package/dpr/routes/index.js +50 -1
  297. package/dpr/routes/index.js.map +3 -3
  298. package/dpr/routes/journeys/api-failures.cy.js +295 -1
  299. package/dpr/routes/journeys/api-failures.cy.js.map +3 -3
  300. package/dpr/routes/journeys/download-report/controller.js +65 -1
  301. package/dpr/routes/journeys/download-report/controller.js.map +3 -3
  302. package/dpr/routes/journeys/download-report/request-download/form/controller.js +98 -1
  303. package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +3 -3
  304. package/dpr/routes/journeys/download-report/request-download/form/routes.js +50 -1
  305. package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +3 -3
  306. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +68 -1
  307. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +3 -3
  308. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +47 -1
  309. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +3 -3
  310. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +17 -1
  311. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +2 -2
  312. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +24 -1
  313. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +3 -3
  314. package/dpr/routes/journeys/download-report/request-download/routes.js +46 -1
  315. package/dpr/routes/journeys/download-report/request-download/routes.js.map +3 -3
  316. package/dpr/routes/journeys/download-report/request-download/service.js +90 -1
  317. package/dpr/routes/journeys/download-report/request-download/service.js.map +3 -3
  318. package/dpr/routes/journeys/download-report/routes.js +63 -1
  319. package/dpr/routes/journeys/download-report/routes.js.map +3 -3
  320. package/dpr/routes/journeys/download-report/tests.cy.js +104 -1
  321. package/dpr/routes/journeys/download-report/tests.cy.js.map +3 -3
  322. package/dpr/routes/journeys/download-report/utils.js +196 -1
  323. package/dpr/routes/journeys/download-report/utils.js.map +3 -3
  324. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +58 -1
  325. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +3 -3
  326. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +56 -1
  327. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +3 -3
  328. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +47 -1
  329. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +3 -3
  330. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +32 -1
  331. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +3 -3
  332. package/dpr/routes/journeys/my-reports/bookmarks/routes.js +49 -1
  333. package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +3 -3
  334. package/dpr/routes/journeys/my-reports/bookmarks/service.js +123 -4
  335. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +3 -3
  336. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +448 -1
  337. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +3 -3
  338. package/dpr/routes/journeys/my-reports/bookmarks/utils.js +44 -1
  339. package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +3 -3
  340. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +53 -1
  341. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +3 -3
  342. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +65 -1
  343. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +3 -3
  344. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +47 -1
  345. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +3 -3
  346. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +83 -1
  347. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +3 -3
  348. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +49 -1
  349. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +3 -3
  350. package/dpr/routes/journeys/my-reports/recently-viewed/service.js +118 -1
  351. package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +3 -3
  352. package/dpr/routes/journeys/my-reports/requested-reports/controller.js +52 -1
  353. package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +3 -3
  354. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +65 -1
  355. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +3 -3
  356. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +47 -1
  357. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +3 -3
  358. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +15 -1
  359. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +3 -3
  360. package/dpr/routes/journeys/my-reports/requested-reports/routes.js +49 -1
  361. package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +3 -3
  362. package/dpr/routes/journeys/my-reports/requested-reports/service.js +200 -1
  363. package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +3 -3
  364. package/dpr/routes/journeys/my-reports/routes.js +59 -1
  365. package/dpr/routes/journeys/my-reports/routes.js.map +3 -3
  366. package/dpr/routes/journeys/product-collection/routes.js +45 -1
  367. package/dpr/routes/journeys/product-collection/routes.js.map +3 -3
  368. package/dpr/routes/journeys/product-collection/selected/controller.js +55 -1
  369. package/dpr/routes/journeys/product-collection/selected/controller.js.map +3 -3
  370. package/dpr/routes/journeys/product-collection/selected/routes.js +37 -1
  371. package/dpr/routes/journeys/product-collection/selected/routes.js.map +3 -3
  372. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +47 -1
  373. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +3 -3
  374. package/dpr/routes/journeys/product-collection/selected/validation.js +41 -1
  375. package/dpr/routes/journeys/product-collection/selected/validation.js.map +3 -3
  376. package/dpr/routes/journeys/request-missing-report/form/controller.js +104 -1
  377. package/dpr/routes/journeys/request-missing-report/form/controller.js.map +3 -3
  378. package/dpr/routes/journeys/request-missing-report/form/routes.js +50 -1
  379. package/dpr/routes/journeys/request-missing-report/form/routes.js.map +3 -3
  380. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +22 -1
  381. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +3 -3
  382. package/dpr/routes/journeys/request-missing-report/form/validation.js +43 -1
  383. package/dpr/routes/journeys/request-missing-report/form/validation.js.map +3 -3
  384. package/dpr/routes/journeys/request-missing-report/routes.js +57 -1
  385. package/dpr/routes/journeys/request-missing-report/routes.js.map +3 -3
  386. package/dpr/routes/journeys/request-missing-report/submitted/controller.js +65 -1
  387. package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +3 -3
  388. package/dpr/routes/journeys/request-missing-report/submitted/routes.js +47 -1
  389. package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +3 -3
  390. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +14 -1
  391. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +3 -3
  392. package/dpr/routes/journeys/request-missing-report/tests.cy.js +37 -1
  393. package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +3 -3
  394. package/dpr/routes/journeys/request-report/controller.js +79 -1
  395. package/dpr/routes/journeys/request-report/controller.js.map +3 -3
  396. package/dpr/routes/journeys/request-report/filters/controller.js +127 -1
  397. package/dpr/routes/journeys/request-report/filters/controller.js.map +3 -3
  398. package/dpr/routes/journeys/request-report/filters/routes.js +50 -1
  399. package/dpr/routes/journeys/request-report/filters/routes.js.map +3 -3
  400. package/dpr/routes/journeys/request-report/filters/tests.cy.js +451 -1
  401. package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +3 -3
  402. package/dpr/routes/journeys/request-report/filters/utils.js +331 -1
  403. package/dpr/routes/journeys/request-report/filters/utils.js.map +3 -3
  404. package/dpr/routes/journeys/request-report/routes.js +100 -1
  405. package/dpr/routes/journeys/request-report/routes.js.map +3 -3
  406. package/dpr/routes/journeys/request-report/status/controller.js +80 -1
  407. package/dpr/routes/journeys/request-report/status/controller.js.map +3 -3
  408. package/dpr/routes/journeys/request-report/status/routes.js +48 -1
  409. package/dpr/routes/journeys/request-report/status/routes.js.map +3 -3
  410. package/dpr/routes/journeys/request-report/status/tests.cy.js +127 -1
  411. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +3 -3
  412. package/dpr/routes/journeys/request-report/status/utils.js +72 -1
  413. package/dpr/routes/journeys/request-report/status/utils.js.map +3 -3
  414. package/dpr/routes/journeys/request-report/tests.cy.js +307 -1
  415. package/dpr/routes/journeys/request-report/tests.cy.js.map +3 -3
  416. package/dpr/routes/journeys/routes.js +46 -1
  417. package/dpr/routes/journeys/routes.js.map +3 -3
  418. package/dpr/routes/journeys/view-report/async/controller.js +89 -1
  419. package/dpr/routes/journeys/view-report/async/controller.js.map +3 -3
  420. package/dpr/routes/journeys/view-report/async/dashboard/controller.js +82 -1
  421. package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +3 -3
  422. package/dpr/routes/journeys/view-report/async/dashboard/routes.js +48 -1
  423. package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +3 -3
  424. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +33 -1
  425. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +3 -3
  426. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +242 -1
  427. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
  428. package/dpr/routes/journeys/view-report/async/report/controller.js +83 -1
  429. package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
  430. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js +76 -1
  431. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js.map +3 -3
  432. package/dpr/routes/journeys/view-report/async/report/routes.js +53 -1
  433. package/dpr/routes/journeys/view-report/async/report/routes.js.map +3 -3
  434. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +895 -1
  435. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +3 -3
  436. package/dpr/routes/journeys/view-report/async/report/types.js +16 -1
  437. package/dpr/routes/journeys/view-report/async/report/types.js.map +3 -3
  438. package/dpr/routes/journeys/view-report/async/report/utils.js +427 -1
  439. package/dpr/routes/journeys/view-report/async/report/utils.js.map +3 -3
  440. package/dpr/routes/journeys/view-report/async/routes.js +52 -1
  441. package/dpr/routes/journeys/view-report/async/routes.js.map +3 -3
  442. package/dpr/routes/journeys/view-report/controller.js +62 -1
  443. package/dpr/routes/journeys/view-report/controller.js.map +4 -4
  444. package/dpr/routes/journeys/view-report/controller.ts +1 -1
  445. package/dpr/routes/journeys/view-report/routes.js +87 -1
  446. package/dpr/routes/journeys/view-report/routes.js.map +3 -3
  447. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js +68 -1
  448. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js.map +3 -3
  449. package/dpr/routes/journeys/view-report/sync/dashboard/routes.js +48 -1
  450. package/dpr/routes/journeys/view-report/sync/dashboard/routes.js.map +3 -3
  451. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js +144 -1
  452. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +3 -3
  453. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +102 -1
  454. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +3 -3
  455. package/dpr/routes/journeys/view-report/sync/load-report/routes.js +47 -1
  456. package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +3 -3
  457. package/dpr/routes/journeys/view-report/sync/report/controller.js +99 -1
  458. package/dpr/routes/journeys/view-report/sync/report/controller.js.map +3 -3
  459. package/dpr/routes/journeys/view-report/sync/report/routes.js +51 -1
  460. package/dpr/routes/journeys/view-report/sync/report/routes.js.map +3 -3
  461. package/dpr/routes/journeys/view-report/sync/report/utils.js +298 -1
  462. package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
  463. package/dpr/routes/journeys/view-report/sync/routes.js +51 -1
  464. package/dpr/routes/journeys/view-report/sync/routes.js.map +3 -3
  465. package/dpr/routes/journeys/view-report/sync/tests.cy.js +43 -1
  466. package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +3 -3
  467. package/dpr/routes/journeys/view-report/utils.js +173 -1
  468. package/dpr/routes/journeys/view-report/utils.js.map +3 -3
  469. package/dpr/services/dashboardService.js +66 -1
  470. package/dpr/services/dashboardService.js.map +3 -3
  471. package/dpr/services/defaultFilterValuesService.js +114 -1
  472. package/dpr/services/defaultFilterValuesService.js.map +3 -3
  473. package/dpr/services/featureFlagService.js +65 -1
  474. package/dpr/services/featureFlagService.js.map +3 -3
  475. package/dpr/services/featureFlags.cy.js +72 -1
  476. package/dpr/services/featureFlags.cy.js.map +3 -3
  477. package/dpr/services/index.js +59 -1
  478. package/dpr/services/index.js.map +3 -3
  479. package/dpr/services/missingReport/missingReportService.js +52 -1
  480. package/dpr/services/missingReport/missingReportService.js.map +3 -3
  481. package/dpr/services/productCollection/productCollectionService.js +55 -1
  482. package/dpr/services/productCollection/productCollectionService.js.map +3 -3
  483. package/dpr/services/productCollection/productCollectionStoreService.js +61 -1
  484. package/dpr/services/productCollection/productCollectionStoreService.js.map +3 -3
  485. package/dpr/services/reportStoreService.js +51 -1
  486. package/dpr/services/reportStoreService.js.map +3 -3
  487. package/dpr/services/reportingService.js +81 -1
  488. package/dpr/services/reportingService.js.map +3 -3
  489. package/dpr/setUpNunjucksFilters.js +66 -1
  490. package/dpr/setUpNunjucksFilters.js.map +3 -3
  491. package/dpr/types/AsyncReportUtils.js +16 -1
  492. package/dpr/types/AsyncReportUtils.js.map +3 -3
  493. package/dpr/types/Bookmark.js +16 -1
  494. package/dpr/types/Bookmark.js.map +3 -3
  495. package/dpr/types/Charts.js +16 -1
  496. package/dpr/types/Charts.js.map +3 -3
  497. package/dpr/types/Download.js +16 -1
  498. package/dpr/types/Download.js.map +3 -3
  499. package/dpr/types/DprConfig.js +16 -1
  500. package/dpr/types/DprConfig.js.map +3 -3
  501. package/dpr/types/DprUser.js +43 -1
  502. package/dpr/types/DprUser.js.map +3 -3
  503. package/dpr/types/EmbeddedReportUtils.js +33 -1
  504. package/dpr/types/EmbeddedReportUtils.js.map +3 -3
  505. package/dpr/types/ExecutionData.d.js +16 -1
  506. package/dpr/types/ExecutionData.d.js.map +3 -3
  507. package/dpr/types/Metrics.js +16 -1
  508. package/dpr/types/Metrics.js.map +3 -3
  509. package/dpr/types/ReportQuery.js +168 -1
  510. package/dpr/types/ReportQuery.js.map +3 -3
  511. package/dpr/types/ReportStore.js +16 -1
  512. package/dpr/types/ReportStore.js.map +3 -3
  513. package/dpr/types/Services.d.js +16 -1
  514. package/dpr/types/Services.d.js.map +3 -3
  515. package/dpr/types/Templates.d.js +16 -1
  516. package/dpr/types/Templates.d.js.map +3 -3
  517. package/dpr/types/UserReports.js +55 -1
  518. package/dpr/types/UserReports.js.map +3 -3
  519. package/dpr/types/api.d.js +16 -1
  520. package/dpr/types/api.d.js.map +3 -3
  521. package/dpr/types/index.d.js +16 -1
  522. package/dpr/types/index.d.js.map +3 -3
  523. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +91 -1
  524. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +3 -3
  525. package/dpr/utils/CreateDprServices.js +66 -1
  526. package/dpr/utils/CreateDprServices.js.map +3 -3
  527. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +304 -1
  528. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +3 -3
  529. package/dpr/utils/DataTableBuilder/types.d.js +16 -1
  530. package/dpr/utils/DataTableBuilder/types.d.js.map +3 -3
  531. package/dpr/utils/DateMapper/DateMapper.js +125 -1
  532. package/dpr/utils/DateMapper/DateMapper.js.map +3 -3
  533. package/dpr/utils/DateMapper/types.d.js +16 -1
  534. package/dpr/utils/DateMapper/types.d.js.map +3 -3
  535. package/dpr/utils/ErrorHandler.js +94 -1
  536. package/dpr/utils/ErrorHandler.js.map +3 -3
  537. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +201 -1
  538. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +3 -3
  539. package/dpr/utils/ParentChildDataTableBuilder/types.d.js +16 -1
  540. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +3 -3
  541. package/dpr/utils/Personalisation/personalisationUtils.js +202 -1
  542. package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
  543. package/dpr/utils/Personalisation/types.d.js +16 -1
  544. package/dpr/utils/Personalisation/types.d.js.map +3 -3
  545. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +310 -1
  546. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +3 -3
  547. package/dpr/utils/SectionedDataTableBuilder/types.d.js +16 -1
  548. package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +3 -3
  549. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +145 -1
  550. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +3 -3
  551. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +60 -1
  552. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +3 -3
  553. package/dpr/utils/UserStoreItemBuilder.js +247 -1
  554. package/dpr/utils/UserStoreItemBuilder.js.map +3 -3
  555. package/dpr/utils/arrayUtils.js +28 -1
  556. package/dpr/utils/arrayUtils.js.map +3 -3
  557. package/dpr/utils/datasetHelper.js +229 -1
  558. package/dpr/utils/datasetHelper.js.map +3 -3
  559. package/dpr/utils/definitionUtils.js +133 -1
  560. package/dpr/utils/definitionUtils.js.map +3 -3
  561. package/dpr/utils/index.js +44 -1
  562. package/dpr/utils/index.js.map +3 -3
  563. package/dpr/utils/indexedAccesHelper.js +41 -1
  564. package/dpr/utils/indexedAccesHelper.js.map +3 -3
  565. package/dpr/utils/localsHelper.js +105 -1
  566. package/dpr/utils/localsHelper.js.map +3 -3
  567. package/dpr/utils/logger.js +48 -1
  568. package/dpr/utils/logger.js.map +3 -3
  569. package/dpr/utils/reportListsHelper.js +128 -12
  570. package/dpr/utils/reportListsHelper.js.map +3 -3
  571. package/dpr/utils/reportStoreHelper.js +65 -1
  572. package/dpr/utils/reportStoreHelper.js.map +3 -3
  573. package/dpr/utils/requestStatusHelper.js +172 -1
  574. package/dpr/utils/requestStatusHelper.js.map +3 -3
  575. package/dpr/utils/sanitisedError.js +45 -1
  576. package/dpr/utils/sanitisedError.js.map +3 -3
  577. package/dpr/utils/urlHelper.js +103 -1
  578. package/dpr/utils/urlHelper.js.map +3 -3
  579. package/dpr/validation/validate.js +52 -1
  580. package/dpr/validation/validate.js.map +3 -3
  581. package/package.json +11 -6
@@ -1,2 +1,174 @@
1
- "use strict";var q=Object.create;var d=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var x=(t,e)=>{for(var o in e)d(t,o,{get:e[o],enumerable:!0})},S=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of v(e))!U.call(t,a)&&a!==o&&d(t,a,{get:()=>e[a],enumerable:!(r=y(e,a))||r.enumerable});return t};var P=(t,e,o)=>(o=t!=null?q(C(t)):{},S(e||!t||!t.__esModule?d(o,"default",{value:t,enumerable:!0}):o,t)),H=t=>S(d({},"__esModule",{value:!0}),t);var L={};x(L,{default:()=>B,errorRequestHandler:()=>b,populateDefinitions:()=>F,populateRequestedReports:()=>E,setupResources:()=>k});module.exports=H(L);var h=require("@sentry/node"),c=P(require("../utils/definitionUtils")),m=P(require("../utils/localsHelper")),D=require("../services/featureFlagService");const Q=(t,e)=>t[e]?t[e].toString():null,V=t=>Q(t,"dataProductDefinitionsPath"),I=t=>{const e=V(t);return e||null},b=t=>(e,o,r,a)=>e.status===401||e.status===403?r.render("dpr/routes/authError.njk",{layoutPath:t,message:"Sorry, there is a problem with authenticating your request"}):((0,h.captureException)(e),e.status>=400?r.render("dpr/routes/serviceProblem.njk",{layoutPath:t}):a(e)),k=(t,e,o,r)=>async(a,i,s)=>{A(a,i);try{return await j(i,t.featureFlagService),await F(t,a,i,r),await E(t,i),T(o,i),s()}catch(n){return b(e)(n,a,i,s)}},T=(t,e)=>{t.addGlobal("getLocals",()=>({locals:{...e.locals,...e.app.locals}}))},j=async(t,e)=>{t.app.locals.featureFlags===void 0&&(t.app.locals.featureFlags={flags:{},lastUpdated:new Date().getTime()-601*1e3});const{featureFlags:o}=t.app.locals,r=new Date().getTime();if((r-o.lastUpdated)/1e3>600){t.app.locals.featureFlags.lastUpdated=r;const s=await e.getFlags().catch(n=>{throw t.app.locals.featureFlags.lastUpdated=r-601*1e3,n});t.app.locals.featureFlags.flags=Object.fromEntries(s.flags.map(n=>[n.key,n]))}},A=(t,e)=>{const o=t.flash("DPR_ERRORS");o&&o[0]&&(e.locals.validationErrors=JSON.parse(o[0]))},F=async(t,e,o,r)=>{const{token:a,dprUser:i}=m.default.getValues(o),s=I(e.query),n=e.body?.dataProductDefinitionsPath,l=s||n;l&&(o.locals.dpdPathFromQuery=!0);const g=r?.dataProductDefinitionsPath;g&&(o.locals.dpdPathFromConfig=!0),o.locals.definitionsPath=l||g,o.locals.pathSuffix=`?dataProductDefinitionsPath=${o.locals.definitionsPath}`;let p;a&&(p=await t.productCollectionStoreService.getSelectedProductCollectionId(i.id)),o.locals.definitions=await Promise.all([t.reportingService.getDefinitions(a,o.locals.definitionsPath),p&&t.productCollectionService.getProductCollection(a,p)]).then(([R,u])=>{if(u&&u){const w=u.products.map(f=>f.productId);return R.filter(f=>w.includes(f.id))}return R})??[]},E=async(t,e)=>{const{dprUser:o}=m.default.getValues(e);if(o.id){const{definitions:r,definitionsPath:a}=e.locals,i=await t.recentlyViewedService.getAllReports(o.id);await t.requestedReportService.cleanList(o.id,i);const s=await t.requestedReportService.getAllReports(o.id);if(e.locals.requestedReports=a?s.filter(n=>c.default.getCurrentVariantDefinition(r,n.reportId,n.id)):s,e.locals.recentlyViewedReports=a?i.filter(n=>c.default.getCurrentVariantDefinition(r,n.reportId,n.id)):i,e.locals.downloadingEnabled=t.downloadPermissionService.enabled,e.locals.bookmarkingEnabled=t.bookmarkService.enabled,e.locals.collectionsEnabled=t.productCollectionService.enabled,e.locals.requestMissingEnabled=t.missingReportService.enabled,e.locals.saveDefaultsEnabled=(0,D.isBooleanFlagEnabled)("saveDefaultsEnabled",e.app),e.locals.bookmarkingEnabled){const n=await t.bookmarkService.getAllBookmarks(o.id);e.locals.bookmarks=a?n.filter(l=>c.default.getCurrentVariantDefinition(r,l.reportId,l.id)):n}}};var B=k;0&&(module.exports={errorRequestHandler,populateDefinitions,populateRequestedReports,setupResources});
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var setUpDprResources_exports = {};
30
+ __export(setUpDprResources_exports, {
31
+ default: () => setUpDprResources_default,
32
+ errorRequestHandler: () => errorRequestHandler,
33
+ populateDefinitions: () => populateDefinitions,
34
+ populateRequestedReports: () => populateRequestedReports,
35
+ setupResources: () => setupResources
36
+ });
37
+ module.exports = __toCommonJS(setUpDprResources_exports);
38
+ var import_node = require("@sentry/node");
39
+ var import_definitionUtils = __toESM(require("../utils/definitionUtils"));
40
+ var import_localsHelper = __toESM(require("../utils/localsHelper"));
41
+ var import_featureFlagService = require("../services/featureFlagService");
42
+ const getQueryParamAsString = (query, name) => query[name] ? query[name].toString() : null;
43
+ const getDefinitionsPath = (query) => getQueryParamAsString(query, "dataProductDefinitionsPath");
44
+ const deriveDefinitionsPath = (query) => {
45
+ const definitionsPath = getDefinitionsPath(query);
46
+ if (definitionsPath) {
47
+ return definitionsPath;
48
+ }
49
+ return null;
50
+ };
51
+ const errorRequestHandler = (layoutPath) => (error, _req, res, next) => {
52
+ if (error.status === 401 || error.status === 403) {
53
+ return res.render("dpr/routes/authError.njk", {
54
+ layoutPath,
55
+ message: "Sorry, there is a problem with authenticating your request"
56
+ });
57
+ }
58
+ (0, import_node.captureException)(error);
59
+ if (error.status >= 400) {
60
+ return res.render("dpr/routes/serviceProblem.njk", {
61
+ layoutPath
62
+ });
63
+ }
64
+ return next(error);
65
+ };
66
+ const setupResources = (services, layoutPath, env, config) => {
67
+ return async (req, res, next) => {
68
+ populateValidationErrors(req, res);
69
+ try {
70
+ await setFeatures(res, services.featureFlagService);
71
+ await populateDefinitions(services, req, res, config);
72
+ await populateRequestedReports(services, res);
73
+ setupRequestAwareNunjucks(env, res);
74
+ return next();
75
+ } catch (error) {
76
+ return errorRequestHandler(layoutPath)(error, req, res, next);
77
+ }
78
+ };
79
+ };
80
+ const setupRequestAwareNunjucks = (env, res) => {
81
+ env.addGlobal("getLocals", () => ({ locals: { ...res.locals, ...res.app.locals } }));
82
+ };
83
+ const setFeatures = async (res, featureFlagService) => {
84
+ if (res.app.locals.featureFlags === void 0) {
85
+ res.app.locals.featureFlags = {
86
+ flags: {},
87
+ lastUpdated: (/* @__PURE__ */ new Date()).getTime() - 601 * 1e3
88
+ };
89
+ }
90
+ const { featureFlags } = res.app.locals;
91
+ const currentTime = (/* @__PURE__ */ new Date()).getTime();
92
+ const timeSinceLastUpdatedSeconds = (currentTime - featureFlags.lastUpdated) / 1e3;
93
+ const shouldUpdate = timeSinceLastUpdatedSeconds > 600;
94
+ if (shouldUpdate) {
95
+ res.app.locals.featureFlags.lastUpdated = currentTime;
96
+ const flags = await featureFlagService.getFlags().catch((e) => {
97
+ res.app.locals.featureFlags.lastUpdated = currentTime - 601 * 1e3;
98
+ throw e;
99
+ });
100
+ res.app.locals.featureFlags.flags = Object.fromEntries(flags.flags.map((flag) => [flag.key, flag]));
101
+ }
102
+ };
103
+ const populateValidationErrors = (req, res) => {
104
+ const errors = req.flash(`DPR_ERRORS`);
105
+ if (errors && errors[0]) {
106
+ res.locals["validationErrors"] = JSON.parse(errors[0]);
107
+ }
108
+ };
109
+ const populateDefinitions = async (services, req, res, config) => {
110
+ const { token, dprUser } = import_localsHelper.default.getValues(res);
111
+ const dpdPathFromQuery = deriveDefinitionsPath(req.query);
112
+ const dpdPathFromBody = req.body?.dataProductDefinitionsPath;
113
+ const definitionsPathFromQuery = dpdPathFromQuery || dpdPathFromBody;
114
+ if (definitionsPathFromQuery) {
115
+ res.locals["dpdPathFromQuery"] = true;
116
+ }
117
+ const dpdPathFromConfig = config?.dataProductDefinitionsPath;
118
+ if (dpdPathFromConfig) {
119
+ res.locals["dpdPathFromConfig"] = true;
120
+ }
121
+ res.locals["definitionsPath"] = definitionsPathFromQuery || dpdPathFromConfig;
122
+ res.locals["pathSuffix"] = `?dataProductDefinitionsPath=${res.locals["definitionsPath"]}`;
123
+ let selectedProductCollectionId;
124
+ if (token) {
125
+ selectedProductCollectionId = await services.productCollectionStoreService.getSelectedProductCollectionId(
126
+ dprUser.id
127
+ );
128
+ }
129
+ res.locals["definitions"] = await Promise.all([
130
+ services.reportingService.getDefinitions(token, res.locals["definitionsPath"]),
131
+ selectedProductCollectionId && services.productCollectionService.getProductCollection(token, selectedProductCollectionId)
132
+ ]).then(([defs, selectedProductCollection]) => {
133
+ if (selectedProductCollection && selectedProductCollection) {
134
+ const productIds = selectedProductCollection.products.map((product) => product.productId);
135
+ return defs.filter((def) => productIds.includes(def.id));
136
+ }
137
+ return defs;
138
+ }) ?? [];
139
+ };
140
+ const populateRequestedReports = async (services, res) => {
141
+ const { dprUser } = import_localsHelper.default.getValues(res);
142
+ if (dprUser.id) {
143
+ const { definitions, definitionsPath } = res.locals;
144
+ const recent = await services.recentlyViewedService.getAllReports(dprUser.id);
145
+ await services.requestedReportService.cleanList(dprUser.id, recent);
146
+ const requested = await services.requestedReportService.getAllReports(dprUser.id);
147
+ res.locals["requestedReports"] = !definitionsPath ? requested : requested.filter((report) => {
148
+ return import_definitionUtils.default.getCurrentVariantDefinition(definitions, report.reportId, report.id);
149
+ });
150
+ res.locals["recentlyViewedReports"] = !definitionsPath ? recent : recent.filter((report) => {
151
+ return import_definitionUtils.default.getCurrentVariantDefinition(definitions, report.reportId, report.id);
152
+ });
153
+ res.locals["downloadingEnabled"] = services.downloadPermissionService.enabled;
154
+ res.locals["bookmarkingEnabled"] = services.bookmarkService.enabled;
155
+ res.locals["collectionsEnabled"] = services.productCollectionService.enabled;
156
+ res.locals["requestMissingEnabled"] = services.missingReportService.enabled;
157
+ res.locals["saveDefaultsEnabled"] = (0, import_featureFlagService.isBooleanFlagEnabled)("saveDefaultsEnabled", res.app);
158
+ if (res.locals["bookmarkingEnabled"]) {
159
+ const bookmarks = await services.bookmarkService.getAllBookmarks(dprUser.id);
160
+ res.locals["bookmarks"] = !definitionsPath ? bookmarks : bookmarks.filter((bookmark) => {
161
+ return import_definitionUtils.default.getCurrentVariantDefinition(definitions, bookmark.reportId, bookmark.id);
162
+ });
163
+ }
164
+ }
165
+ };
166
+ var setUpDprResources_default = setupResources;
167
+ // Annotate the CommonJS export names for ESM import in node:
168
+ 0 && (module.exports = {
169
+ errorRequestHandler,
170
+ populateDefinitions,
171
+ populateRequestedReports,
172
+ setupResources
173
+ });
2
174
  //# sourceMappingURL=setUpDprResources.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/dpr/middleware/setUpDprResources.ts"],
3
+ "sources": ["../../dpr/middleware/setUpDprResources.ts"],
4
4
  "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { RequestHandler, Response, Request, ErrorRequestHandler, NextFunction } from 'express'\nimport type { ParsedQs } from 'qs'\nimport { HTTPError } from 'superagent'\nimport type { Environment } from 'nunjucks'\nimport { captureException } from '@sentry/node'\nimport { Services } from '../types/Services'\nimport { RequestedReport, StoredReportData } from '../types/UserReports'\nimport DefinitionUtils from '../utils/definitionUtils'\nimport { BookmarkStoreData } from '../types/Bookmark'\nimport { DprConfig } from '../types/DprConfig'\nimport localsHelper from '../utils/localsHelper'\nimport { FeatureFlagService, isBooleanFlagEnabled } from '../services/featureFlagService'\n\nconst getQueryParamAsString = (query: ParsedQs, name: string) => (query[name] ? query[name].toString() : null)\nconst getDefinitionsPath = (query: ParsedQs) => getQueryParamAsString(query, 'dataProductDefinitionsPath')\n\nconst deriveDefinitionsPath = (query: ParsedQs): string | null => {\n const definitionsPath = getDefinitionsPath(query)\n if (definitionsPath) {\n return definitionsPath\n }\n\n return null\n}\n\nexport const errorRequestHandler =\n (layoutPath: string): ErrorRequestHandler =>\n (error: HTTPError, _req: Request, res: Response, next: NextFunction) => {\n if (error.status === 401 || error.status === 403) {\n return res.render('dpr/routes/authError.njk', {\n layoutPath,\n message: 'Sorry, there is a problem with authenticating your request',\n })\n }\n captureException(error)\n if (error.status >= 400) {\n return res.render('dpr/routes/serviceProblem.njk', {\n layoutPath,\n })\n }\n return next(error)\n }\n\nexport const setupResources = (\n services: Services,\n layoutPath: string,\n env: Environment,\n config?: DprConfig,\n): RequestHandler => {\n return async (req, res, next) => {\n populateValidationErrors(req, res)\n try {\n await setFeatures(res, services.featureFlagService)\n await populateDefinitions(services, req, res, config)\n await populateRequestedReports(services, res)\n setupRequestAwareNunjucks(env, res)\n return next()\n } catch (error) {\n return errorRequestHandler(layoutPath)(error, req, res, next)\n }\n }\n}\n\nconst setupRequestAwareNunjucks = (env: Environment, res: Response) => {\n env.addGlobal('getLocals', () => ({ locals: { ...res.locals, ...res.app.locals } }))\n}\n\nconst setFeatures = async (res: Response, featureFlagService: FeatureFlagService) => {\n if (res.app.locals.featureFlags === undefined) {\n res.app.locals.featureFlags = {\n flags: {},\n lastUpdated: new Date().getTime() - 601 * 1000,\n }\n }\n const { featureFlags } = res.app.locals\n const currentTime = new Date().getTime()\n const timeSinceLastUpdatedSeconds = (currentTime - featureFlags.lastUpdated) / 1000\n const shouldUpdate = timeSinceLastUpdatedSeconds > 600\n if (shouldUpdate) {\n // Refresh every 10 mins\n res.app.locals.featureFlags.lastUpdated = currentTime\n const flags = await featureFlagService.getFlags().catch((e) => {\n res.app.locals.featureFlags.lastUpdated = currentTime - 601 * 1000\n throw e\n })\n res.app.locals.featureFlags.flags = Object.fromEntries(flags.flags.map((flag) => [flag.key, flag]))\n }\n}\n\nconst populateValidationErrors = (req: Request, res: Response) => {\n const errors = req.flash(`DPR_ERRORS`)\n if (errors && errors[0]) {\n res.locals['validationErrors'] = JSON.parse(errors[0])\n }\n}\n\nexport const populateDefinitions = async (services: Services, req: Request, res: Response, config?: DprConfig) => {\n // Get the DPD path from the query\n const { token, dprUser } = localsHelper.getValues(res)\n\n const dpdPathFromQuery = deriveDefinitionsPath(req.query)\n const dpdPathFromBody = req.body?.dataProductDefinitionsPath\n const definitionsPathFromQuery = dpdPathFromQuery || dpdPathFromBody\n\n if (definitionsPathFromQuery) {\n res.locals['dpdPathFromQuery'] = true\n }\n\n // Get the DPD path from the config\n const dpdPathFromConfig = config?.dataProductDefinitionsPath\n if (dpdPathFromConfig) {\n res.locals['dpdPathFromConfig'] = true\n }\n\n // query takes presedence over config\n res.locals['definitionsPath'] = definitionsPathFromQuery || dpdPathFromConfig\n res.locals['pathSuffix'] = `?dataProductDefinitionsPath=${res.locals['definitionsPath']}`\n\n let selectedProductCollectionId: string | undefined\n if (token) {\n selectedProductCollectionId = await services.productCollectionStoreService.getSelectedProductCollectionId(\n dprUser.id,\n )\n }\n\n res.locals['definitions'] =\n (await Promise.all([\n services.reportingService.getDefinitions(token, res.locals['definitionsPath']),\n selectedProductCollectionId &&\n services.productCollectionService.getProductCollection(token, selectedProductCollectionId),\n ]).then(([defs, selectedProductCollection]) => {\n if (selectedProductCollection && selectedProductCollection) {\n const productIds = selectedProductCollection.products.map((product) => product.productId)\n return defs.filter((def) => productIds.includes(def.id))\n }\n return defs\n })) ?? []\n}\n\nexport const populateRequestedReports = async (services: Services, res: Response) => {\n const { dprUser } = localsHelper.getValues(res)\n if (dprUser.id) {\n const { definitions, definitionsPath } = res.locals\n\n const recent = await services.recentlyViewedService.getAllReports(dprUser.id)\n await services.requestedReportService.cleanList(dprUser.id, recent)\n const requested = await services.requestedReportService.getAllReports(dprUser.id)\n\n res.locals['requestedReports'] = !definitionsPath\n ? requested\n : requested.filter((report: RequestedReport) => {\n return DefinitionUtils.getCurrentVariantDefinition(definitions, report.reportId, report.id)\n })\n\n res.locals['recentlyViewedReports'] = !definitionsPath\n ? recent\n : recent.filter((report: StoredReportData) => {\n return DefinitionUtils.getCurrentVariantDefinition(definitions, report.reportId, report.id)\n })\n\n res.locals['downloadingEnabled'] = services.downloadPermissionService.enabled\n res.locals['bookmarkingEnabled'] = services.bookmarkService.enabled\n res.locals['collectionsEnabled'] = services.productCollectionService.enabled\n res.locals['requestMissingEnabled'] = services.missingReportService.enabled\n res.locals['saveDefaultsEnabled'] = isBooleanFlagEnabled('saveDefaultsEnabled', res.app)\n\n if (res.locals['bookmarkingEnabled']) {\n const bookmarks = await services.bookmarkService.getAllBookmarks(dprUser.id)\n res.locals['bookmarks'] = !definitionsPath\n ? bookmarks\n : bookmarks.filter((bookmark: BookmarkStoreData) => {\n return DefinitionUtils.getCurrentVariantDefinition(definitions, bookmark.reportId, bookmark.id)\n })\n }\n }\n}\n\nexport default setupResources\n"],
5
- "mappings": "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",
6
- "names": ["setUpDprResources_exports", "__export", "setUpDprResources_default", "errorRequestHandler", "populateDefinitions", "populateRequestedReports", "setupResources", "__toCommonJS", "import_node", "import_definitionUtils", "import_localsHelper", "import_featureFlagService", "getQueryParamAsString", "query", "name", "getDefinitionsPath", "deriveDefinitionsPath", "definitionsPath", "layoutPath", "error", "_req", "res", "next", "services", "env", "config", "req", "populateValidationErrors", "setFeatures", "setupRequestAwareNunjucks", "featureFlagService", "featureFlags", "currentTime", "flags", "e", "flag", "errors", "token", "dprUser", "localsHelper", "dpdPathFromQuery", "dpdPathFromBody", "definitionsPathFromQuery", "dpdPathFromConfig", "selectedProductCollectionId", "defs", "selectedProductCollection", "productIds", "product", "def", "definitions", "recent", "requested", "report", "DefinitionUtils", "bookmarks", "bookmark"]
5
+ "mappings": "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",
6
+ "names": ["localsHelper", "DefinitionUtils"]
7
7
  }
@@ -1,2 +1,36 @@
1
- "use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var r in e)a(t,r,{get:e[r],enumerable:!0})},c=(t,e,r,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of u(e))!d.call(t,s)&&s!==r&&a(t,s,{get:()=>e[s],enumerable:!(l=n(e,s))||l.enumerable});return t};var R=t=>c(a({},"__esModule",{value:!0}),t);var m={};p(m,{default:()=>f,setupNestedRoute:()=>o});module.exports=R(m);const o=()=>async(t,e,r)=>{e.locals.nestedBaseUrl=t.baseUrl,r()};var f=o;0&&(module.exports={setupNestedRoute});
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var setUpNestedRoute_exports = {};
20
+ __export(setUpNestedRoute_exports, {
21
+ default: () => setUpNestedRoute_default,
22
+ setupNestedRoute: () => setupNestedRoute
23
+ });
24
+ module.exports = __toCommonJS(setUpNestedRoute_exports);
25
+ const setupNestedRoute = () => {
26
+ return async (req, res, next) => {
27
+ res.locals["nestedBaseUrl"] = req.baseUrl;
28
+ next();
29
+ };
30
+ };
31
+ var setUpNestedRoute_default = setupNestedRoute;
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ setupNestedRoute
35
+ });
2
36
  //# sourceMappingURL=setUpNestedRoute.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/dpr/middleware/setUpNestedRoute.ts"],
3
+ "sources": ["../../dpr/middleware/setUpNestedRoute.ts"],
4
4
  "sourcesContent": ["import { RequestHandler } from 'express'\n\nexport const setupNestedRoute = (): RequestHandler => {\n return async (req, res, next) => {\n res.locals['nestedBaseUrl'] = req.baseUrl\n next()\n }\n}\n\nexport default setupNestedRoute\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,qBAAAC,IAAA,eAAAC,EAAAJ,GAEO,MAAMG,EAAmB,IACvB,MAAOE,EAAKC,EAAKC,IAAS,CAC/BD,EAAI,OAAO,cAAmBD,EAAI,QAClCE,EAAK,CACP,EAGF,IAAOL,EAAQC",
6
- "names": ["setUpNestedRoute_exports", "__export", "setUpNestedRoute_default", "setupNestedRoute", "__toCommonJS", "req", "res", "next"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,mBAAmB,MAAsB;AACpD,SAAO,OAAO,KAAK,KAAK,SAAS;AAC/B,QAAI,OAAO,eAAe,IAAI,IAAI;AAClC,SAAK;AAAA,EACP;AACF;AAEA,IAAO,2BAAQ;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,51 @@
1
- "use strict";var l=Object.create;var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var d=(e,r)=>{for(var t in r)i(e,t,{get:r[t],enumerable:!0})},m=(e,r,t,u)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of y(r))!v.call(e,o)&&o!==t&&i(e,o,{get:()=>r[o],enumerable:!(u=g(r,o))||u.enumerable});return e};var s=(e,r,t)=>(t=e!=null?l(R(e)):{},m(r||!e||!e.__esModule?i(t,"default",{value:e,enumerable:!0}):t,e)),P=e=>m(i({},"__esModule",{value:!0}),e);var q={};d(q,{default:()=>h});module.exports=P(q);var n=require("express"),f=s(require("../utils/logger")),p=s(require("./journeys/routes")),a=s(require("../middleware/setUpNestedRoute")),c=require("../middleware/setUpDprResources");function S(e){f.default.info("Initialiasing DPR routes...");const r=(0,n.Router)({mergeParams:!0});return r.use("/",(0,a.default)(),(0,p.default)(e),(0,c.errorRequestHandler)(e.layoutPath)),r}var h=S;
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var routes_exports = {};
30
+ __export(routes_exports, {
31
+ default: () => routes_default
32
+ });
33
+ module.exports = __toCommonJS(routes_exports);
34
+ var import_express = require("express");
35
+ var import_logger = __toESM(require("../utils/logger"));
36
+ var import_routes = __toESM(require("./journeys/routes"));
37
+ var import_setUpNestedRoute = __toESM(require("../middleware/setUpNestedRoute"));
38
+ var import_setUpDprResources = require("../middleware/setUpDprResources");
39
+ function routes(routeImportParams) {
40
+ import_logger.default.info("Initialiasing DPR routes...");
41
+ const router = (0, import_express.Router)({ mergeParams: true });
42
+ router.use(
43
+ "/",
44
+ (0, import_setUpNestedRoute.default)(),
45
+ (0, import_routes.default)(routeImportParams),
46
+ (0, import_setUpDprResources.errorRequestHandler)(routeImportParams.layoutPath)
47
+ );
48
+ return router;
49
+ }
50
+ var routes_default = routes;
2
51
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/dpr/routes/index.ts"],
3
+ "sources": ["../../dpr/routes/index.ts"],
4
4
  "sourcesContent": ["import { Router } from 'express'\nimport type { Services } from '../types/Services'\nimport logger from '../utils/logger'\nimport JourneyRoutes from './journeys/routes'\n// middleware\nimport setUpNestedRoute from '../middleware/setUpNestedRoute'\nimport { errorRequestHandler } from '../middleware/setUpDprResources'\n\nfunction routes(routeImportParams: { services: Services; layoutPath: string }) {\n logger.info('Initialiasing DPR routes...')\n const router = Router({ mergeParams: true })\n router.use(\n '/',\n setUpNestedRoute(),\n JourneyRoutes(routeImportParams),\n errorRequestHandler(routeImportParams.layoutPath),\n )\n return router\n}\n\nexport default routes\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,mBAEvBC,EAAmB,8BACnBC,EAA0B,gCAE1BC,EAA6B,6CAC7BC,EAAoC,2CAEpC,SAASC,EAAOC,EAA+D,CAC7E,EAAAC,QAAO,KAAK,6BAA6B,EACzC,MAAMC,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EAC3C,OAAAA,EAAO,IACL,OACA,EAAAC,SAAiB,KACjB,EAAAC,SAAcJ,CAAiB,KAC/B,uBAAoBA,EAAkB,UAAU,CAClD,EACOE,CACT,CAEA,IAAOV,EAAQO",
6
- "names": ["routes_exports", "__export", "routes_default", "__toCommonJS", "import_express", "import_logger", "import_routes", "import_setUpNestedRoute", "import_setUpDprResources", "routes", "routeImportParams", "logger", "router", "setUpNestedRoute", "JourneyRoutes"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAuB;AAEvB,oBAAmB;AACnB,oBAA0B;AAE1B,8BAA6B;AAC7B,+BAAoC;AAEpC,SAAS,OAAO,mBAA+D;AAC7E,gBAAAA,QAAO,KAAK,6BAA6B;AACzC,QAAM,aAAS,uBAAO,EAAE,aAAa,KAAK,CAAC;AAC3C,SAAO;AAAA,IACL;AAAA,QACA,wBAAAC,SAAiB;AAAA,QACjB,cAAAC,SAAc,iBAAiB;AAAA,QAC/B,8CAAoB,kBAAkB,UAAU;AAAA,EAClD;AACA,SAAO;AACT;AAEA,IAAO,iBAAQ;",
6
+ "names": ["logger", "setUpNestedRoute", "JourneyRoutes"]
7
7
  }