@ministryofjustice/hmpps-prison-permissions-lib 0.4.0 → 0.5.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Please use this to capture reasoning behind changes:
4
4
 
5
+ ## 0.5.0
6
+
7
+ No functionality changes. Dependencies updated and support for node 24 has been added.
8
+
5
9
  ## 0.4.0
6
10
 
7
11
  Access period for users with both the `POM` and `GLOBAL_SEARCH` roles to access prisoner case notes after a transfer extended from 30 to 90 days.
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # hmpps-prison-permissions-lib
2
2
 
3
3
  [![repo standards badge](https://img.shields.io/badge/endpoint.svg?&style=flat&logo=github&url=https%3A%2F%2Foperations-engineering-reports.cloud-platform.service.justice.gov.uk%2Fapi%2Fv1%2Fcompliant_public_repositories%2Fhmpps-prison-permissions-lib)](https://operations-engineering-reports.cloud-platform.service.justice.gov.uk/public-report/hmpps-prison-permissions-lib "Link to report")
4
+ [![Test, lint & publish](https://github.com/ministryofjustice/hmpps-prison-permissions-lib/actions/workflows/pipeline.yml/badge.svg?branch=main)](https://github.com/ministryofjustice/hmpps-prison-permissions-lib/actions/workflows/pipeline.yml)
4
5
 
5
6
  A Node.js client library to centralise the process of determining user permissions for prison services and data.
6
7
 
@@ -143,7 +144,7 @@ setupNunjucksPermissions(njkEnv)
143
144
 
144
145
  * Using the permissions check in the template, for example:
145
146
 
146
- ```
147
+ ```nunjucks
147
148
  {% if isGranted(PrisonerMoneyPermission.read, res.locals.prisonerPermissions) %}
148
149
  ...
149
150
  {% endif %}
package/dist/index.d.ts CHANGED
@@ -384,40 +384,19 @@ declare function prisonerPermissionsGuard(permissionsService: PermissionsService
384
384
  getPrisonerNumberFunction?: (req: Request) => string | undefined;
385
385
  }): (req: Request, res: Response, next: NextFunction) => Promise<void>;
386
386
 
387
- interface NunjucksEnvironment {
388
- addGlobal: (name: string, value: unknown) => NunjucksEnvironment;
389
- }
390
- declare function setupNunjucksPermissions(njkEnv: NunjucksEnvironment): void;
391
-
392
387
  type Join<K, P> = K extends string | number ? (P extends string | number ? `${K}.${P}` : never) : never;
393
388
  type Path<T> = T extends object ? {
394
389
  [K in keyof T]-?: K extends string | number ? `${K}` | Join<K, Path<T[K]>> : never;
395
390
  }[keyof T] : '';
396
391
 
397
- declare const prisonerPermissionPaths: Record<PrisonerPermission, Path<PrisonerPermissions>>;
398
-
399
- declare function isGranted(permission: PrisonerPermission, permissions: PrisonerPermissions | undefined): boolean;
400
-
401
392
  declare const interventionsDomainPermissionPaths: Record<InterventionsDomainPermission, Path<PrisonerPermissions>>;
402
393
 
403
- declare const personDomainPermissionPaths: Record<PersonDomainPermission, Path<PrisonerPermissions>>;
404
-
405
- declare const personPlanAndNeedsDomainPermissionPaths: Record<PersonPlanAndNeedsDomainPermission, Path<PrisonerPermissions>>;
406
-
407
- declare const prisonerSpecificDomainPermissionPaths: Record<PrisonerSpecificDomainPermission, Path<PrisonerPermissions>>;
408
-
409
- declare const runningAPrisonDomainPermissionPaths: Record<RunningAPrisonDomainPermission, Path<PrisonerPermissions>>;
410
-
411
- declare const sentenceAndOffenceDomainPermissionPaths: Record<SentenceAndOffenceDomainPermission, Path<PrisonerPermissions>>;
412
-
413
- declare const securityDomainPermissionPaths: Record<SecurityDomainPermission, Path<PrisonerPermissions>>;
394
+ declare const personInterventionsPermissionPaths: Record<PersonInterventionsPermission, Path<PrisonerPermissions>>;
414
395
 
415
- declare const probationDomainPermissionPaths: Record<ProbationDomainPermission, Path<PrisonerPermissions>>;
396
+ declare const personDomainPermissionPaths: Record<PersonDomainPermission, Path<PrisonerPermissions>>;
416
397
 
417
398
  declare const caseNotesPermissionPaths: Record<CaseNotesPermission, Path<PrisonerPermissions>>;
418
399
 
419
- declare const personInterventionsPermissionPaths: Record<PersonInterventionsPermission, Path<PrisonerPermissions>>;
420
-
421
400
  declare const corePersonRecordPermissionPaths: Record<CorePersonRecordPermission, Path<PrisonerPermissions>>;
422
401
 
423
402
  declare const personHealthAndMedicationPermissionPaths: Record<PersonHealthAndMedicationPermission, Path<PrisonerPermissions>>;
@@ -426,12 +405,16 @@ declare const personProtectedCharacteristicsPermissionPaths: Record<PersonProtec
426
405
 
427
406
  declare const personalRelationshipsPermissionPaths: Record<PersonalRelationshipsPermission, Path<PrisonerPermissions>>;
428
407
 
408
+ declare const personPlanAndNeedsDomainPermissionPaths: Record<PersonPlanAndNeedsDomainPermission, Path<PrisonerPermissions>>;
409
+
429
410
  declare const personCommunicationNeedsPermissionPaths: Record<PersonCommunicationNeedsPermission, Path<PrisonerPermissions>>;
430
411
 
431
- declare const prisonerAdjudicationsPermissionPaths: Record<PrisonerAdjudicationsPermission, Path<PrisonerPermissions>>;
412
+ declare const prisonerSpecificDomainPermissionPaths: Record<PrisonerSpecificDomainPermission, Path<PrisonerPermissions>>;
432
413
 
433
414
  declare const personPrisonCategoryPermissionPaths: Record<PersonPrisonCategoryPermission, Path<PrisonerPermissions>>;
434
415
 
416
+ declare const prisonerAdjudicationsPermissionPaths: Record<PrisonerAdjudicationsPermission, Path<PrisonerPermissions>>;
417
+
435
418
  declare const prisonerAlertsPermissionPaths: Record<PrisonerAlertsPermission, Path<PrisonerPermissions>>;
436
419
 
437
420
  declare const prisonerIncentivesPermissionPaths: Record<PrisonerIncentivesPermission, Path<PrisonerPermissions>>;
@@ -442,17 +425,34 @@ declare const prisonerSchedulePermissionPaths: Record<PrisonerSchedulePermission
442
425
 
443
426
  declare const useOfForcePermissionPaths: Record<UseOfForcePermission, Path<PrisonerPermissions>>;
444
427
 
428
+ declare const probationDomainPermissionPaths: Record<ProbationDomainPermission, Path<PrisonerPermissions>>;
429
+
445
430
  declare const probationDocumentsPermissionPaths: Record<ProbationDocumentsPermission, Path<PrisonerPermissions>>;
446
431
 
447
- declare const prisonerBaseLocationPermissionPaths: Record<PrisonerBaseLocationPermission, Path<PrisonerPermissions>>;
432
+ declare const runningAPrisonDomainPermissionPaths: Record<RunningAPrisonDomainPermission, Path<PrisonerPermissions>>;
448
433
 
449
- declare const pathfinderPermissionPaths: Record<PathfinderPermission, Path<PrisonerPermissions>>;
434
+ declare const prisonerBaseLocationPermissionPaths: Record<PrisonerBaseLocationPermission, Path<PrisonerPermissions>>;
450
435
 
451
436
  declare const prisonerVisitsAndVisitorsPermissionPaths: Record<PrisonerVisitsAndVisitorsPermission, Path<PrisonerPermissions>>;
452
437
 
438
+ declare const securityDomainPermissionPaths: Record<SecurityDomainPermission, Path<PrisonerPermissions>>;
439
+
440
+ declare const pathfinderPermissionPaths: Record<PathfinderPermission, Path<PrisonerPermissions>>;
441
+
453
442
  declare const socPermissionPaths: Record<SOCPermission, Path<PrisonerPermissions>>;
454
443
 
444
+ declare const sentenceAndOffenceDomainPermissionPaths: Record<SentenceAndOffenceDomainPermission, Path<PrisonerPermissions>>;
445
+
455
446
  declare const personSentenceCalculationPermissionPaths: Record<PersonSentenceCalculationPermission, Path<PrisonerPermissions>>;
456
447
 
448
+ declare const prisonerPermissionPaths: Record<PrisonerPermission, Path<PrisonerPermissions>>;
449
+
450
+ declare function isGranted(permission: PrisonerPermission, permissions: PrisonerPermissions | undefined): boolean;
451
+
452
+ interface NunjucksEnvironment {
453
+ addGlobal: (name: string, value: unknown) => NunjucksEnvironment;
454
+ }
455
+ declare function setupNunjucksPermissions(njkEnv: NunjucksEnvironment): void;
456
+
457
457
  export { CaseNotesPermission, CorePersonRecordPermission, PathfinderPermission, PermissionsService, PersonCommunicationNeedsPermission, PersonHealthAndMedicationPermission, PersonInterventionsPermission, PersonPrisonCategoryPermission, PersonProtectedCharacteristicsPermission, PersonSentenceCalculationPermission, PersonalRelationshipsPermission, PrisonerAdjudicationsPermission, PrisonerAlertsPermission, PrisonerBaseLocationPermission, PrisonerBasePermission, PrisonerIncentivesPermission, PrisonerMoneyPermission, PrisonerSchedulePermission, PrisonerVisitsAndVisitorsPermission, ProbationDocumentsPermission, SOCPermission, UseOfForcePermission, caseNotesPermissionPaths, corePersonRecordPermissionPaths, interventionsDomainPermissionPaths, isGranted, pathfinderPermissionPaths, personCommunicationNeedsPermissionPaths, personDomainPermissionPaths, personHealthAndMedicationPermissionPaths, personInterventionsPermissionPaths, personPlanAndNeedsDomainPermissionPaths, personPrisonCategoryPermissionPaths, personProtectedCharacteristicsPermissionPaths, personSentenceCalculationPermissionPaths, personalRelationshipsPermissionPaths, prisonerAdjudicationsPermissionPaths, prisonerAlertsPermissionPaths, prisonerBaseLocationPermissionPaths, prisonerIncentivesPermissionPaths, prisonerMoneyPermissionPaths, prisonerPermissionPaths, prisonerPermissionsGuard, prisonerSchedulePermissionPaths, prisonerSpecificDomainPermissionPaths, prisonerVisitsAndVisitorsPermissionPaths, probationDocumentsPermissionPaths, probationDomainPermissionPaths, runningAPrisonDomainPermissionPaths, securityDomainPermissionPaths, sentenceAndOffenceDomainPermissionPaths, setupNunjucksPermissions, socPermissionPaths, useOfForcePermissionPaths };
458
458
  export type { CaseNotesPermissions, CorePersonRecordPermissions, InterventionsDomainPermission, InterventionsDomainPermissions, PathfinderPermissions, PersonCommunicationNeedsPermissions, PersonDomainPermission, PersonDomainPermissions, PersonHealthAndMedicationPermissions, PersonInterventionsPermissions, PersonPlanAndNeedsDomainPermission, PersonPlanAndNeedsDomainPermissions, PersonPrisonCategoryPermissions, PersonProtectedCharacteristicsPermissions, PersonSentenceCalculationPermissions, PersonalRelationshipsPermissions, PrisonerAdjudicationsPermissions, PrisonerAlertsPermissions, PrisonerBaseLocationPermissions, PrisonerIncentivesPermissions, PrisonerMoneyPermissions, PrisonerPermission, PrisonerPermissions, PrisonerSchedulePermissions, PrisonerSpecificDomainPermission, PrisonerSpecificDomainPermissions, PrisonerVisitsAndVisitorsPermissions, ProbationDocumentsPermissions, ProbationDomainPermission, ProbationDomainPermissions, RunningAPrisonDomainPermission, RunningAPrisonDomainPermissions, SOCPermissions, SecurityDomainPermission, SecurityDomainPermissions, SentenceAndOffenceDomainPermission, SentenceAndOffenceDomainPermissions, UseOfForcePermissions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ministryofjustice/hmpps-prison-permissions-lib",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "A library to centralise the process of determining whether a user should have access to create/read/update/delete a prison resource, for example, accessing a prisoner's Prisoner Profile.",
5
5
  "keywords": [
6
6
  "hmpps",
@@ -25,7 +25,7 @@
25
25
  "dist/**/*"
26
26
  ],
27
27
  "engines": {
28
- "node": "20 || 22"
28
+ "node": "20 || 22 || 24"
29
29
  },
30
30
  "scripts": {
31
31
  "prepare": "hmpps-precommit-hooks-prepare",
@@ -49,26 +49,26 @@
49
49
  ]
50
50
  },
51
51
  "devDependencies": {
52
- "@ministryofjustice/eslint-config-hmpps": "^0.0.5",
53
- "@ministryofjustice/hmpps-precommit-hooks": "^0.0.4",
54
- "@rollup/plugin-commonjs": "^28.0.6",
55
- "@rollup/plugin-multi-entry": "^6.0.1",
56
- "@rollup/plugin-node-resolve": "^16.0.1",
57
- "@rollup/plugin-typescript": "^12.1.4",
58
- "@tsconfig/node22": "^22.0.2",
52
+ "@ministryofjustice/eslint-config-hmpps": "^1.0.0",
53
+ "@ministryofjustice/hmpps-precommit-hooks": "^1.0.2",
54
+ "@rollup/plugin-commonjs": "^29.0.0",
55
+ "@rollup/plugin-multi-entry": "^7.1.0",
56
+ "@rollup/plugin-node-resolve": "^16.0.3",
57
+ "@rollup/plugin-typescript": "^12.3.0",
58
+ "@tsconfig/node24": "^24.0.1",
59
59
  "@types/bunyan": "^1.8.11",
60
- "@types/express": "^5.0.3",
60
+ "@types/express": "^5.0.5",
61
61
  "@types/express-session": "^1.18.2",
62
62
  "@types/jest": "^30.0.0",
63
- "jest": "^30.0.5",
64
- "lint-staged": "^16.1.2",
65
- "rollup": "^4.45.1",
63
+ "jest": "^30.2.0",
64
+ "lint-staged": "^16.2.6",
65
+ "rollup": "^4.53.2",
66
66
  "rollup-plugin-dts": "^6.2.1",
67
- "ts-jest": "^29.4.0",
68
- "typescript": "^5.8.3"
67
+ "ts-jest": "^29.4.5",
68
+ "typescript": "^5.9.3"
69
69
  },
70
70
  "dependencies": {
71
- "@ministryofjustice/hmpps-rest-client": "^0.0.3",
71
+ "@ministryofjustice/hmpps-rest-client": "^1.0.0",
72
72
  "applicationinsights": "^2.9.7"
73
73
  }
74
74
  }