@dwp/govuk-casa 8.16.2 → 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 +33 -36
- 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/src/routes/static.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import ExpressJS from
|
|
2
|
-
import { readFileSync } from
|
|
3
|
-
import { URL } from
|
|
4
|
-
import { resolve } from
|
|
5
|
-
import { createRequire } from
|
|
1
|
+
import ExpressJS from "express";
|
|
2
|
+
import { readFileSync } from "fs";
|
|
3
|
+
import { URL } from "url";
|
|
4
|
+
import { resolve } from "path";
|
|
5
|
+
import { createRequire } from "module";
|
|
6
6
|
|
|
7
|
-
import dirname from
|
|
8
|
-
import MutableRouter from
|
|
9
|
-
import { validateUrlPath } from
|
|
7
|
+
import dirname from "./dirname.cjs";
|
|
8
|
+
import MutableRouter from "../lib/MutableRouter.js";
|
|
9
|
+
import { validateUrlPath } from "../lib/utils.js";
|
|
10
10
|
|
|
11
11
|
const { static: ExpressStatic } = ExpressJS; // CommonJS
|
|
12
12
|
|
|
@@ -24,24 +24,25 @@ const oneDay = 86400000;
|
|
|
24
24
|
* @param {StaticOptions} options Options
|
|
25
25
|
* @returns {MutableRouter} ExpressJS Router instance
|
|
26
26
|
*/
|
|
27
|
-
export default function staticRouter({
|
|
28
|
-
maxAge = 3600000,
|
|
29
|
-
} = {}) {
|
|
27
|
+
export default function staticRouter({ maxAge = 3600000 } = {}) {
|
|
30
28
|
const router = new MutableRouter();
|
|
31
29
|
|
|
32
30
|
const notFoundHandler = (req, res, next) => {
|
|
33
31
|
// Fall through to a general purpose error handler
|
|
34
|
-
next(new Error(
|
|
32
|
+
next(new Error("404"));
|
|
35
33
|
};
|
|
36
34
|
|
|
37
35
|
const setHeaders = (req, res, next) => {
|
|
38
|
-
res.set(
|
|
39
|
-
res.set(
|
|
40
|
-
res.set(
|
|
41
|
-
const { pathname } = new URL(
|
|
42
|
-
|
|
36
|
+
res.set("cache-control", "public");
|
|
37
|
+
res.set("pragma", "cache");
|
|
38
|
+
res.set("expires", new Date(Date.now() + oneDay).toUTCString());
|
|
39
|
+
const { pathname } = new URL(
|
|
40
|
+
req?.originalUrl ?? "",
|
|
41
|
+
"https://placeholder.test/",
|
|
42
|
+
);
|
|
43
|
+
if (pathname.substr(-4) === ".css") {
|
|
43
44
|
// Just needed for our in-memory CSS assets
|
|
44
|
-
res.set(
|
|
45
|
+
res.set("content-type", "text/css");
|
|
45
46
|
}
|
|
46
47
|
next();
|
|
47
48
|
};
|
|
@@ -59,22 +60,54 @@ export default function staticRouter({
|
|
|
59
60
|
// must be replaced with the dynamic `mountUrl` to ensure govuk-frontend
|
|
60
61
|
// assets are served from the correct location.
|
|
61
62
|
/* eslint-disable security/detect-non-literal-fs-filename */
|
|
62
|
-
const casaCss = readFileSync(
|
|
63
|
-
|
|
63
|
+
const casaCss = readFileSync(
|
|
64
|
+
resolve(dirname, "../../dist/assets/css/casa.css"),
|
|
65
|
+
{ encoding: "utf8" },
|
|
66
|
+
);
|
|
67
|
+
const casaCssIe8 = readFileSync(
|
|
68
|
+
resolve(dirname, "../../dist/assets/css/casa-ie8.css"),
|
|
69
|
+
{ encoding: "utf8" },
|
|
70
|
+
);
|
|
64
71
|
/* eslint-enable security/detect-non-literal-fs-filename */
|
|
65
72
|
|
|
66
73
|
// The static middleware will only server GET/HEAD requests, so we can mount
|
|
67
74
|
// the middleware using `use()` rather than resorting to `get()`
|
|
68
|
-
const govukFrontendDirectory = resolve(
|
|
75
|
+
const govukFrontendDirectory = resolve(
|
|
76
|
+
createRequire(dirname).resolve("govuk-frontend"),
|
|
77
|
+
"../../",
|
|
78
|
+
);
|
|
69
79
|
|
|
70
|
-
router.use(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
80
|
+
router.use(
|
|
81
|
+
"/govuk/assets/js/all.js",
|
|
82
|
+
ExpressStatic(`${govukFrontendDirectory}/govuk/all.js`, staticConfig),
|
|
83
|
+
);
|
|
84
|
+
router.use(
|
|
85
|
+
"/govuk/assets/js/all.js.map",
|
|
86
|
+
ExpressStatic(`${govukFrontendDirectory}/govuk/all.js.map`, staticConfig),
|
|
87
|
+
);
|
|
88
|
+
router.use(
|
|
89
|
+
"/govuk/assets",
|
|
90
|
+
ExpressStatic(`${govukFrontendDirectory}/govuk/assets`, staticConfig),
|
|
91
|
+
);
|
|
92
|
+
router.use("/govuk/assets", notFoundHandler);
|
|
74
93
|
|
|
75
|
-
router.get(
|
|
76
|
-
|
|
77
|
-
|
|
94
|
+
router.get("/casa/assets/css/casa.css", setHeaders, (req, res) =>
|
|
95
|
+
res.send(
|
|
96
|
+
casaCss.replace(
|
|
97
|
+
/~~~CASA_MOUNT_URL~~~/g,
|
|
98
|
+
validateUrlPath(`${req.baseUrl}/`),
|
|
99
|
+
),
|
|
100
|
+
),
|
|
101
|
+
);
|
|
102
|
+
router.get("/casa/assets/css/casa-ie8.css", setHeaders, (req, res) =>
|
|
103
|
+
res.send(
|
|
104
|
+
casaCssIe8.replace(
|
|
105
|
+
/~~~CASA_MOUNT_URL~~~/g,
|
|
106
|
+
validateUrlPath(`${req.baseUrl}/`),
|
|
107
|
+
),
|
|
108
|
+
),
|
|
109
|
+
);
|
|
110
|
+
router.use("/casa/assets", notFoundHandler);
|
|
78
111
|
|
|
79
112
|
return router;
|
|
80
113
|
}
|