@dwp/govuk-casa 9.0.0 → 9.2.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/README.md +9 -9
- package/dist/assets/css/casa.css +1 -1
- package/dist/assets/css/casa.css.map +1 -1
- package/dist/casa.d.ts +122 -95
- package/dist/casa.js +119 -86
- package/dist/casa.js.map +1 -1
- package/dist/lib/CasaTemplateLoader.d.ts +4 -4
- package/dist/lib/CasaTemplateLoader.js +16 -16
- package/dist/lib/CasaTemplateLoader.js.map +1 -1
- package/dist/lib/JourneyContext.d.ts +58 -40
- package/dist/lib/JourneyContext.js +132 -75
- package/dist/lib/JourneyContext.js.map +1 -1
- package/dist/lib/MutableRouter.d.ts +40 -41
- package/dist/lib/MutableRouter.js +64 -71
- package/dist/lib/MutableRouter.js.map +1 -1
- package/dist/lib/Plan.d.ts +29 -26
- package/dist/lib/Plan.js +85 -71
- package/dist/lib/Plan.js.map +1 -1
- package/dist/lib/ValidationError.d.ts +16 -15
- package/dist/lib/ValidationError.js +21 -20
- package/dist/lib/ValidationError.js.map +1 -1
- package/dist/lib/ValidatorFactory.d.ts +15 -13
- package/dist/lib/ValidatorFactory.js +14 -12
- package/dist/lib/ValidatorFactory.js.map +1 -1
- package/dist/lib/configuration-ingestor.d.ts +37 -40
- package/dist/lib/configuration-ingestor.js +93 -93
- package/dist/lib/configuration-ingestor.js.map +1 -1
- package/dist/lib/configure.d.ts +6 -6
- package/dist/lib/configure.js +14 -12
- package/dist/lib/configure.js.map +1 -1
- package/dist/lib/constants.d.ts +1 -3
- package/dist/lib/constants.js +9 -11
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/context-id-generators.d.ts +3 -5
- package/dist/lib/context-id-generators.js +7 -6
- package/dist/lib/context-id-generators.js.map +1 -1
- package/dist/lib/end-session.d.ts +4 -4
- package/dist/lib/end-session.js +5 -5
- package/dist/lib/field.d.ts +20 -18
- package/dist/lib/field.js +35 -48
- package/dist/lib/field.js.map +1 -1
- package/dist/lib/index.d.ts +13 -13
- package/dist/lib/logger.d.ts +7 -6
- package/dist/lib/logger.js +7 -7
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/mount.d.ts +5 -5
- package/dist/lib/mount.js +11 -10
- package/dist/lib/mount.js.map +1 -1
- package/dist/lib/nunjucks-filters.d.ts +10 -12
- package/dist/lib/nunjucks-filters.js +35 -35
- package/dist/lib/nunjucks-filters.js.map +1 -1
- package/dist/lib/nunjucks.d.ts +7 -5
- package/dist/lib/nunjucks.js +10 -8
- package/dist/lib/nunjucks.js.map +1 -1
- package/dist/lib/utils.d.ts +19 -19
- package/dist/lib/utils.js +62 -55
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/validators/dateObject.d.ts +29 -22
- package/dist/lib/validators/dateObject.js +58 -49
- package/dist/lib/validators/dateObject.js.map +1 -1
- package/dist/lib/validators/email.d.ts +4 -4
- package/dist/lib/validators/email.js +4 -4
- package/dist/lib/validators/inArray.d.ts +4 -4
- package/dist/lib/validators/inArray.js +7 -8
- package/dist/lib/validators/inArray.js.map +1 -1
- package/dist/lib/validators/index.d.ts +10 -10
- package/dist/lib/validators/index.js +1 -3
- package/dist/lib/validators/index.js.map +1 -1
- package/dist/lib/validators/nino.d.ts +9 -8
- package/dist/lib/validators/nino.js +14 -10
- package/dist/lib/validators/nino.js.map +1 -1
- package/dist/lib/validators/postalAddressObject.d.ts +37 -24
- package/dist/lib/validators/postalAddressObject.js +65 -46
- package/dist/lib/validators/postalAddressObject.js.map +1 -1
- package/dist/lib/validators/range.d.ts +12 -8
- package/dist/lib/validators/range.js +11 -9
- package/dist/lib/validators/range.js.map +1 -1
- package/dist/lib/validators/regex.d.ts +4 -4
- package/dist/lib/validators/regex.js +5 -5
- package/dist/lib/validators/required.d.ts +6 -6
- package/dist/lib/validators/required.js +9 -11
- package/dist/lib/validators/required.js.map +1 -1
- package/dist/lib/validators/strlen.d.ts +12 -8
- package/dist/lib/validators/strlen.js +13 -11
- package/dist/lib/validators/strlen.js.map +1 -1
- package/dist/lib/validators/wordCount.d.ts +12 -8
- package/dist/lib/validators/wordCount.js +15 -11
- package/dist/lib/validators/wordCount.js.map +1 -1
- package/dist/lib/waypoint-url.d.ts +16 -13
- package/dist/lib/waypoint-url.js +39 -36
- package/dist/lib/waypoint-url.js.map +1 -1
- package/dist/middleware/body-parser.d.ts +1 -1
- package/dist/middleware/body-parser.js +6 -6
- package/dist/middleware/body-parser.js.map +1 -1
- package/dist/middleware/data.d.ts +1 -1
- package/dist/middleware/data.js +8 -7
- package/dist/middleware/data.js.map +1 -1
- package/dist/middleware/gather-fields.d.ts +2 -2
- package/dist/middleware/gather-fields.js +6 -4
- package/dist/middleware/gather-fields.js.map +1 -1
- package/dist/middleware/i18n.js +13 -15
- package/dist/middleware/i18n.js.map +1 -1
- package/dist/middleware/post.js +30 -18
- package/dist/middleware/post.js.map +1 -1
- package/dist/middleware/pre.d.ts +2 -2
- package/dist/middleware/pre.js +46 -27
- 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 +1 -1
- 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 +3 -3
- package/dist/middleware/serve-first-waypoint.js +8 -6
- package/dist/middleware/serve-first-waypoint.js.map +1 -1
- package/dist/middleware/session.js +14 -11
- package/dist/middleware/session.js.map +1 -1
- package/dist/middleware/skip-waypoint.d.ts +1 -1
- package/dist/middleware/skip-waypoint.js +5 -9
- package/dist/middleware/skip-waypoint.js.map +1 -1
- package/dist/middleware/steer-journey.d.ts +1 -1
- package/dist/middleware/steer-journey.js +16 -14
- 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 +1 -1
- package/dist/middleware/validate-fields.js +2 -5
- package/dist/middleware/validate-fields.js.map +1 -1
- package/dist/routes/ancillary.d.ts +3 -3
- package/dist/routes/ancillary.js +4 -4
- package/dist/routes/ancillary.js.map +1 -1
- package/dist/routes/journey.d.ts +2 -2
- package/dist/routes/journey.js +91 -39
- package/dist/routes/journey.js.map +1 -1
- package/dist/routes/static.d.ts +7 -5
- package/dist/routes/static.js +20 -19
- package/dist/routes/static.js.map +1 -1
- package/package.json +20 -19
- package/src/casa.js +133 -100
- package/src/lib/CasaTemplateLoader.js +24 -19
- package/src/lib/JourneyContext.js +190 -107
- package/src/lib/MutableRouter.js +72 -74
- package/src/lib/Plan.js +145 -97
- package/src/lib/ValidationError.js +25 -21
- package/src/lib/ValidatorFactory.js +17 -13
- package/src/lib/configuration-ingestor.js +147 -110
- package/src/lib/configure.js +34 -32
- package/src/lib/constants.js +9 -11
- package/src/lib/context-id-generators.js +40 -43
- package/src/lib/end-session.js +6 -6
- package/src/lib/field.js +69 -58
- package/src/lib/index.js +12 -12
- package/src/lib/logger.js +9 -9
- package/src/lib/mount.js +70 -74
- package/src/lib/nunjucks-filters.js +56 -59
- package/src/lib/nunjucks.js +23 -18
- package/src/lib/utils.js +78 -57
- package/src/lib/validators/dateObject.js +71 -60
- package/src/lib/validators/email.js +8 -8
- package/src/lib/validators/inArray.js +10 -11
- package/src/lib/validators/index.js +12 -14
- package/src/lib/validators/nino.js +29 -15
- package/src/lib/validators/postalAddressObject.js +87 -63
- package/src/lib/validators/range.js +14 -12
- package/src/lib/validators/regex.js +8 -8
- package/src/lib/validators/required.js +16 -16
- package/src/lib/validators/strlen.js +16 -14
- package/src/lib/validators/wordCount.js +22 -14
- package/src/lib/waypoint-url.js +64 -46
- package/src/middleware/body-parser.js +10 -10
- package/src/middleware/csrf.js +1 -1
- package/src/middleware/data.js +28 -24
- package/src/middleware/gather-fields.js +10 -9
- package/src/middleware/i18n.js +35 -37
- package/src/middleware/post.js +41 -21
- package/src/middleware/pre.js +62 -41
- package/src/middleware/progress-journey.js +32 -18
- package/src/middleware/sanitise-fields.js +43 -20
- package/src/middleware/serve-first-waypoint.js +14 -12
- package/src/middleware/session.js +74 -61
- package/src/middleware/skip-waypoint.js +8 -15
- package/src/middleware/steer-journey.js +40 -28
- package/src/middleware/strip-proxy-path.js +8 -7
- package/src/middleware/validate-fields.js +5 -12
- package/src/routes/ancillary.js +5 -7
- package/src/routes/journey.js +159 -85
- package/src/routes/static.js +62 -29
- package/views/casa/components/character-count/README.md +2 -2
- package/views/casa/components/checkboxes/README.md +6 -6
- package/views/casa/components/date-input/README.md +7 -7
- package/views/casa/components/input/README.md +2 -2
- package/views/casa/components/journey-form/README.md +33 -14
- package/views/casa/components/postal-address-object/README.md +4 -4
- package/views/casa/components/radios/README.md +6 -6
- package/views/casa/components/select/README.md +6 -6
- package/views/casa/components/textarea/README.md +2 -2
- package/views/casa/layouts/main.njk +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitise-fields.js","sourceRoot":"","sources":["../../src/middleware/sanitise-fields.js"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,0CAA0C;AAC1C,qEAAqE;;;;;AAErE,oDAAuB;AACvB,+DAA2C;AAC3C,iFAAsD;AAEtD,kBAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"sanitise-fields.js","sourceRoot":"","sources":["../../src/middleware/sanitise-fields.js"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare function _default({ plan
|
|
1
|
+
declare function _default({ plan }: Plan): ExpressRequestHandler[];
|
|
2
2
|
export default _default;
|
|
3
|
-
export type ExpressRequestHandler = import(
|
|
4
|
-
export type Plan = import(
|
|
3
|
+
export type ExpressRequestHandler = import("express").RequestHandler;
|
|
4
|
+
export type Plan = import("../casa").Plan;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const utils_js_1 = require("../lib/utils.js");
|
|
4
4
|
/**
|
|
5
|
+
* @typedef {import("express").RequestHandler} ExpressRequestHandler
|
|
5
6
|
* @access private
|
|
6
|
-
* @typedef {import('express').RequestHandler} ExpressRequestHandler
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
|
+
* @typedef {import("../casa").Plan} Plan
|
|
9
10
|
* @access private
|
|
10
|
-
* @typedef {import('../casa').Plan} Plan
|
|
11
11
|
*/
|
|
12
12
|
/**
|
|
13
13
|
* Redirect the user to the first Plan waypoint when they request the root /
|
|
@@ -16,11 +16,13 @@ const utils_js_1 = require("../lib/utils.js");
|
|
|
16
16
|
* @param {Plan} plan CASA Plan
|
|
17
17
|
* @returns {ExpressRequestHandler[]} Array of middleware
|
|
18
18
|
*/
|
|
19
|
-
exports.default = ({ plan
|
|
20
|
-
|
|
19
|
+
exports.default = ({ plan }) => [
|
|
20
|
+
(req, res) => {
|
|
21
|
+
const reqUrl = new URL(req.url, "https://placeholder.test/");
|
|
21
22
|
const reqPath = (0, utils_js_1.validateUrlPath)(`${req.baseUrl}${reqUrl.pathname}${plan.getWaypoints()[0]}`);
|
|
22
23
|
let reqParams = reqUrl.searchParams.toString();
|
|
23
|
-
reqParams = reqParams ? `?${reqParams}` :
|
|
24
|
+
reqParams = reqParams ? `?${reqParams}` : "";
|
|
24
25
|
res.redirect(302, `${reqPath}${reqParams}`);
|
|
25
|
-
}
|
|
26
|
+
},
|
|
27
|
+
];
|
|
26
28
|
//# sourceMappingURL=serve-first-waypoint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-first-waypoint.js","sourceRoot":"","sources":["../../src/middleware/serve-first-waypoint.js"],"names":[],"mappings":";;AAAA,8CAAkD;AAElD;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AACH,kBAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"serve-first-waypoint.js","sourceRoot":"","sources":["../../src/middleware/serve-first-waypoint.js"],"names":[],"mappings":";;AAAA,8CAAkD;AAElD;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AACH,kBAAe,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAA,0BAAe,EAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAC5D,CAAC;QACF,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC/C,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC"}
|
|
@@ -32,7 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
32
32
|
const express_session_1 = __importStar(require("express-session"));
|
|
33
33
|
const logger_js_1 = __importDefault(require("../lib/logger.js"));
|
|
34
34
|
const utils_js_1 = require("../lib/utils.js");
|
|
35
|
-
const log = (0, logger_js_1.default)(
|
|
35
|
+
const log = (0, logger_js_1.default)("middleware:session");
|
|
36
36
|
const sessionExpiryMiddleware = (ttl, getCookie, touchCookie, removeCookie) => (req, res, next) => {
|
|
37
37
|
var _a;
|
|
38
38
|
const lastModified = getCookie(req);
|
|
@@ -42,15 +42,15 @@ const sessionExpiryMiddleware = (ttl, getCookie, touchCookie, removeCookie) => (
|
|
|
42
42
|
// expiring; generate a new session, and create grace-period cookie.
|
|
43
43
|
// This will invalidate any CSRF tokens, so by letting the request POST
|
|
44
44
|
// requests through the user may see a 500 error response.
|
|
45
|
-
log.info(
|
|
45
|
+
log.info("Session is new, or grace period has expired. Regenerating session.");
|
|
46
46
|
req.session.regenerate((err) => {
|
|
47
47
|
if (err) {
|
|
48
48
|
next(err);
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
51
51
|
touchCookie(res);
|
|
52
|
-
if (req.method ===
|
|
53
|
-
log.info(
|
|
52
|
+
if (req.method === "POST") {
|
|
53
|
+
log.info("The CSRF token for this POST request will now be invalid for this regenerated session. Redirecting to app mount point.");
|
|
54
54
|
res.redirect(302, (0, utils_js_1.validateUrlPath)(`${req.baseUrl}/`));
|
|
55
55
|
}
|
|
56
56
|
else {
|
|
@@ -62,8 +62,8 @@ const sessionExpiryMiddleware = (ttl, getCookie, touchCookie, removeCookie) => (
|
|
|
62
62
|
else if (age > ttl) {
|
|
63
63
|
// Cookie has become stale and server session will have been removed;
|
|
64
64
|
// redirect to session-timeout
|
|
65
|
-
log.info(
|
|
66
|
-
const language = (_a = req.session.language) !== null && _a !== void 0 ? _a :
|
|
65
|
+
log.info("Session has timed out within grace period. Destroying session and redirecting to timeout page.");
|
|
66
|
+
const language = (_a = req.session.language) !== null && _a !== void 0 ? _a : "en";
|
|
67
67
|
req.session.destroy((err) => {
|
|
68
68
|
if (err) {
|
|
69
69
|
next(err);
|
|
@@ -75,7 +75,8 @@ const sessionExpiryMiddleware = (ttl, getCookie, touchCookie, removeCookie) => (
|
|
|
75
75
|
lang: language,
|
|
76
76
|
});
|
|
77
77
|
/* eslint-disable-next-line prefer-template */
|
|
78
|
-
res.redirect(302, (0, utils_js_1.validateUrlPath)(`${req.baseUrl}/session-timeout`) +
|
|
78
|
+
res.redirect(302, (0, utils_js_1.validateUrlPath)(`${req.baseUrl}/session-timeout`) +
|
|
79
|
+
`?${params.toString()}`);
|
|
79
80
|
}
|
|
80
81
|
});
|
|
81
82
|
}
|
|
@@ -89,14 +90,15 @@ const sessionExpiryMiddleware = (ttl, getCookie, touchCookie, removeCookie) => (
|
|
|
89
90
|
// - set the session cookie
|
|
90
91
|
// - parse request cookies
|
|
91
92
|
// - handle expiry of server-side session
|
|
92
|
-
function sessionMiddleware({ cookieParserMiddleware, secret, name, secure, ttl, cookieSameSite = true, cookiePath =
|
|
93
|
+
function sessionMiddleware({ cookieParserMiddleware, secret, name, secure, ttl, cookieSameSite = true, cookiePath = "/", store = new express_session_1.MemoryStore(), }) {
|
|
93
94
|
const commonCookieOptions = {
|
|
94
95
|
httpOnly: true,
|
|
95
96
|
path: cookiePath,
|
|
96
97
|
secure,
|
|
97
98
|
};
|
|
98
99
|
if (cookieSameSite !== false) {
|
|
99
|
-
commonCookieOptions.sameSite =
|
|
100
|
+
commonCookieOptions.sameSite =
|
|
101
|
+
cookieSameSite === true ? "Strict" : cookieSameSite;
|
|
100
102
|
}
|
|
101
103
|
const ttlGrace = 1800; // user will see session-timeout if session expires within 30mins
|
|
102
104
|
const touchCookieName = `${name}.t`;
|
|
@@ -104,8 +106,9 @@ function sessionMiddleware({ cookieParserMiddleware, secret, name, secure, ttl,
|
|
|
104
106
|
const getCookie = (req) => {
|
|
105
107
|
var _a;
|
|
106
108
|
// Disabled eslint as `touchCookieName` is a constant, known value
|
|
109
|
+
const lastModified = Date.parse(
|
|
107
110
|
/* eslint-disable-next-line security/detect-object-injection */
|
|
108
|
-
|
|
111
|
+
String((_a = req.signedCookies[touchCookieName]) !== null && _a !== void 0 ? _a : "1970-01-01T00:00:00+0000"));
|
|
109
112
|
return Number.isNaN(lastModified) ? 0 : Math.floor(lastModified * 0.001);
|
|
110
113
|
};
|
|
111
114
|
const touchCookie = (res) => {
|
|
@@ -113,7 +116,7 @@ function sessionMiddleware({ cookieParserMiddleware, secret, name, secure, ttl,
|
|
|
113
116
|
// a small period of time where a user will see the session-timeout message,
|
|
114
117
|
// which is important to avoid the confusion of simply being redirected back
|
|
115
118
|
// to the start of their journey.
|
|
116
|
-
res.cookie(touchCookieName,
|
|
119
|
+
res.cookie(touchCookieName, new Date(Date.now()).toUTCString(), touchCookieOptions);
|
|
117
120
|
};
|
|
118
121
|
const removeCookie = (res) => {
|
|
119
122
|
res.clearCookie(touchCookieName, touchCookieOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/middleware/session.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAAwE;AACxE,uEAAuE;AACvE,8BAA8B;AAC9B,mEAA8D;AAC9D,iEAAsC;AACtC,8CAAkD;AAElD,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,oBAAoB,CAAC,CAAC;AAEzC,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/middleware/session.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAAwE;AACxE,uEAAuE;AACvE,8BAA8B;AAC9B,mEAA8D;AAC9D,iEAAsC;AACtC,8CAAkD;AAElD,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,oBAAoB,CAAC,CAAC;AAEzC,MAAM,uBAAuB,GAC3B,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;;IAChE,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC;IAE1D,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,gEAAgE;QAChE,oEAAoE;QACpE,uEAAuE;QACvE,0DAA0D;QAC1D,GAAG,CAAC,IAAI,CACN,oEAAoE,CACrE,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7B,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,GAAG,CAAC,CAAC;gBACjB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC1B,GAAG,CAAC,IAAI,CACN,wHAAwH,CACzH,CAAC;oBACF,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAA,0BAAe,EAAC,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACrB,qEAAqE;QACrE,8BAA8B;QAC9B,GAAG,CAAC,IAAI,CACN,gGAAgG,CACjG,CAAC;QACF,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,mCAAI,IAAI,CAAC;QAC9C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;oBACjC,QAAQ,EAAE,GAAG,CAAC,WAAW;oBACzB,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;gBACH,8CAA8C;gBAC9C,GAAG,CAAC,QAAQ,CACV,GAAG,EACH,IAAA,0BAAe,EAAC,GAAG,GAAG,CAAC,OAAO,kBAAkB,CAAC;oBAC/C,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAC1B,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,WAAW,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC,CAAC;AAEJ,gBAAgB;AAChB,2BAA2B;AAC3B,0BAA0B;AAC1B,yCAAyC;AACzC,SAAwB,iBAAiB,CAAC,EACxC,sBAAsB,EACtB,MAAM,EACN,IAAI,EACJ,MAAM,EACN,GAAG,EACH,cAAc,GAAG,IAAI,EACrB,UAAU,GAAG,GAAG,EAChB,KAAK,GAAG,IAAI,6BAAW,EAAE,GAC1B;IACC,MAAM,mBAAmB,GAAG;QAC1B,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU;QAChB,MAAM;KACP,CAAC;IAEF,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;QAC7B,mBAAmB,CAAC,QAAQ;YAC1B,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,iEAAiE;IACxF,MAAM,eAAe,GAAG,GAAG,IAAI,IAAI,CAAC;IACpC,MAAM,kBAAkB,mCACnB,mBAAmB,KACtB,MAAM,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,EAC/B,MAAM,EAAE,IAAI,GACb,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE;;QACxB,kEAAkE;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK;QAC7B,+DAA+D;QAC/D,MAAM,CAAC,MAAA,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,mCAAI,0BAA0B,CAAC,CACzE,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;IAC3E,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,EAAE;QAC1B,0EAA0E;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,iCAAiC;QACjC,GAAG,CAAC,MAAM,CACR,eAAe,EACf,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAClC,kBAAkB,CACnB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE;QAC3B,GAAG,CAAC,WAAW,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,OAAO;QACL,IAAA,yBAAc,EAAC;YACb,MAAM;YACN,IAAI;YACJ,iBAAiB,EAAE,KAAK;YACxB,MAAM,EAAE,KAAK;YACb,MAAM,kCACD,mBAAmB,KACtB,MAAM,EAAE,IAAI,GACb;YACD,KAAK;SACN,CAAC;QACF,sBAAsB;QACtB,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC;KACnE,CAAC;AACJ,CAAC;AArED,oCAqEC"}
|
|
@@ -4,24 +4,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
7
|
const JourneyContext_js_1 = __importDefault(require("../lib/JourneyContext.js"));
|
|
9
8
|
const waypoint_url_js_1 = __importDefault(require("../lib/waypoint-url.js"));
|
|
10
9
|
const logger_js_1 = __importDefault(require("../lib/logger.js"));
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
exports.default = ({ waypoint, }) => [
|
|
10
|
+
const log = (0, logger_js_1.default)("middleware:skip-waypoint");
|
|
11
|
+
exports.default = ({ waypoint }) => [
|
|
14
12
|
(req, res, next) => {
|
|
15
|
-
if (!
|
|
13
|
+
if (!Object.hasOwn(req.query, "skipto")) {
|
|
16
14
|
return next();
|
|
17
15
|
}
|
|
18
16
|
const skipTo = String(req.query.skipto);
|
|
19
|
-
// Inject a special `
|
|
17
|
+
// Inject a special `__skip__` attribute into this waypoint's data
|
|
20
18
|
log.info(`Marking waypoint "${waypoint}" as skipped`);
|
|
21
19
|
req.casa.journeyContext.clearValidationErrorsForPage(waypoint);
|
|
22
|
-
req.casa.journeyContext.
|
|
23
|
-
__skipped__: true,
|
|
24
|
-
});
|
|
20
|
+
req.casa.journeyContext.setSkipped(waypoint, { to: skipTo });
|
|
25
21
|
JourneyContext_js_1.default.putContext(req.session, req.casa.journeyContext);
|
|
26
22
|
const redirectUrl = (0, waypoint_url_js_1.default)({
|
|
27
23
|
mountUrl: `${req.baseUrl}/`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skip-waypoint.js","sourceRoot":"","sources":["../../src/middleware/skip-waypoint.js"],"names":[],"mappings":";AAAA,6BAA6B;;;;;AAE7B,
|
|
1
|
+
{"version":3,"file":"skip-waypoint.js","sourceRoot":"","sources":["../../src/middleware/skip-waypoint.js"],"names":[],"mappings":";AAAA,6BAA6B;;;;;AAE7B,iFAAsD;AACtD,6EAAiD;AACjD,iEAAsC;AAEtC,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,0BAA0B,CAAC,CAAC;AAE/C,kBAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC/B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAExC,kEAAkE;QAClE,GAAG,CAAC,IAAI,CAAC,qBAAqB,QAAQ,cAAc,CAAC,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,2BAAc,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,IAAA,yBAAW,EAAC;YAC9B,QAAQ,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG;YAC3B,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YAC/B,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;SACxC,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,qBAAqB,WAAW,qBAAqB,QAAQ,GAAG,CAAC,CAAC;QAE5E,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -7,10 +7,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
const waypoint_url_js_1 = __importDefault(require("../lib/waypoint-url.js"));
|
|
9
9
|
const logger_js_1 = __importDefault(require("../lib/logger.js"));
|
|
10
|
-
const log = (0, logger_js_1.default)(
|
|
10
|
+
const log = (0, logger_js_1.default)("middleware:steer-journey");
|
|
11
11
|
/**
|
|
12
|
+
* @typedef {import("../lib/Plan")} Plan
|
|
12
13
|
* @access private
|
|
13
|
-
* @typedef {import('../lib/Plan')} Plan
|
|
14
14
|
*/
|
|
15
15
|
/**
|
|
16
16
|
* This sits in front of all other journey middleware and prevents the user from
|
|
@@ -21,7 +21,7 @@ const log = (0, logger_js_1.default)('middleware:steer-journey');
|
|
|
21
21
|
* @param {Plan} obj.plan CASA Plan
|
|
22
22
|
* @returns {void}
|
|
23
23
|
*/
|
|
24
|
-
exports.default = ({ waypoint, plan
|
|
24
|
+
exports.default = ({ waypoint, plan }) => [
|
|
25
25
|
(req, res, next) => {
|
|
26
26
|
const mountUrl = `${req.baseUrl}/`;
|
|
27
27
|
// If the requested waypoint doesn't exist in the traversed journey, send
|
|
@@ -41,8 +41,8 @@ exports.default = ({ waypoint, plan, }) => [
|
|
|
41
41
|
// Edit mode
|
|
42
42
|
// Cannot be in edit mode if we're already on the `editorigin` URL
|
|
43
43
|
if (req.casa.editMode) {
|
|
44
|
-
const { pathname: currentPathname } = new URL(req.originalUrl,
|
|
45
|
-
const { pathname: editOriginPathname } = new URL(req.casa.editOrigin,
|
|
44
|
+
const { pathname: currentPathname } = new URL(req.originalUrl, "https://placeholder.test/");
|
|
45
|
+
const { pathname: editOriginPathname } = new URL(req.casa.editOrigin, "https://placeholder.test/");
|
|
46
46
|
if (editOriginPathname === currentPathname) {
|
|
47
47
|
log.debug(`Disabling edit mode as we are on the edit origin (${req.casa.editOrigin})`);
|
|
48
48
|
req.casa.editMode = false;
|
|
@@ -56,16 +56,18 @@ exports.default = ({ waypoint, plan, }) => [
|
|
|
56
56
|
// Calculate URL for the "back" link
|
|
57
57
|
const [prevRoute] = plan.traversePrevRoutes(req.casa.journeyContext, {
|
|
58
58
|
startWaypoint: waypoint,
|
|
59
|
-
stopCondition: () =>
|
|
59
|
+
stopCondition: () => true, // stop at the first one
|
|
60
60
|
});
|
|
61
|
-
res.locals.casa.journeyPreviousUrl = prevRoute.target
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
res.locals.casa.journeyPreviousUrl = prevRoute.target
|
|
62
|
+
? (0, waypoint_url_js_1.default)({
|
|
63
|
+
mountUrl,
|
|
64
|
+
journeyContext: req.casa.journeyContext,
|
|
65
|
+
waypoint: prevRoute.target,
|
|
66
|
+
routeName: "prev",
|
|
67
|
+
edit: req.casa.editMode,
|
|
68
|
+
editOrigin: req.casa.editOrigin,
|
|
69
|
+
})
|
|
70
|
+
: undefined;
|
|
69
71
|
return next();
|
|
70
72
|
},
|
|
71
73
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steer-journey.js","sourceRoot":"","sources":["../../src/middleware/steer-journey.js"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,+BAA+B;;;;;AAE/B,6EAAiD;AACjD,iEAAsC;AAEtC,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,0BAA0B,CAAC,CAAC;AAE/C;;;GAGG;AAEH;;;;;;;;GAQG;AACH,kBAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"steer-journey.js","sourceRoot":"","sources":["../../src/middleware/steer-journey.js"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,+BAA+B;;;;;AAE/B,6EAAiD;AACjD,iEAAsC;AAEtC,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,0BAA0B,CAAC,CAAC;AAE/C;;;GAGG;AAEH;;;;;;;;GAQG;AACH,kBAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC;QAEnC,yEAAyE;QACzE,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnD,GAAG,CAAC,KAAK,CACP,wBAAwB,QAAQ,8CAA8C,UAAU,GAAG,CAC5F,CAAC;YAEF,OAAO,GAAG,CAAC,QAAQ,CACjB,GAAG,EACH,IAAA,yBAAW,EAAC;gBACV,QAAQ,EAAE,UAAU;gBACpB,QAAQ;gBACR,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;gBACvC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;aAChC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,YAAY;QACZ,kEAAkE;QAClE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,GAAG,CAC3C,GAAG,CAAC,WAAW,EACf,2BAA2B,CAC5B,CAAC;YACF,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,IAAI,GAAG,CAC9C,GAAG,CAAC,IAAI,CAAC,UAAU,EACnB,2BAA2B,CAC5B,CAAC;YAEF,IAAI,kBAAkB,KAAK,eAAe,EAAE,CAAC;gBAC3C,GAAG,CAAC,KAAK,CACP,qDAAqD,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAC5E,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAClC,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,4EAA4E;QAC5E,4EAA4E;QAC5E,gEAAgE;QAEhE,oCAAoC;QACpC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YACnE,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,wBAAwB;SACpD,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,MAAM;YACnD,CAAC,CAAC,IAAA,yBAAW,EAAC;gBACV,QAAQ;gBACR,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;gBACvC,QAAQ,EAAE,SAAS,CAAC,MAAM;gBAC1B,SAAS,EAAE,MAAM;gBACjB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;aAChC,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;CACF,CAAC"}
|
|
@@ -19,8 +19,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
const logger_js_1 = __importDefault(require("../lib/logger.js"));
|
|
22
|
-
const log = (0, logger_js_1.default)(
|
|
23
|
-
exports.default = ({ mountUrl =
|
|
22
|
+
const log = (0, logger_js_1.default)("casa:middleware:strip-proxy-path");
|
|
23
|
+
exports.default = ({ mountUrl = "/" }) => [
|
|
24
24
|
(req, res, next) => {
|
|
25
25
|
// TODO:
|
|
26
26
|
// We _may_ have to start tracking the various prefix in order to differentiate
|
|
@@ -28,7 +28,7 @@ exports.default = ({ mountUrl = '/', }) => [
|
|
|
28
28
|
var _a;
|
|
29
29
|
// Assume everything before `mountUrl` is the proxy path prefix and remove it
|
|
30
30
|
req.originalBaseUrl = (_a = req.originalBaseUrl) !== null && _a !== void 0 ? _a : req.baseUrl;
|
|
31
|
-
req.baseUrl = mountUrl.replace(/\/$/,
|
|
31
|
+
req.baseUrl = mountUrl.replace(/\/$/, "");
|
|
32
32
|
// If the app has been mounted directly on the specific `mountUrl`, then
|
|
33
33
|
// there's nothing we need to do and can let this request pass-through.
|
|
34
34
|
if (req.baseUrl === req.originalBaseUrl) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip-proxy-path.js","sourceRoot":"","sources":["../../src/middleware/strip-proxy-path.js"],"names":[],"mappings":";AAAA,2DAA2D;AAC3D,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,wEAAwE;AACxE,gEAAgE;AAChE,sEAAsE;AACtE,4CAA4C;AAC5C,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,EAAE;AACF,oDAAoD;;;;;AAEpD,iEAAsC;AAEtC,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,kCAAkC,CAAC,CAAC;AAEvD,kBAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"strip-proxy-path.js","sourceRoot":"","sources":["../../src/middleware/strip-proxy-path.js"],"names":[],"mappings":";AAAA,2DAA2D;AAC3D,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,wEAAwE;AACxE,gEAAgE;AAChE,sEAAsE;AACtE,4CAA4C;AAC5C,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,EAAE;AACF,oDAAoD;;;;;AAEpD,iEAAsC;AAEtC,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,kCAAkC,CAAC,CAAC;AAEvD,kBAAe,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjB,QAAQ;QACR,+EAA+E;QAC/E,mDAAmD;;QAEnD,6EAA6E;QAC7E,GAAG,CAAC,eAAe,GAAG,MAAA,GAAG,CAAC,eAAe,mCAAI,GAAG,CAAC,OAAO,CAAC;QACzD,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE1C,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,eAAe,EAAE,CAAC;YACxC,IAAI,EAAE,CAAC;QACT,CAAC;aAAM,IAAI,GAAG,CAAC,2BAA2B,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC,2BAA2B,CAAC;YACvC,IAAI,EAAE,CAAC;QACT,CAAC;aAAM,CAAC;YACN,4DAA4D;YAC5D,wEAAwE;YACxE,mEAAmE;YACnE,uDAAuD;YACvD,GAAG,CAAC,KAAK,CAAC,2CAA2C,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACxE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CACvC,IAAI,MAAM,CAAC,QAAQ,QAAQ,EAAE,CAAC,EAC9B,QAAQ,CACT,CAAC;YACF,GAAG,CAAC,KAAK,CAAC,0CAA0C,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACvE,sDAAsD;YAEtD,qEAAqE;YACrE,2DAA2D;YAC3D,GAAG,CAAC,2BAA2B,GAAG,IAAI,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -21,7 +21,7 @@ const updateContext = ({ waypoint, errors = null, journeyContext, session, }) =>
|
|
|
21
21
|
},
|
|
22
22
|
});
|
|
23
23
|
};
|
|
24
|
-
exports.default = ({ waypoint, fields = [], plan
|
|
24
|
+
exports.default = ({ waypoint, fields = [], plan }) => [
|
|
25
25
|
(req, res, next) => {
|
|
26
26
|
var _a, _b;
|
|
27
27
|
const mountUrl = `${req.baseUrl}/`;
|
|
@@ -42,10 +42,7 @@ exports.default = ({ waypoint, fields = [], plan, }) => [
|
|
|
42
42
|
journeyContext: req.casa.journeyContext,
|
|
43
43
|
};
|
|
44
44
|
/* eslint-enable security/detect-object-injection */
|
|
45
|
-
errors = [
|
|
46
|
-
...errors,
|
|
47
|
-
...field.runValidators(context),
|
|
48
|
-
];
|
|
45
|
+
errors = [...errors, ...field.runValidators(context)];
|
|
49
46
|
}
|
|
50
47
|
// Validation passed with no errors
|
|
51
48
|
if (!errors.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-fields.js","sourceRoot":"","sources":["../../src/middleware/validate-fields.js"],"names":[],"mappings":";;;;;AAAA,oDAAoD;AACpD,iFAAsD;AACtD,sDAA6D;AAE7D,MAAM,aAAa,GAAG,CAAC,EACrB,QAAQ,EACR,MAAM,GAAG,IAAI,EACb,cAAc,EACd,OAAO,GACR,EAAE,EAAE;IACH,uBAAuB;IACvB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,cAAc,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,kBAAkB;IAClB,2BAAc,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE;QACjD,QAAQ,EAAE;YACR,gBAAgB,EAAE,qCAAsB;SACzC;KACF,CAAC,CAAC;AACL,CAAC,
|
|
1
|
+
{"version":3,"file":"validate-fields.js","sourceRoot":"","sources":["../../src/middleware/validate-fields.js"],"names":[],"mappings":";;;;;AAAA,oDAAoD;AACpD,iFAAsD;AACtD,sDAA6D;AAE7D,MAAM,aAAa,GAAG,CAAC,EACrB,QAAQ,EACR,MAAM,GAAG,IAAI,EACb,cAAc,EACd,OAAO,GACR,EAAE,EAAE;IACH,uBAAuB;IACvB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,cAAc,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,kBAAkB;IAClB,2BAAc,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE;QACjD,QAAQ,EAAE;YACR,gBAAgB,EAAE,qCAAsB;SACzC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAClD,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;;QACjB,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC;QAEnC,uEAAuE;QACvE,2CAA2C;QAC3C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,qDAAqD;YACrD,yEAAyE;YACzE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAA,MAAA,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,0CAAG,QAAQ,CAAC,0CAAG,SAAS,CAAC,CAAC;YAEzE,2BAA2B;YAC3B,MAAM,OAAO,GAAG;gBACd,SAAS;gBACT,UAAU;gBACV,QAAQ;gBACR,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;aACxC,CAAC;YACF,oDAAoD;YAEpD,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,aAAa,CAAC;gBACZ,QAAQ;gBACR,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ;gBACR,IAAI;gBACJ,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;aACxC,CAAC,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,0EAA0E;QAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QAED,qDAAqD;QACrD,aAAa,CAAC;YACZ,MAAM;YACN,QAAQ;YACR,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ;YACR,IAAI;YACJ,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;SACxC,CAAC,CAAC;QAEH,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;CACF,CAAC"}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Create an instance of the ancillary router.
|
|
7
7
|
*
|
|
8
|
-
* @access private
|
|
9
8
|
* @param {AncillaryRouterOptions} options Options
|
|
10
9
|
* @returns {MutableRouter} ExpressJS Router instance
|
|
10
|
+
* @access private
|
|
11
11
|
*/
|
|
12
|
-
export default function ancillaryRouter({ sessionTtl
|
|
12
|
+
export default function ancillaryRouter({ sessionTtl }: AncillaryRouterOptions): MutableRouter;
|
|
13
13
|
/**
|
|
14
14
|
* Options to configure static router
|
|
15
15
|
*/
|
|
@@ -19,4 +19,4 @@ export type AncillaryRouterOptions = {
|
|
|
19
19
|
*/
|
|
20
20
|
sessionTtl: number;
|
|
21
21
|
};
|
|
22
|
-
import MutableRouter from
|
|
22
|
+
import MutableRouter from "../lib/MutableRouter.js";
|
package/dist/routes/ancillary.js
CHANGED
|
@@ -11,16 +11,16 @@ const MutableRouter_js_1 = __importDefault(require("../lib/MutableRouter.js"));
|
|
|
11
11
|
/**
|
|
12
12
|
* Create an instance of the ancillary router.
|
|
13
13
|
*
|
|
14
|
-
* @access private
|
|
15
14
|
* @param {AncillaryRouterOptions} options Options
|
|
16
15
|
* @returns {MutableRouter} ExpressJS Router instance
|
|
16
|
+
* @access private
|
|
17
17
|
*/
|
|
18
|
-
function ancillaryRouter({ sessionTtl
|
|
18
|
+
function ancillaryRouter({ sessionTtl }) {
|
|
19
19
|
// Router
|
|
20
20
|
const router = new MutableRouter_js_1.default();
|
|
21
21
|
// Session timeout
|
|
22
|
-
router.all(
|
|
23
|
-
res.render(
|
|
22
|
+
router.all("/session-timeout", (req, res) => {
|
|
23
|
+
res.render("casa/session-timeout.njk", {
|
|
24
24
|
sessionTtl: Math.floor(sessionTtl / 60),
|
|
25
25
|
});
|
|
26
26
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ancillary.js","sourceRoot":"","sources":["../../src/routes/ancillary.js"],"names":[],"mappings":";;;;;AAAA,+EAAoD;AAEpD;;;GAGG;AAEH;;;;;;GAMG;AACH,SAAwB,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"ancillary.js","sourceRoot":"","sources":["../../src/routes/ancillary.js"],"names":[],"mappings":";;;;;AAAA,+EAAoD;AAEpD;;;GAGG;AAEH;;;;;;GAMG;AACH,SAAwB,eAAe,CAAC,EAAE,UAAU,EAAE;IACpD,SAAS;IACT,MAAM,MAAM,GAAG,IAAI,0BAAa,EAAE,CAAC;IAEnC,kBAAkB;IAClB,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,GAAG,CAAC,MAAM,CAAC,0BAA0B,EAAE;YACrC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,kCAYC"}
|
package/dist/routes/journey.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Create an instance of the router for all waypoints visited during a Journey
|
|
3
3
|
* through the Plan.
|
|
4
4
|
*
|
|
5
|
-
* @access private
|
|
6
5
|
* @param {JourneyRouterOptions} opts Options
|
|
7
6
|
* @returns {MutableRouter} Router
|
|
7
|
+
* @access private
|
|
8
8
|
*/
|
|
9
9
|
export default function journeyRouter({ globalHooks, pages, plan, csrfMiddleware, globalErrorVisibility, }: JourneyRouterOptions): MutableRouter;
|
|
10
10
|
/**
|
|
@@ -28,4 +28,4 @@ export type JourneyRouterOptions = {
|
|
|
28
28
|
*/
|
|
29
29
|
csrfMiddleware: Function[];
|
|
30
30
|
};
|
|
31
|
-
import MutableRouter from
|
|
31
|
+
import MutableRouter from "../lib/MutableRouter.js";
|