@dwp/govuk-casa 8.15.0 → 9.1.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 +2 -1
- package/dist/assets/css/casa.css.map +1 -0
- package/dist/casa.d.ts +122 -99
- package/dist/casa.js +120 -88
- 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 +38 -40
- package/dist/lib/JourneyContext.js +89 -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 +24 -29
- package/dist/lib/field.js +41 -70
- 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 +12 -17
- 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 -26
- 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 +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 +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 -20
- package/dist/routes/static.js.map +1 -1
- package/package.json +17 -16
- package/src/casa.js +134 -102
- package/src/lib/CasaTemplateLoader.js +24 -19
- package/src/lib/JourneyContext.js +147 -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 +74 -78
- package/src/lib/index.js +12 -12
- package/src/lib/logger.js +9 -9
- package/src/lib/mount.js +70 -80
- 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 -40
- 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 +7 -9
- 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 -30
- 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/partials/scripts.njk +5 -3
- package/views/casa/partials/styles.njk +1 -4
- package/dist/assets/css/casa-ie8.css +0 -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":"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"}
|
|
@@ -9,10 +9,10 @@ const JourneyContext_js_1 = __importDefault(require("../lib/JourneyContext.js"))
|
|
|
9
9
|
const waypoint_url_js_1 = __importDefault(require("../lib/waypoint-url.js"));
|
|
10
10
|
const logger_js_1 = __importDefault(require("../lib/logger.js"));
|
|
11
11
|
const { has } = lodash_1.default;
|
|
12
|
-
const log = (0, logger_js_1.default)(
|
|
13
|
-
exports.default = ({ waypoint
|
|
12
|
+
const log = (0, logger_js_1.default)("middleware:skip-waypoint");
|
|
13
|
+
exports.default = ({ waypoint }) => [
|
|
14
14
|
(req, res, next) => {
|
|
15
|
-
if (!has(req.query,
|
|
15
|
+
if (!has(req.query, "skipto")) {
|
|
16
16
|
return next();
|
|
17
17
|
}
|
|
18
18
|
const skipTo = String(req.query.skipto);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skip-waypoint.js","sourceRoot":"","sources":["../../src/middleware/skip-waypoint.js"],"names":[],"mappings":";AAAA,6BAA6B;;;;;AAE7B,oDAA4B;AAC5B,iFAAsD;AACtD,6EAAiD;AACjD,iEAAsC;AAEtC,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAM,CAAC;AAEvB,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,0BAA0B,CAAC,CAAC;AAE/C,kBAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"skip-waypoint.js","sourceRoot":"","sources":["../../src/middleware/skip-waypoint.js"],"names":[],"mappings":";AAAA,6BAA6B;;;;;AAE7B,oDAA4B;AAC5B,iFAAsD;AACtD,6EAAiD;AACjD,iEAAsC;AAEtC,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAM,CAAC;AAEvB,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,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAExC,qEAAqE;QACrE,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,cAAc,CAAC,QAAQ,EAAE;YAC/C,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,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(fieldValue, 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";
|