@dwp/govuk-casa 8.16.1 → 8.16.3
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/dist/assets/css/casa-ie8.css +1 -1
- package/dist/assets/css/casa.css +1 -1
- package/dist/casa.d.ts +13 -13
- package/dist/casa.js +17 -7
- package/dist/casa.js.map +1 -1
- package/dist/lib/CasaTemplateLoader.d.ts +1 -1
- package/dist/lib/CasaTemplateLoader.js +13 -14
- package/dist/lib/CasaTemplateLoader.js.map +1 -1
- package/dist/lib/JourneyContext.d.ts +10 -4
- package/dist/lib/JourneyContext.js +57 -47
- package/dist/lib/JourneyContext.js.map +1 -1
- package/dist/lib/MutableRouter.d.ts +1 -1
- package/dist/lib/MutableRouter.js +22 -23
- package/dist/lib/MutableRouter.js.map +1 -1
- package/dist/lib/Plan.d.ts +5 -5
- package/dist/lib/Plan.js +49 -36
- package/dist/lib/Plan.js.map +1 -1
- package/dist/lib/ValidationError.d.ts +1 -1
- package/dist/lib/ValidationError.js +9 -9
- package/dist/lib/ValidationError.js.map +1 -1
- package/dist/lib/ValidatorFactory.js +4 -7
- package/dist/lib/ValidatorFactory.js.map +1 -1
- package/dist/lib/configuration-ingestor.d.ts +75 -14
- package/dist/lib/configuration-ingestor.js +156 -64
- package/dist/lib/configuration-ingestor.js.map +1 -1
- package/dist/lib/configure.js +11 -10
- package/dist/lib/configure.js.map +1 -1
- package/dist/lib/constants.js +8 -8
- package/dist/lib/context-id-generators.d.ts +1 -1
- package/dist/lib/context-id-generators.js +7 -4
- package/dist/lib/context-id-generators.js.map +1 -1
- package/dist/lib/end-session.js +2 -2
- package/dist/lib/field.d.ts +6 -6
- package/dist/lib/field.js +15 -21
- package/dist/lib/field.js.map +1 -1
- package/dist/lib/index.d.ts +13 -13
- package/dist/lib/index.js +17 -7
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/logger.js +7 -7
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/mount.js +3 -3
- package/dist/lib/mount.js.map +1 -1
- package/dist/lib/nunjucks-filters.d.ts +5 -1
- package/dist/lib/nunjucks-filters.js +37 -23
- package/dist/lib/nunjucks-filters.js.map +1 -1
- package/dist/lib/nunjucks.d.ts +2 -2
- package/dist/lib/nunjucks.js +6 -7
- package/dist/lib/nunjucks.js.map +1 -1
- package/dist/lib/utils.js +52 -42
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/validators/dateObject.d.ts +3 -3
- package/dist/lib/validators/dateObject.js +44 -37
- package/dist/lib/validators/dateObject.js.map +1 -1
- package/dist/lib/validators/email.d.ts +2 -2
- package/dist/lib/validators/email.js +4 -5
- package/dist/lib/validators/email.js.map +1 -1
- package/dist/lib/validators/inArray.d.ts +2 -2
- package/dist/lib/validators/inArray.js +5 -6
- package/dist/lib/validators/inArray.js.map +1 -1
- package/dist/lib/validators/index.d.ts +10 -10
- package/dist/lib/validators/index.js.map +1 -1
- package/dist/lib/validators/nino.d.ts +2 -2
- package/dist/lib/validators/nino.js +10 -7
- package/dist/lib/validators/nino.js.map +1 -1
- package/dist/lib/validators/postalAddressObject.d.ts +2 -2
- package/dist/lib/validators/postalAddressObject.js +52 -39
- package/dist/lib/validators/postalAddressObject.js.map +1 -1
- package/dist/lib/validators/range.d.ts +2 -2
- package/dist/lib/validators/range.js +6 -7
- package/dist/lib/validators/range.js.map +1 -1
- package/dist/lib/validators/regex.d.ts +2 -2
- package/dist/lib/validators/regex.js +4 -5
- package/dist/lib/validators/regex.js.map +1 -1
- package/dist/lib/validators/required.d.ts +2 -2
- package/dist/lib/validators/required.js +6 -9
- package/dist/lib/validators/required.js.map +1 -1
- package/dist/lib/validators/strlen.d.ts +2 -2
- package/dist/lib/validators/strlen.js +8 -9
- package/dist/lib/validators/strlen.js.map +1 -1
- package/dist/lib/validators/wordCount.d.ts +2 -2
- package/dist/lib/validators/wordCount.js +10 -9
- package/dist/lib/validators/wordCount.js.map +1 -1
- package/dist/lib/waypoint-url.d.ts +4 -4
- package/dist/lib/waypoint-url.js +23 -23
- package/dist/lib/waypoint-url.js.map +1 -1
- package/dist/middleware/body-parser.d.ts +27 -5
- package/dist/middleware/body-parser.js +37 -6
- package/dist/middleware/body-parser.js.map +1 -1
- package/dist/middleware/csrf.d.ts +3 -0
- package/dist/middleware/csrf.js +3 -0
- package/dist/middleware/csrf.js.map +1 -1
- package/dist/middleware/data.d.ts +22 -5
- package/dist/middleware/data.js +37 -7
- package/dist/middleware/data.js.map +1 -1
- package/dist/middleware/gather-fields.d.ts +1 -1
- package/dist/middleware/gather-fields.js +4 -3
- package/dist/middleware/gather-fields.js.map +1 -1
- package/dist/middleware/i18n.d.ts +11 -2
- package/dist/middleware/i18n.js +26 -17
- package/dist/middleware/i18n.js.map +1 -1
- package/dist/middleware/post.d.ts +3 -1
- package/dist/middleware/post.js +35 -18
- package/dist/middleware/post.js.map +1 -1
- package/dist/middleware/pre.d.ts +1 -1
- package/dist/middleware/pre.js +44 -21
- package/dist/middleware/pre.js.map +1 -1
- package/dist/middleware/progress-journey.d.ts +1 -1
- package/dist/middleware/progress-journey.js +5 -5
- package/dist/middleware/progress-journey.js.map +1 -1
- package/dist/middleware/sanitise-fields.d.ts +2 -2
- package/dist/middleware/sanitise-fields.js +13 -11
- package/dist/middleware/sanitise-fields.js.map +1 -1
- package/dist/middleware/serve-first-waypoint.d.ts +1 -1
- package/dist/middleware/serve-first-waypoint.js +6 -4
- package/dist/middleware/serve-first-waypoint.js.map +1 -1
- package/dist/middleware/session.d.ts +27 -8
- package/dist/middleware/session.js +53 -25
- package/dist/middleware/session.js.map +1 -1
- package/dist/middleware/skip-waypoint.d.ts +1 -1
- package/dist/middleware/skip-waypoint.js +3 -3
- package/dist/middleware/skip-waypoint.js.map +1 -1
- package/dist/middleware/steer-journey.d.ts +1 -1
- package/dist/middleware/steer-journey.js +15 -13
- package/dist/middleware/steer-journey.js.map +1 -1
- package/dist/middleware/strip-proxy-path.d.ts +1 -1
- package/dist/middleware/strip-proxy-path.js +3 -3
- package/dist/middleware/strip-proxy-path.js.map +1 -1
- package/dist/middleware/validate-fields.d.ts +2 -2
- package/dist/middleware/validate-fields.js +2 -5
- package/dist/middleware/validate-fields.js.map +1 -1
- package/dist/routes/ancillary.d.ts +2 -2
- package/dist/routes/ancillary.js +3 -3
- package/dist/routes/ancillary.js.map +1 -1
- package/dist/routes/journey.d.ts +1 -1
- package/dist/routes/journey.js +85 -31
- package/dist/routes/journey.js.map +1 -1
- package/dist/routes/static.d.ts +2 -2
- package/dist/routes/static.js +18 -18
- package/dist/routes/static.js.map +1 -1
- package/package.json +39 -42
- package/src/casa.js +13 -13
- package/src/lib/CasaTemplateLoader.js +21 -17
- package/src/lib/JourneyContext.js +118 -79
- package/src/lib/MutableRouter.js +30 -26
- package/src/lib/Plan.js +109 -62
- package/src/lib/ValidationError.js +13 -10
- package/src/lib/ValidatorFactory.js +7 -8
- package/src/lib/configuration-ingestor.js +200 -74
- package/src/lib/configure.js +31 -30
- package/src/lib/constants.js +8 -8
- package/src/lib/context-id-generators.js +39 -38
- package/src/lib/end-session.js +3 -3
- package/src/lib/field.js +48 -32
- package/src/lib/index.js +12 -12
- package/src/lib/logger.js +9 -9
- package/src/lib/mount.js +68 -73
- package/src/lib/nunjucks-filters.js +57 -44
- package/src/lib/nunjucks.js +20 -16
- package/src/lib/utils.js +69 -44
- package/src/lib/validators/dateObject.js +57 -48
- package/src/lib/validators/email.js +8 -9
- package/src/lib/validators/inArray.js +8 -9
- package/src/lib/validators/index.js +11 -11
- package/src/lib/validators/nino.js +25 -12
- package/src/lib/validators/postalAddressObject.js +73 -55
- package/src/lib/validators/range.js +9 -11
- package/src/lib/validators/regex.js +7 -8
- package/src/lib/validators/required.js +13 -14
- package/src/lib/validators/strlen.js +11 -12
- package/src/lib/validators/wordCount.js +17 -12
- package/src/lib/waypoint-url.js +48 -33
- package/src/middleware/body-parser.js +44 -10
- package/src/middleware/csrf.js +4 -1
- package/src/middleware/data.js +62 -25
- package/src/middleware/gather-fields.js +8 -8
- package/src/middleware/i18n.js +49 -39
- package/src/middleware/post.js +47 -21
- package/src/middleware/pre.js +60 -35
- package/src/middleware/progress-journey.js +32 -18
- package/src/middleware/sanitise-fields.js +43 -20
- package/src/middleware/serve-first-waypoint.js +12 -10
- package/src/middleware/session.js +97 -65
- package/src/middleware/skip-waypoint.js +7 -9
- package/src/middleware/steer-journey.js +39 -27
- package/src/middleware/strip-proxy-path.js +8 -7
- package/src/middleware/validate-fields.js +5 -12
- package/src/routes/ancillary.js +4 -6
- package/src/routes/journey.js +158 -78
- package/src/routes/static.js +61 -28
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dwp/govuk-casa",
|
|
3
|
-
"version": "8.16.
|
|
3
|
+
"version": "8.16.3",
|
|
4
4
|
"description": "A framework for building GOVUK Collect-And-Submit-Applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"views/**/*"
|
|
21
21
|
],
|
|
22
22
|
"engines": {
|
|
23
|
-
"node": "
|
|
24
|
-
"npm": "
|
|
23
|
+
"node": ">=18 <=22",
|
|
24
|
+
"npm": ">=8 <=10"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
27
|
"pipeline": "npm run coverage && npm run lint",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"test:e2e": "spiderplan --worker-init ./tests/e2e/worker-init.js --language en ./tests/e2e/personas/**/*.yaml",
|
|
32
32
|
"test:dast": "spiderplan --worker-init ./tests/e2e/worker-init.js --language en ./tests/e2e/personas/**/traversal.yaml --workers 1 --zap --zap-proxy 'http://localhost:8080/' --zap-target-hostname 'host.docker.internal'",
|
|
33
33
|
"test:dast:report": "curl -s --header 'X-ZAP-Api-Key: secret' http://localhost:8080/OTHER/core/other/htmlreport > gl-dast-report.html",
|
|
34
|
-
"test:dast:setup": "docker run --rm --name casa-dast -d -u zap -p 8080:8080 -i
|
|
34
|
+
"test:dast:setup": "docker run --rm --name casa-dast -d -u zap -p 8080:8080 -i ghcr.io/zaproxy/zaproxy:bare@sha256:24a4037a3e8607d9fedbd75e4a7f1336d11998e1c331aab9991ef074f5de4b22 zap.sh -daemon -host 0.0.0.0 -port 8080 -config api.addrs.addr.name=\".*\" -config api.addrs.addr.regex=true -config api.key=secret -notel; npm run test:dast:ready-check",
|
|
35
35
|
"test:dast:ready-check": "while [ \"$(curl -Is -o /dev/null -w %{response_code} http://localhost:8080/)\" -ne \"200\" ]; do sleep 1; echo 'Waiting for ZAP to start ...'; done",
|
|
36
36
|
"test:dast:teardown": "docker stop casa-dast",
|
|
37
37
|
"lint": "eslint .",
|
|
@@ -48,57 +48,54 @@
|
|
|
48
48
|
"license": "ISC",
|
|
49
49
|
"type": "module",
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@dagrejs/graphlib": "2.2.
|
|
51
|
+
"@dagrejs/graphlib": "2.2.4",
|
|
52
52
|
"bytes": "3.1.2",
|
|
53
|
-
"cookie-parser": "1.4.
|
|
53
|
+
"cookie-parser": "1.4.7",
|
|
54
54
|
"csrf-sync": "4.0.3",
|
|
55
|
-
"debug": "4.
|
|
55
|
+
"debug": "4.4.0",
|
|
56
56
|
"deepmerge": "4.3.1",
|
|
57
|
-
"express": "4.
|
|
58
|
-
"express-session": "1.18.
|
|
59
|
-
"govuk-frontend": "4.
|
|
60
|
-
"helmet": "
|
|
61
|
-
"i18next": "
|
|
62
|
-
"i18next-http-middleware": "3.
|
|
57
|
+
"express": "4.21.2",
|
|
58
|
+
"express-session": "1.18.1",
|
|
59
|
+
"govuk-frontend": "4.9.0",
|
|
60
|
+
"helmet": "8.0.0",
|
|
61
|
+
"i18next": "24.2.0",
|
|
62
|
+
"i18next-http-middleware": "3.7.0",
|
|
63
63
|
"js-yaml": "4.1.0",
|
|
64
64
|
"lodash": "4.17.21",
|
|
65
|
-
"luxon": "3.
|
|
65
|
+
"luxon": "3.5.0",
|
|
66
66
|
"nunjucks": "3.2.4",
|
|
67
|
-
"path-to-regexp": "8.
|
|
67
|
+
"path-to-regexp": "8.2.0",
|
|
68
68
|
"validator": "13.12.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@
|
|
72
|
-
"@
|
|
73
|
-
"@
|
|
74
|
-
"@
|
|
75
|
-
"@
|
|
76
|
-
"@dwp/
|
|
77
|
-
"@dwp/casa-spiderplan-a11y-plugin": "0.1.14",
|
|
78
|
-
"@dwp/casa-spiderplan-zap-plugin": "0.1.10",
|
|
79
|
-
"@dwp/eslint-config-base": "7.0.0",
|
|
71
|
+
"@ckeditor/jsdoc-plugins": "43.0.1",
|
|
72
|
+
"@commitlint/config-conventional": "19.6.0",
|
|
73
|
+
"@dwp/casa-spiderplan": "4.1.1",
|
|
74
|
+
"@dwp/casa-spiderplan-a11y-plugin": "1.0.2",
|
|
75
|
+
"@dwp/casa-spiderplan-zap-plugin": "1.0.2",
|
|
76
|
+
"@dwp/eslint-config-base": "9.0.2",
|
|
80
77
|
"@types/express": "4.17.21",
|
|
81
|
-
"@types/node": "
|
|
78
|
+
"@types/node": "22.10.2",
|
|
82
79
|
"@types/nunjucks": "3.2.6",
|
|
83
|
-
"c8": "
|
|
84
|
-
"chai": "
|
|
85
|
-
"cheerio": "1.0.0
|
|
86
|
-
"commitlint": "
|
|
80
|
+
"c8": "10.1.3",
|
|
81
|
+
"chai": "5.1.2",
|
|
82
|
+
"cheerio": "1.0.0",
|
|
83
|
+
"commitlint": "19.6.1",
|
|
87
84
|
"docdash": "2.0.2",
|
|
88
|
-
"eslint": "
|
|
89
|
-
"eslint-plugin-import": "2.
|
|
90
|
-
"eslint-plugin-jsdoc": "
|
|
85
|
+
"eslint": "9.17.0",
|
|
86
|
+
"eslint-plugin-import": "2.31.0",
|
|
87
|
+
"eslint-plugin-jsdoc": "50.6.1",
|
|
91
88
|
"eslint-plugin-no-unsafe-regex": "1.0.0",
|
|
92
|
-
"eslint-plugin-security": "
|
|
93
|
-
"eslint-plugin-sonarjs": "0.
|
|
94
|
-
"fast-check": "3.
|
|
95
|
-
"jsdoc": "4.0.
|
|
89
|
+
"eslint-plugin-security": "3.0.1",
|
|
90
|
+
"eslint-plugin-sonarjs": "3.0.1",
|
|
91
|
+
"fast-check": "3.23.2",
|
|
92
|
+
"jsdoc": "4.0.4",
|
|
96
93
|
"jsdoc-tsimport-plugin": "1.0.5",
|
|
97
|
-
"mocha": "
|
|
98
|
-
"sass": "1.
|
|
99
|
-
"sinon": "
|
|
100
|
-
"sinon-chai": "
|
|
101
|
-
"supertest": "
|
|
102
|
-
"typescript": "5.
|
|
94
|
+
"mocha": "11.0.1",
|
|
95
|
+
"sass": "1.83.0",
|
|
96
|
+
"sinon": "19.0.2",
|
|
97
|
+
"sinon-chai": "4.0.0",
|
|
98
|
+
"supertest": "7.0.0",
|
|
99
|
+
"typescript": "5.7.2"
|
|
103
100
|
}
|
|
104
101
|
}
|
package/src/casa.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// NOTE: Any changes made here must be reflected in `scripts/esm-wrapper.js`
|
|
2
|
-
import configure from
|
|
3
|
-
import validators from
|
|
4
|
-
import field from
|
|
5
|
-
import Plan from
|
|
6
|
-
import JourneyContext from
|
|
7
|
-
import ValidatorFactory from
|
|
8
|
-
import ValidationError from
|
|
9
|
-
import MutableRouter from
|
|
10
|
-
import waypointUrl from
|
|
11
|
-
import endSession from
|
|
12
|
-
import * as nunjucksFilters from
|
|
13
|
-
import * as constants from
|
|
14
|
-
import * as contextIdGenerators from
|
|
2
|
+
import configure from "./lib/configure.js";
|
|
3
|
+
import validators from "./lib/validators/index.js";
|
|
4
|
+
import field from "./lib/field.js";
|
|
5
|
+
import Plan from "./lib/Plan.js";
|
|
6
|
+
import JourneyContext from "./lib/JourneyContext.js";
|
|
7
|
+
import ValidatorFactory from "./lib/ValidatorFactory.js";
|
|
8
|
+
import ValidationError from "./lib/ValidationError.js";
|
|
9
|
+
import MutableRouter from "./lib/MutableRouter.js";
|
|
10
|
+
import waypointUrl from "./lib/waypoint-url.js";
|
|
11
|
+
import endSession from "./lib/end-session.js";
|
|
12
|
+
import * as nunjucksFilters from "./lib/nunjucks-filters.js";
|
|
13
|
+
import * as constants from "./lib/constants.js";
|
|
14
|
+
import * as contextIdGenerators from "./lib/context-id-generators.js";
|
|
15
15
|
|
|
16
16
|
/** @module @dwp/govuk-casa */
|
|
17
17
|
export {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FileSystemLoader } from
|
|
1
|
+
import { FileSystemLoader } from "nunjucks";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @access private
|
|
@@ -11,19 +11,19 @@ import { FileSystemLoader } from 'nunjucks';
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
const VALID_BLOCKS = [
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
"beforeContent",
|
|
15
|
+
"bodyEnd",
|
|
16
|
+
"bodyStart",
|
|
17
|
+
"casaPageTitle",
|
|
18
|
+
"content",
|
|
19
|
+
"footer",
|
|
20
|
+
"head",
|
|
21
|
+
"header",
|
|
22
|
+
"headIcons",
|
|
23
|
+
"journey_form",
|
|
24
|
+
"main",
|
|
25
|
+
"pageTitle",
|
|
26
|
+
"skipLink",
|
|
27
27
|
];
|
|
28
28
|
|
|
29
29
|
/**
|
|
@@ -73,7 +73,9 @@ export default class CasaTemplateLoader extends FileSystemLoader {
|
|
|
73
73
|
modifyBlock(block, modifier) {
|
|
74
74
|
// Limit to only known block so the user can't do general string replacements
|
|
75
75
|
if (!VALID_BLOCKS.includes(block)) {
|
|
76
|
-
throw new Error(
|
|
76
|
+
throw new Error(
|
|
77
|
+
`Block "${String(block)}" is not a recognised template block.`,
|
|
78
|
+
);
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
this.#blockModifiers.push({
|
|
@@ -95,8 +97,10 @@ export default class CasaTemplateLoader extends FileSystemLoader {
|
|
|
95
97
|
/* eslint-disable-next-line security/detect-object-injection */
|
|
96
98
|
const { block, modifier } = this.#blockModifiers[i];
|
|
97
99
|
if (source.src.indexOf(`block ${block}`) > -1) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
+
source.src = source.src.replace(
|
|
101
|
+
`block ${block} %}`,
|
|
102
|
+
`block ${block} %}${modifier(name)}`,
|
|
103
|
+
);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
106
|
return source;
|