@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.23.2 → 4.24.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 (43) hide show
  1. package/dpr/components/_filters/filters-help/view.njk +9 -8
  2. package/dpr/data/dprReportingClient.js +1 -1
  3. package/dpr/data/dprReportingClient.js.map +3 -3
  4. package/dpr/data/dprReportingClient.ts +6 -3
  5. package/dpr/data/types.d.js +1 -1
  6. package/dpr/data/types.d.js.map +1 -1
  7. package/dpr/data/types.d.ts +6 -0
  8. package/dpr/middleware/setUpDprResources.js +1 -1
  9. package/dpr/middleware/setUpDprResources.js.map +3 -3
  10. package/dpr/middleware/setUpDprResources.test.ts +11 -0
  11. package/dpr/middleware/setUpDprResources.ts +37 -2
  12. package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
  13. package/dpr/routes/journeys/download-report/tests.cy.js.map +3 -3
  14. package/dpr/routes/journeys/download-report/tests.cy.ts +1 -1
  15. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
  16. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +3 -3
  17. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -1
  18. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +1 -1
  19. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +3 -3
  20. package/dpr/routes/journeys/product-collection/selected/tests.cy.ts +2 -2
  21. package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
  22. package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +3 -3
  23. package/dpr/routes/journeys/request-report/filters/tests.cy.ts +3 -4
  24. package/dpr/routes/journeys/request-report/filters/view.njk +2 -2
  25. package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
  26. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +3 -3
  27. package/dpr/routes/journeys/request-report/status/tests.cy.ts +1 -1
  28. package/dpr/services/featureFlagService.js +2 -0
  29. package/dpr/services/featureFlagService.js.map +7 -0
  30. package/dpr/services/featureFlagService.ts +43 -0
  31. package/dpr/services/featureFlags.cy.js +2 -0
  32. package/dpr/services/featureFlags.cy.js.map +7 -0
  33. package/dpr/services/featureFlags.cy.ts +93 -0
  34. package/dpr/types/Services.d.js +1 -1
  35. package/dpr/types/Services.d.js.map +1 -1
  36. package/dpr/types/Services.d.ts +2 -0
  37. package/dpr/types/express.d.js +2 -0
  38. package/dpr/types/express.d.js.map +7 -0
  39. package/dpr/types/express.d.ts +14 -0
  40. package/dpr/utils/CreateDprServices.js +1 -1
  41. package/dpr/utils/CreateDprServices.js.map +2 -2
  42. package/dpr/utils/CreateDprServices.ts +4 -0
  43. package/package.json +2 -1
@@ -10,12 +10,14 @@ import MissingReportService from '../services/missingReport/missingReportService
10
10
  import ReportingService from '../services/reportingService'
11
11
  import DashboardService from '../services/dashboardService'
12
12
  import { ProductCollectionService } from '../services/productCollection/productCollectionService'
13
+ import { FeatureFlagService } from '../services/featureFlagService'
13
14
 
14
15
  export type Services = UserStoreServices & {
15
16
  reportingService: ReportingService
16
17
  dashboardService: DashboardService
17
18
  missingReportService: MissingReportService
18
19
  productCollectionService: ProductCollectionService
20
+ featureFlagService: FeatureFlagService
19
21
  }
20
22
 
