hof 20.0.0-redis-beta.32-redis-beta → 20.0.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/.github/workflows/automate-publish.yml +1 -1
- package/.github/workflows/automate-tag.yml +4 -4
- package/.nyc_output/7c548a7f-5c40-44b2-b9fb-648341a23d6f.json +1 -0
- package/.nyc_output/processinfo/7c548a7f-5c40-44b2-b9fb-648341a23d6f.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/.vscode/settings.json +6 -0
- package/README.md +6 -0
- package/components/notify/notify.js +1 -1
- package/config/hof-defaults.js +1 -2
- package/config/sanitisation-rules.js +20 -17
- package/controller/base-controller.js +5 -3
- package/controller/controller.js +5 -0
- package/frontend/govuk-template/govuk_template_generated.html +104 -0
- package/frontend/template-partials/views/layout.html +2 -2
- package/frontend/template-partials/views/partials/maincontent-left.html +2 -2
- package/frontend/template-partials/views/partials/navigation.html +2 -2
- package/frontend/template-partials/views/partials/summary-table-row.html +2 -2
- package/frontend/template-partials/views/session-timeout.html +2 -1
- package/index.js +1 -1
- package/lib/health.js +1 -1
- package/lib/sessions.js +1 -1
- package/middleware/errors.js +2 -0
- package/middleware/rate-limiter.js +1 -3
- package/package.json +5 -4
- package/sandbox/.env +1 -0
- package/sandbox/apps/sandbox/translations/en/default.json +15 -36
- package/sandbox/public/css/app.css +6605 -12
- package/sandbox/public/js/bundle.js +2792 -22
- package/sandbox/server.js +1 -1
- package/wizard/middleware/check-progress.js +36 -1
- package/.nyc_output/cb764db8-e9f0-43bb-b3b1-7af57bb79bb5.json +0 -1
- package/.nyc_output/processinfo/cb764db8-e9f0-43bb-b3b1-7af57bb79bb5.json +0 -1
package/sandbox/server.js
CHANGED
@@ -28,6 +28,41 @@ module.exports = (route, controller, steps, begin) => {
|
|
28
28
|
return _.uniq(allSteps);
|
29
29
|
};
|
30
30
|
|
31
|
+
// Gets all the possible routes
|
32
|
+
const walkAllPossibleSteps = (stepName, allStepsInService, allVisitedSteps) => {
|
33
|
+
const stepIncludingFieldsAndForks = allStepsInService[stepName];
|
34
|
+
if (!stepIncludingFieldsAndForks) { return; }
|
35
|
+
|
36
|
+
const forkTargets = _.map(stepIncludingFieldsAndForks.forks, 'target') || [];
|
37
|
+
const nextStep = stepIncludingFieldsAndForks.next || '';
|
38
|
+
|
39
|
+
// If there is no next step or fork, then we have reached the end of the journey
|
40
|
+
if (!forkTargets.length && !nextStep) {
|
41
|
+
allVisitedSteps.push(stepName);
|
42
|
+
// eslint-disable-next-line consistent-return
|
43
|
+
return _.uniq(allVisitedSteps);
|
44
|
+
}
|
45
|
+
|
46
|
+
const nextStepsAndForks = _.uniq(forkTargets.concat(nextStep));
|
47
|
+
|
48
|
+
// We need to transverse through all 'Next' and 'Forks' for this route
|
49
|
+
nextStepsAndForks.map(each => {
|
50
|
+
if (!allVisitedSteps.includes(each)) {
|
51
|
+
allVisitedSteps.push(each);
|
52
|
+
walkAllPossibleSteps(each, allStepsInService, allVisitedSteps);
|
53
|
+
}
|
54
|
+
});
|
55
|
+
};
|
56
|
+
|
57
|
+
// Create a list of all visited steps
|
58
|
+
const createAllVisitedSteps = (stepName, allStepsInService) => {
|
59
|
+
const allVisitedSteps = [stepName];
|
60
|
+
if (allStepsInService[stepName]) {
|
61
|
+
walkAllPossibleSteps(stepName, allStepsInService, allVisitedSteps);
|
62
|
+
}
|
63
|
+
return _.uniq(allVisitedSteps);
|
64
|
+
};
|
65
|
+
|
31
66
|
const invalidateStep = (stepName, scopedSteps, sessionModel) => {
|
32
67
|
debug('Invalidating', stepName);
|
33
68
|
const step = scopedSteps[stepName] || {};
|
@@ -55,7 +90,7 @@ module.exports = (route, controller, steps, begin) => {
|
|
55
90
|
debug('next', nextStep);
|
56
91
|
debug('potential paths', potentialPaths);
|
57
92
|
// if we're following a loop then allow the loop to be invalidated
|
58
|
-
const whitelist = isLoop(nextStep, req.path) ? [route] :
|
93
|
+
const whitelist = isLoop(nextStep, req.path) ? [route] : createAllVisitedSteps(nextStep, steps);
|
59
94
|
// aggregate all potential journeys from the invalidating step
|
60
95
|
const invalidateSteps = potentialPaths.reduce((arr, step) => arr.concat(getAllPossibleSteps(step, steps)), []);
|
61
96
|
|