21
23
  export interface UserStoreServices {
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var o=(e,a,g,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let l of f(a))!m.call(e,l)&&l!==g&&s(e,l,{get:()=>a[l],enumerable:!(r=t(a,l))||r.enumerable});return e};var p=e=>o(s({},"__esModule",{value:!0}),e);var c={};module.exports=p(c);
2
+ //# sourceMappingURL=express.d.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dpr/types/express.d.ts"],
4
+ "sourcesContent": ["import { Flag } from '@flipt-io/flipt'\n\nexport declare global {\n namespace Express {\n interface Locals {\n featureFlags: {\n lastUpdated: number\n flags: {\n [flagName: string]: Flag\n }\n }\n }\n }\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["express_d_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,14 @@
1
+ import { Flag } from '@flipt-io/flipt'
2
+
3
+ export declare global {
4
+ namespace Express {
5
+ interface Locals {
6
+ featureFlags: {
7
+ lastUpdated: number
8
+ flags: {
9
+ [flagName: string]: Flag
10
+ }
11
+ }
12
+ }
13
+ }
14
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.create;var n=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var g=(r,e)=>{for(var t in e)n(r,t,{get:e[t],enumerable:!0})},l=(r,e,t,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of C(e))!f.call(r,o)&&o!==t&&n(r,o,{get:()=>e[o],enumerable:!(c=R(e,o))||c.enumerable});return r};var w=(r,e,t)=>(t=r!=null?m(u(r)):{},l(e||!r||!r.__esModule?n(t,"default",{value:r,enumerable:!0}):t,r)),D=r=>l(n({},"__esModule",{value:!0}),r);var b={};g(b,{createDprServices:()=>P});module.exports=D(b);var i=require("../services"),s=w(require("./logger")),S=require("../services/missingReport/missingReportService"),a=require("../services/productCollection/productCollectionStoreService"),v=require("../services/productCollection/productCollectionService");const P=(r,e={bookmarking:!1,download:!1,collections:!1,missingReports:!1,saveDefaults:!1})=>{s.default.info("Initialising DPR services...");const{reportingClient:t,dashboardClient:c,reportDataStore:o,missingReportClient:p,productCollectionClient:d}=r;return{reportingService:new i.ReportingService(t),dashboardService:new i.DashboardService(c),requestedReportService:new i.RequestedReportService(o),recentlyViewedService:new i.RecentlyViewedStoreService(o),bookmarkService:new i.BookmarkService(o,e),defaultFilterValuesService:new i.DefaultFilterValuesService(o,e),productCollectionStoreService:new a.ProductCollectionStoreService(o,e),downloadPermissionService:new i.DownloadPermissionService(o,e),missingReportService:new S.MissingReportService(p,e),productCollectionService:new v.ProductCollectionService(d,e)}};0&&(module.exports={createDprServices});
1
+ "use strict";var m=Object.create;var l=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var C=(r,e)=>{for(var t in e)l(r,t,{get:e[t],enumerable:!0})},n=(r,e,t,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of f(e))!R.call(r,o)&&o!==t&&l(r,o,{get:()=>e[o],enumerable:!(c=u(e,o))||c.enumerable});return r};var w=(r,e,t)=>(t=r!=null?m(g(r)):{},n(e||!r||!r.__esModule?l(t,"default",{value:r,enumerable:!0}):t,r)),D=r=>n(l({},"__esModule",{value:!0}),r);var b={};C(b,{createDprServices:()=>P});module.exports=D(b);var i=require("../services"),S=w(require("./logger")),s=require("../services/missingReport/missingReportService"),a=require("../services/productCollection/productCollectionStoreService"),v=require("../services/productCollection/productCollectionService");const P=(r,e={bookmarking:!1,download:!1,collections:!1,missingReports:!1,saveDefaults:!1})=>{S.default.info("Initialising DPR services...");const{reportingClient:t,dashboardClient:c,reportDataStore:o,missingReportClient:p,productCollectionClient:d}=r;return{reportingService:new i.ReportingService(t),dashboardService:new i.DashboardService(c),requestedReportService:new i.RequestedReportService(o),recentlyViewedService:new i.RecentlyViewedStoreService(o),bookmarkService:new i.BookmarkService(o,e),defaultFilterValuesService:new i.DefaultFilterValuesService(o,e),productCollectionStoreService:new a.ProductCollectionStoreService(o,e),downloadPermissionService:new i.DownloadPermissionService(o,e),missingReportService:new s.MissingReportService(p,e),productCollectionService:new v.ProductCollectionService(d,e),featureFlagService:r.featureFlagService}};0&&(module.exports={createDprServices});
2
2
  //# sourceMappingURL=CreateDprServices.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/utils/CreateDprServices.ts"],
4
- "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport {\n DownloadPermissionService,\n BookmarkService,\n RequestedReportService,\n RecentlyViewedStoreService,\n ReportingService,\n DashboardService,\n DefaultFilterValuesService,\n} from '../services'\nimport ReportDataStore from '../data/reportDataStore'\nimport ReportingClient from '../data/reportingClient'\nimport DashboardClient from '../data/dashboardClient'\nimport MissingReportClient from '../data/missingReportClient'\nimport ProductCollectionClient from '../data/productCollectionClient'\nimport logger from './logger'\nimport { Services } from '../types/Services'\nimport { MissingReportService } from '../services/missingReport/missingReportService'\nimport { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'\nimport { ProductCollectionService } from '../services/productCollection/productCollectionService'\nimport { ServiceFeatureConfig } from '../types/DprConfig'\n\nexport interface InitDPRServicesArgs {\n reportingClient: ReportingClient\n dashboardClient: DashboardClient\n reportDataStore: ReportDataStore\n missingReportClient: MissingReportClient\n productCollectionClient: ProductCollectionClient\n}\n\ninterface dprServices {\n reportingService: ReportingService\n dashboardService: DashboardService\n productCollectionService: ProductCollectionService\n requestedReportService: RequestedReportService\n missingReportService: MissingReportService\n recentlyViewedService: RecentlyViewedStoreService\n bookmarkService: BookmarkService\n downloadPermissionService: DownloadPermissionService\n defaultFilterValuesService: DefaultFilterValuesService\n productCollectionStoreService: ProductCollectionStoreService\n}\n\nexport const createDprServices = (\n clients: InitDPRServicesArgs,\n serviceFeatureConfig: ServiceFeatureConfig = {\n bookmarking: false,\n download: false,\n collections: false,\n missingReports: false,\n saveDefaults: false,\n },\n): Services => {\n logger.info('Initialising DPR services...')\n\n const { reportingClient, dashboardClient, reportDataStore, missingReportClient, productCollectionClient } = clients\n const services: dprServices = {\n reportingService: new ReportingService(reportingClient),\n dashboardService: new DashboardService(dashboardClient),\n\n requestedReportService: new RequestedReportService(reportDataStore),\n recentlyViewedService: new RecentlyViewedStoreService(reportDataStore),\n bookmarkService: new BookmarkService(reportDataStore, serviceFeatureConfig),\n\n defaultFilterValuesService: new DefaultFilterValuesService(reportDataStore, serviceFeatureConfig),\n productCollectionStoreService: new ProductCollectionStoreService(reportDataStore, serviceFeatureConfig),\n downloadPermissionService: new DownloadPermissionService(reportDataStore, serviceFeatureConfig),\n\n missingReportService: new MissingReportService(missingReportClient, serviceFeatureConfig),\n productCollectionService: new ProductCollectionService(productCollectionClient, serviceFeatureConfig),\n }\n return services as Services\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAQO,uBAMPC,EAAmB,uBAEnBC,EAAqC,0DACrCC,EAA8C,uEAC9CC,EAAyC,kEAwBlC,MAAMN,EAAoB,CAC/BO,EACAC,EAA6C,CAC3C,YAAa,GACb,SAAU,GACV,YAAa,GACb,eAAgB,GAChB,aAAc,EAChB,IACa,CACb,EAAAC,QAAO,KAAK,8BAA8B,EAE1C,KAAM,CAAE,gBAAAC,EAAiB,gBAAAC,EAAiB,gBAAAC,EAAiB,oBAAAC,EAAqB,wBAAAC,CAAwB,EAAIP,EAgB5G,MAf8B,CAC5B,iBAAkB,IAAI,mBAAiBG,CAAe,EACtD,iBAAkB,IAAI,mBAAiBC,CAAe,EAEtD,uBAAwB,IAAI,yBAAuBC,CAAe,EAClE,sBAAuB,IAAI,6BAA2BA,CAAe,EACrE,gBAAiB,IAAI,kBAAgBA,EAAiBJ,CAAoB,EAE1E,2BAA4B,IAAI,6BAA2BI,EAAiBJ,CAAoB,EAChG,8BAA+B,IAAI,gCAA8BI,EAAiBJ,CAAoB,EACtG,0BAA2B,IAAI,4BAA0BI,EAAiBJ,CAAoB,EAE9F,qBAAsB,IAAI,uBAAqBK,EAAqBL,CAAoB,EACxF,yBAA0B,IAAI,2BAAyBM,EAAyBN,CAAoB,CACtG,CAEF",
4
+ "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport {\n DownloadPermissionService,\n BookmarkService,\n RequestedReportService,\n RecentlyViewedStoreService,\n ReportingService,\n DashboardService,\n DefaultFilterValuesService,\n} from '../services'\nimport ReportDataStore from '../data/reportDataStore'\nimport ReportingClient from '../data/reportingClient'\nimport DashboardClient from '../data/dashboardClient'\nimport MissingReportClient from '../data/missingReportClient'\nimport ProductCollectionClient from '../data/productCollectionClient'\nimport logger from './logger'\nimport { Services } from '../types/Services'\nimport { MissingReportService } from '../services/missingReport/missingReportService'\nimport { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'\nimport { ProductCollectionService } from '../services/productCollection/productCollectionService'\nimport { ServiceFeatureConfig } from '../types/DprConfig'\nimport { FeatureFlagService } from '../services/featureFlagService'\n\nexport interface InitDPRServicesArgs {\n reportingClient: ReportingClient\n dashboardClient: DashboardClient\n reportDataStore: ReportDataStore\n missingReportClient: MissingReportClient\n productCollectionClient: ProductCollectionClient\n featureFlagService: FeatureFlagService\n}\n\ninterface dprServices {\n reportingService: ReportingService\n dashboardService: DashboardService\n productCollectionService: ProductCollectionService\n requestedReportService: RequestedReportService\n missingReportService: MissingReportService\n recentlyViewedService: RecentlyViewedStoreService\n bookmarkService: BookmarkService\n downloadPermissionService: DownloadPermissionService\n defaultFilterValuesService: DefaultFilterValuesService\n productCollectionStoreService: ProductCollectionStoreService\n featureFlagService: FeatureFlagService\n}\n\nexport const createDprServices = (\n clients: InitDPRServicesArgs,\n serviceFeatureConfig: ServiceFeatureConfig = {\n bookmarking: false,\n download: false,\n collections: false,\n missingReports: false,\n saveDefaults: false,\n },\n): Services => {\n logger.info('Initialising DPR services...')\n\n const { reportingClient, dashboardClient, reportDataStore, missingReportClient, productCollectionClient } = clients\n const services: dprServices = {\n reportingService: new ReportingService(reportingClient),\n dashboardService: new DashboardService(dashboardClient),\n\n requestedReportService: new RequestedReportService(reportDataStore),\n recentlyViewedService: new RecentlyViewedStoreService(reportDataStore),\n bookmarkService: new BookmarkService(reportDataStore, serviceFeatureConfig),\n\n defaultFilterValuesService: new DefaultFilterValuesService(reportDataStore, serviceFeatureConfig),\n productCollectionStoreService: new ProductCollectionStoreService(reportDataStore, serviceFeatureConfig),\n downloadPermissionService: new DownloadPermissionService(reportDataStore, serviceFeatureConfig),\n\n missingReportService: new MissingReportService(missingReportClient, serviceFeatureConfig),\n productCollectionService: new ProductCollectionService(productCollectionClient, serviceFeatureConfig),\n featureFlagService: clients.featureFlagService,\n }\n return services as Services\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAQO,uBAMPC,EAAmB,uBAEnBC,EAAqC,0DACrCC,EAA8C,uEAC9CC,EAAyC,kEA2BlC,MAAMN,EAAoB,CAC/BO,EACAC,EAA6C,CAC3C,YAAa,GACb,SAAU,GACV,YAAa,GACb,eAAgB,GAChB,aAAc,EAChB,IACa,CACb,EAAAC,QAAO,KAAK,8BAA8B,EAE1C,KAAM,CAAE,gBAAAC,EAAiB,gBAAAC,EAAiB,gBAAAC,EAAiB,oBAAAC,EAAqB,wBAAAC,CAAwB,EAAIP,EAiB5G,MAhB8B,CAC5B,iBAAkB,IAAI,mBAAiBG,CAAe,EACtD,iBAAkB,IAAI,mBAAiBC,CAAe,EAEtD,uBAAwB,IAAI,yBAAuBC,CAAe,EAClE,sBAAuB,IAAI,6BAA2BA,CAAe,EACrE,gBAAiB,IAAI,kBAAgBA,EAAiBJ,CAAoB,EAE1E,2BAA4B,IAAI,6BAA2BI,EAAiBJ,CAAoB,EAChG,8BAA+B,IAAI,gCAA8BI,EAAiBJ,CAAoB,EACtG,0BAA2B,IAAI,4BAA0BI,EAAiBJ,CAAoB,EAE9F,qBAAsB,IAAI,uBAAqBK,EAAqBL,CAAoB,EACxF,yBAA0B,IAAI,2BAAyBM,EAAyBN,CAAoB,EACpG,mBAAoBD,EAAQ,kBAC9B,CAEF",
6
6
  "names": ["CreateDprServices_exports", "__export", "createDprServices", "__toCommonJS", "import_services", "import_logger", "import_missingReportService", "import_productCollectionStoreService", "import_productCollectionService", "clients", "serviceFeatureConfig", "logger", "reportingClient", "dashboardClient", "reportDataStore", "missingReportClient", "productCollectionClient"]
7
7
  }
@@ -19,6 +19,7 @@ import { MissingReportService } from '../services/missingReport/missingReportSer
19
19
  import { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'
20
20
  import { ProductCollectionService } from '../services/productCollection/productCollectionService'
21
21
  import { ServiceFeatureConfig } from '../types/DprConfig'
22
+ import { FeatureFlagService } from '../services/featureFlagService'
22
23
 
23
24
  export interface InitDPRServicesArgs {
24
25
  reportingClient: ReportingClient
@@ -26,6 +27,7 @@ export interface InitDPRServicesArgs {
26
27
  reportDataStore: ReportDataStore
27
28
  missingReportClient: MissingReportClient
28
29
  productCollectionClient: ProductCollectionClient
30
+ featureFlagService: FeatureFlagService
29
31
  }
30
32
 
31
33
  interface dprServices {
@@ -39,6 +41,7 @@ interface dprServices {
39
41
  downloadPermissionService: DownloadPermissionService
40
42
  defaultFilterValuesService: DefaultFilterValuesService
41
43
  productCollectionStoreService: ProductCollectionStoreService
44
+ featureFlagService: FeatureFlagService
42
45
  }
43
46
 
44
47
  export const createDprServices = (
@@ -68,6 +71,7 @@ export const createDprServices = (
68
71
 
69
72
  missingReportService: new MissingReportService(missingReportClient, serviceFeatureConfig),
70
73
  productCollectionService: new ProductCollectionService(productCollectionClient, serviceFeatureConfig),
74
+ featureFlagService: clients.featureFlagService,
71
75
  }
72
76
  return services as Services
73
77
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ministryofjustice/hmpps-digital-prison-reporting-frontend",
3
3
  "description": "The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.",
4
- "version": "4.23.2",
4
+ "version": "4.24.0",
5
5
  "main": "dpr/all.mjs",
6
6
  "sass": "dpr/all.scss",
7
7
  "engines": {
@@ -138,6 +138,7 @@
138
138
  ]
139
139
  },
140
140
  "dependencies": {
141
+ "@flipt-io/flipt": "^1.5.0",
141
142
  "@ministryofjustice/frontend": "^6.0.0",
142
143
  "agentkeepalive": "^4.5.0",
143
144
  "bunyan": "^1.8.15",