@dwp/govuk-casa 9.6.6 → 10.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/dist/assets/css/casa.css +1 -1
- package/dist/assets/css/casa.css.map +1 -1
- package/dist/casa.d.ts +81 -41
- package/dist/casa.d.ts.map +1 -0
- package/dist/casa.js +72 -99
- package/dist/core-plugins/edit-snapshot/src/configure.d.ts +1 -0
- package/dist/core-plugins/edit-snapshot/src/configure.d.ts.map +1 -0
- package/dist/core-plugins/edit-snapshot/src/configure.js +7 -14
- package/dist/core-plugins/edit-snapshot/src/index.d.ts +1 -0
- package/dist/core-plugins/edit-snapshot/src/index.d.ts.map +1 -0
- package/dist/core-plugins/edit-snapshot/src/index.js +3 -9
- package/dist/core-plugins/edit-snapshot/src/post-steer-hook.d.ts +2 -1
- package/dist/core-plugins/edit-snapshot/src/post-steer-hook.d.ts.map +1 -0
- package/dist/core-plugins/edit-snapshot/src/post-steer-hook.js +8 -13
- package/dist/core-plugins/edit-snapshot/src/pre-steer-hook.d.ts +2 -1
- package/dist/core-plugins/edit-snapshot/src/pre-steer-hook.d.ts.map +1 -0
- package/dist/core-plugins/edit-snapshot/src/pre-steer-hook.js +13 -18
- package/dist/core-plugins/edit-snapshot/src/utils.d.ts +8 -5
- package/dist/core-plugins/edit-snapshot/src/utils.d.ts.map +1 -0
- package/dist/core-plugins/edit-snapshot/src/utils.js +37 -19
- package/dist/core-plugins/index.d.ts +1 -0
- package/dist/core-plugins/index.d.ts.map +1 -0
- package/dist/core-plugins/index.js +1 -9
- package/dist/lib/CasaTemplateLoader.d.ts +1 -0
- package/dist/lib/CasaTemplateLoader.d.ts.map +1 -0
- package/dist/lib/CasaTemplateLoader.js +2 -6
- package/dist/lib/JourneyContext.d.ts +22 -11
- package/dist/lib/JourneyContext.d.ts.map +1 -0
- package/dist/lib/JourneyContext.js +40 -45
- package/dist/lib/MutableRouter.d.ts +74 -55
- package/dist/lib/MutableRouter.d.ts.map +1 -0
- package/dist/lib/MutableRouter.js +48 -45
- package/dist/lib/NullObject.d.ts +3 -0
- package/dist/lib/NullObject.d.ts.map +1 -0
- package/dist/lib/NullObject.js +3 -0
- package/dist/lib/Plan.d.ts +2 -1
- package/dist/lib/Plan.d.ts.map +1 -0
- package/dist/lib/Plan.js +44 -62
- package/dist/lib/ValidationError.d.ts +2 -1
- package/dist/lib/ValidationError.d.ts.map +1 -0
- package/dist/lib/ValidationError.js +3 -11
- package/dist/lib/ValidatorFactory.d.ts +5 -6
- package/dist/lib/ValidatorFactory.d.ts.map +1 -0
- package/dist/lib/ValidatorFactory.js +4 -12
- package/dist/lib/configuration-ingestor.d.ts +10 -22
- package/dist/lib/configuration-ingestor.d.ts.map +1 -0
- package/dist/lib/configuration-ingestor.js +61 -143
- package/dist/lib/configure.d.ts +2 -1
- package/dist/lib/configure.d.ts.map +1 -0
- package/dist/lib/configure.js +40 -52
- package/dist/lib/constants.d.ts +1 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +8 -12
- package/dist/lib/context-id-generators.d.ts +1 -0
- package/dist/lib/context-id-generators.d.ts.map +1 -0
- package/dist/lib/context-id-generators.js +4 -9
- package/dist/lib/end-session.d.ts +2 -1
- package/dist/lib/end-session.d.ts.map +1 -0
- package/dist/lib/end-session.js +4 -11
- package/dist/lib/field.d.ts +2 -1
- package/dist/lib/field.d.ts.map +1 -0
- package/dist/lib/field.js +11 -21
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +13 -65
- package/dist/lib/logger.d.ts +25 -2
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +18 -9
- package/dist/lib/mount.d.ts +1 -0
- package/dist/lib/mount.d.ts.map +1 -0
- package/dist/lib/mount.js +10 -16
- package/dist/lib/nunjucks-filters.d.ts +7 -3
- package/dist/lib/nunjucks-filters.d.ts.map +1 -0
- package/dist/lib/nunjucks-filters.js +58 -71
- package/dist/lib/nunjucks.d.ts +2 -2
- package/dist/lib/nunjucks.d.ts.map +1 -0
- package/dist/lib/nunjucks.js +12 -25
- package/dist/lib/utils.d.ts +4 -2
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +14 -28
- package/dist/lib/validators/dateObject.d.ts +1 -0
- package/dist/lib/validators/dateObject.d.ts.map +1 -0
- package/dist/lib/validators/dateObject.js +14 -21
- package/dist/lib/validators/email.d.ts +1 -0
- package/dist/lib/validators/email.d.ts.map +1 -0
- package/dist/lib/validators/email.js +8 -15
- package/dist/lib/validators/inArray.d.ts +1 -0
- package/dist/lib/validators/inArray.d.ts.map +1 -0
- package/dist/lib/validators/inArray.js +8 -15
- package/dist/lib/validators/index.d.ts +1 -0
- package/dist/lib/validators/index.d.ts.map +1 -0
- package/dist/lib/validators/index.js +21 -27
- package/dist/lib/validators/nino.d.ts +1 -0
- package/dist/lib/validators/nino.d.ts.map +1 -0
- package/dist/lib/validators/nino.js +6 -13
- package/dist/lib/validators/postalAddressObject.d.ts +1 -0
- package/dist/lib/validators/postalAddressObject.d.ts.map +1 -0
- package/dist/lib/validators/postalAddressObject.js +12 -19
- package/dist/lib/validators/range.d.ts +1 -0
- package/dist/lib/validators/range.d.ts.map +1 -0
- package/dist/lib/validators/range.js +6 -13
- package/dist/lib/validators/regex.d.ts +1 -0
- package/dist/lib/validators/regex.d.ts.map +1 -0
- package/dist/lib/validators/regex.js +6 -13
- package/dist/lib/validators/required.d.ts +1 -0
- package/dist/lib/validators/required.d.ts.map +1 -0
- package/dist/lib/validators/required.js +9 -17
- package/dist/lib/validators/strlen.d.ts +1 -0
- package/dist/lib/validators/strlen.d.ts.map +1 -0
- package/dist/lib/validators/strlen.js +6 -13
- package/dist/lib/validators/wordCount.d.ts +1 -0
- package/dist/lib/validators/wordCount.d.ts.map +1 -0
- package/dist/lib/validators/wordCount.js +6 -13
- package/dist/lib/waypoint-url.d.ts +3 -2
- package/dist/lib/waypoint-url.d.ts.map +1 -0
- package/dist/lib/waypoint-url.js +12 -19
- package/dist/middleware/body-parser.d.ts +1 -0
- package/dist/middleware/body-parser.d.ts.map +1 -0
- package/dist/middleware/body-parser.js +4 -9
- package/dist/middleware/csrf.d.ts +1 -0
- package/dist/middleware/csrf.d.ts.map +1 -0
- package/dist/middleware/csrf.js +4 -8
- package/dist/middleware/data.d.ts +2 -3
- package/dist/middleware/data.d.ts.map +1 -0
- package/dist/middleware/data.js +23 -25
- package/dist/middleware/gather-fields.d.ts +3 -1
- package/dist/middleware/gather-fields.d.ts.map +1 -0
- package/dist/middleware/gather-fields.js +13 -14
- package/dist/middleware/i18n.d.ts +1 -0
- package/dist/middleware/i18n.d.ts.map +1 -0
- package/dist/middleware/i18n.js +26 -31
- package/dist/middleware/post.d.ts +1 -0
- package/dist/middleware/post.d.ts.map +1 -0
- package/dist/middleware/post.js +3 -10
- package/dist/middleware/pre.d.ts +2 -1
- package/dist/middleware/pre.d.ts.map +1 -0
- package/dist/middleware/pre.js +6 -12
- package/dist/middleware/progress-journey.d.ts +5 -3
- package/dist/middleware/progress-journey.d.ts.map +1 -0
- package/dist/middleware/progress-journey.js +20 -18
- package/dist/middleware/sanitise-fields.d.ts +5 -3
- package/dist/middleware/sanitise-fields.d.ts.map +1 -0
- package/dist/middleware/sanitise-fields.js +25 -17
- package/dist/middleware/serve-first-waypoint.d.ts +1 -0
- package/dist/middleware/serve-first-waypoint.d.ts.map +1 -0
- package/dist/middleware/serve-first-waypoint.js +3 -6
- package/dist/middleware/session.d.ts +15 -0
- package/dist/middleware/session.d.ts.map +1 -0
- package/dist/middleware/session.js +53 -57
- package/dist/middleware/skip-waypoint.d.ts +3 -2
- package/dist/middleware/skip-waypoint.d.ts.map +1 -0
- package/dist/middleware/skip-waypoint.js +15 -14
- package/dist/middleware/steer-journey.d.ts +2 -1
- package/dist/middleware/steer-journey.d.ts.map +1 -0
- package/dist/middleware/steer-journey.js +7 -13
- package/dist/middleware/strip-proxy-path.d.ts +3 -2
- package/dist/middleware/strip-proxy-path.d.ts.map +1 -0
- package/dist/middleware/strip-proxy-path.js +24 -24
- package/dist/middleware/validate-fields.d.ts +7 -4
- package/dist/middleware/validate-fields.d.ts.map +1 -0
- package/dist/middleware/validate-fields.js +22 -11
- package/dist/routes/ancillary.d.ts +1 -0
- package/dist/routes/ancillary.d.ts.map +1 -0
- package/dist/routes/ancillary.js +3 -10
- package/dist/routes/journey.d.ts +7 -2
- package/dist/routes/journey.d.ts.map +1 -0
- package/dist/routes/journey.js +56 -55
- package/dist/routes/static.d.ts +1 -0
- package/dist/routes/static.d.ts.map +1 -0
- package/dist/routes/static.js +15 -23
- package/locales/cy/error.json +1 -0
- package/locales/en/error.json +1 -0
- package/package.json +32 -38
- package/src/casa.js +49 -29
- package/src/core-plugins/edit-snapshot/src/post-steer-hook.js +1 -0
- package/src/core-plugins/edit-snapshot/src/pre-steer-hook.js +2 -1
- package/src/core-plugins/edit-snapshot/src/utils.js +29 -1
- package/src/lib/JourneyContext.js +31 -28
- package/src/lib/MutableRouter.js +47 -38
- package/src/lib/NullObject.js +4 -0
- package/src/lib/Plan.js +41 -55
- package/src/lib/ValidationError.js +2 -4
- package/src/lib/ValidatorFactory.js +3 -5
- package/src/lib/configuration-ingestor.js +18 -38
- package/src/lib/configure.js +7 -10
- package/src/lib/end-session.js +1 -1
- package/src/lib/field.js +7 -12
- package/src/lib/logger.js +16 -0
- package/src/lib/mount.js +1 -1
- package/src/lib/nunjucks-filters.js +51 -61
- package/src/lib/nunjucks.js +3 -12
- package/src/lib/utils.js +2 -1
- package/src/lib/validators/dateObject.js +3 -4
- package/src/lib/validators/postalAddressObject.js +6 -7
- package/src/lib/validators/required.js +1 -3
- package/src/lib/waypoint-url.js +15 -19
- package/src/middleware/csrf.js +1 -1
- package/src/middleware/data.js +13 -13
- package/src/middleware/gather-fields.js +8 -2
- package/src/middleware/i18n.js +9 -6
- package/src/middleware/pre.js +1 -1
- package/src/middleware/progress-journey.js +8 -0
- package/src/middleware/sanitise-fields.js +17 -2
- package/src/middleware/session.js +53 -12
- package/src/middleware/skip-waypoint.js +8 -1
- package/src/middleware/steer-journey.js +1 -1
- package/src/middleware/strip-proxy-path.js +21 -16
- package/src/middleware/validate-fields.js +19 -0
- package/src/routes/journey.js +18 -8
- package/src/routes/static.js +5 -4
- package/views/casa/components/character-count/template.njk +1 -0
- package/views/casa/components/checkboxes/template.njk +1 -0
- package/views/casa/components/date-input/template.njk +1 -0
- package/views/casa/components/input/template.njk +1 -0
- package/views/casa/components/postal-address-object/template.njk +5 -0
- package/views/casa/components/radios/template.njk +1 -0
- package/views/casa/components/select/template.njk +1 -0
- package/views/casa/components/textarea/template.njk +1 -0
- package/views/casa/layouts/journey.njk +1 -1
- package/views/casa/layouts/main.njk +11 -21
- package/dist/casa.js.map +0 -1
- package/dist/core-plugins/edit-snapshot/src/configure.js.map +0 -1
- package/dist/core-plugins/edit-snapshot/src/index.js.map +0 -1
- package/dist/core-plugins/edit-snapshot/src/post-steer-hook.js.map +0 -1
- package/dist/core-plugins/edit-snapshot/src/pre-steer-hook.js.map +0 -1
- package/dist/core-plugins/edit-snapshot/src/utils.js.map +0 -1
- package/dist/core-plugins/index.js.map +0 -1
- package/dist/lib/CasaTemplateLoader.js.map +0 -1
- package/dist/lib/JourneyContext.js.map +0 -1
- package/dist/lib/MutableRouter.js.map +0 -1
- package/dist/lib/Plan.js.map +0 -1
- package/dist/lib/ValidationError.js.map +0 -1
- package/dist/lib/ValidatorFactory.js.map +0 -1
- package/dist/lib/configuration-ingestor.js.map +0 -1
- package/dist/lib/configure.js.map +0 -1
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/context-id-generators.js.map +0 -1
- package/dist/lib/dirname.cjs +0 -1
- package/dist/lib/dirname.d.cts +0 -2
- package/dist/lib/end-session.js.map +0 -1
- package/dist/lib/field.js.map +0 -1
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/logger.js.map +0 -1
- package/dist/lib/mount.js.map +0 -1
- package/dist/lib/nunjucks-filters.js.map +0 -1
- package/dist/lib/nunjucks.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/validators/dateObject.js.map +0 -1
- package/dist/lib/validators/email.js.map +0 -1
- package/dist/lib/validators/inArray.js.map +0 -1
- package/dist/lib/validators/index.js.map +0 -1
- package/dist/lib/validators/nino.js.map +0 -1
- package/dist/lib/validators/postalAddressObject.js.map +0 -1
- package/dist/lib/validators/range.js.map +0 -1
- package/dist/lib/validators/regex.js.map +0 -1
- package/dist/lib/validators/required.js.map +0 -1
- package/dist/lib/validators/strlen.js.map +0 -1
- package/dist/lib/validators/wordCount.js.map +0 -1
- package/dist/lib/waypoint-url.js.map +0 -1
- package/dist/middleware/body-parser.js.map +0 -1
- package/dist/middleware/csrf.js.map +0 -1
- package/dist/middleware/data.js.map +0 -1
- package/dist/middleware/dirname.cjs +0 -1
- package/dist/middleware/dirname.d.cts +0 -2
- package/dist/middleware/gather-fields.js.map +0 -1
- package/dist/middleware/i18n.js.map +0 -1
- package/dist/middleware/post.js.map +0 -1
- package/dist/middleware/pre.js.map +0 -1
- package/dist/middleware/progress-journey.js.map +0 -1
- package/dist/middleware/sanitise-fields.js.map +0 -1
- package/dist/middleware/serve-first-waypoint.js.map +0 -1
- package/dist/middleware/session.js.map +0 -1
- package/dist/middleware/skip-waypoint.js.map +0 -1
- package/dist/middleware/steer-journey.js.map +0 -1
- package/dist/middleware/strip-proxy-path.js.map +0 -1
- package/dist/middleware/validate-fields.js.map +0 -1
- package/dist/mjs/esm-wrapper.js +0 -20
- package/dist/mjs/package.json +0 -3
- package/dist/package.json +0 -3
- package/dist/routes/ancillary.js.map +0 -1
- package/dist/routes/dirname.cjs +0 -1
- package/dist/routes/dirname.d.cts +0 -2
- package/dist/routes/journey.js.map +0 -1
- package/dist/routes/static.js.map +0 -1
- package/src/lib/dirname.cjs +0 -1
- package/src/middleware/dirname.cjs +0 -1
- package/src/routes/dirname.cjs +0 -1
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
1
|
/**
|
|
7
2
|
* Test if a value is present in an array.
|
|
8
3
|
*
|
|
@@ -11,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
11
6
|
* If the value itself is an array, all values within that array must be present
|
|
12
7
|
* in the `source` array in order to pass validation.
|
|
13
8
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
import ValidationError from "../ValidationError.js";
|
|
10
|
+
import ValidatorFactory from "../ValidatorFactory.js";
|
|
11
|
+
import { stringifyInput, isStringable } from "../utils.js";
|
|
17
12
|
/**
|
|
18
13
|
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
|
|
19
14
|
* @access private
|
|
@@ -34,7 +29,7 @@ const utils_js_1 = require("../utils.js");
|
|
|
34
29
|
* @memberof Validators
|
|
35
30
|
* @augments ValidatorFactory
|
|
36
31
|
*/
|
|
37
|
-
class InArray extends
|
|
32
|
+
export default class InArray extends ValidatorFactory {
|
|
38
33
|
/** @property {string} name Validator name ("inArray") */
|
|
39
34
|
name = "inArray";
|
|
40
35
|
validate(value, dataContext = {}) {
|
|
@@ -56,13 +51,13 @@ class InArray extends ValidatorFactory_js_1.default {
|
|
|
56
51
|
}
|
|
57
52
|
}
|
|
58
53
|
}
|
|
59
|
-
return valid ? [] : [
|
|
54
|
+
return valid ? [] : [ValidationError.make({ errorMsg, dataContext })];
|
|
60
55
|
}
|
|
61
56
|
sanitise(value) {
|
|
62
|
-
const coerce = (val) =>
|
|
57
|
+
const coerce = (val) => stringifyInput(val, undefined);
|
|
63
58
|
// Basic stringable
|
|
64
|
-
if (
|
|
65
|
-
return
|
|
59
|
+
if (isStringable(value)) {
|
|
60
|
+
return stringifyInput(value);
|
|
66
61
|
}
|
|
67
62
|
// Coerce all elements to Strings.
|
|
68
63
|
// This only supports one dimensional array, with stringable element.
|
|
@@ -73,5 +68,3 @@ class InArray extends ValidatorFactory_js_1.default {
|
|
|
73
68
|
return undefined;
|
|
74
69
|
}
|
|
75
70
|
}
|
|
76
|
-
exports.default = InArray;
|
|
77
|
-
//# sourceMappingURL=inArray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/index.js"],"names":[],"mappings":";;;;;;;;;;;;;uBAAuB,iBAAiB;kBACtB,YAAY;oBACV,cAAc;iBACjB,WAAW;gCACI,0BAA0B;kBACxC,YAAY;qBACT,eAAe;mBACjB,aAAa;kBACd,YAAY;sBACR,gBAAgB"}
|
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const regex_js_1 = __importDefault(require("./regex.js"));
|
|
12
|
-
const required_js_1 = __importDefault(require("./required.js"));
|
|
13
|
-
const strlen_js_1 = __importDefault(require("./strlen.js"));
|
|
14
|
-
const range_js_1 = __importDefault(require("./range.js"));
|
|
15
|
-
const wordCount_js_1 = __importDefault(require("./wordCount.js"));
|
|
1
|
+
import dateObject from "./dateObject.js";
|
|
2
|
+
import email from "./email.js";
|
|
3
|
+
import inArray from "./inArray.js";
|
|
4
|
+
import nino from "./nino.js";
|
|
5
|
+
import postalAddressObject from "./postalAddressObject.js";
|
|
6
|
+
import regex from "./regex.js";
|
|
7
|
+
import required from "./required.js";
|
|
8
|
+
import strlen from "./strlen.js";
|
|
9
|
+
import range from "./range.js";
|
|
10
|
+
import wordCount from "./wordCount.js";
|
|
16
11
|
/** @namespace Validators */
|
|
17
|
-
|
|
18
|
-
dateObject
|
|
19
|
-
email
|
|
20
|
-
inArray
|
|
21
|
-
nino
|
|
22
|
-
postalAddressObject
|
|
23
|
-
regex
|
|
24
|
-
required
|
|
25
|
-
strlen
|
|
26
|
-
range
|
|
27
|
-
wordCount
|
|
12
|
+
export default {
|
|
13
|
+
dateObject,
|
|
14
|
+
email,
|
|
15
|
+
inArray,
|
|
16
|
+
nino,
|
|
17
|
+
postalAddressObject,
|
|
18
|
+
regex,
|
|
19
|
+
required,
|
|
20
|
+
strlen,
|
|
21
|
+
range,
|
|
22
|
+
wordCount,
|
|
28
23
|
};
|
|
29
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nino.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/nino.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH;IACE,aAAc;IAEd,0DA+BC;IAED,yCAKC;CACF;iCAhEY,OAAO,YAAY,EAAE,kBAAkB;;;;;cAMtC,kBAAkB;;;;;qBAClB,OAAO;;6BAXQ,wBAAwB;4BADzB,uBAAuB"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
|
|
7
|
-
const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
|
|
8
|
-
const utils_js_1 = require("../utils.js");
|
|
1
|
+
import ValidationError from "../ValidationError.js";
|
|
2
|
+
import ValidatorFactory from "../ValidatorFactory.js";
|
|
3
|
+
import { stringifyInput } from "../utils.js";
|
|
9
4
|
/**
|
|
10
5
|
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
|
|
11
6
|
* @access private
|
|
@@ -27,7 +22,7 @@ const utils_js_1 = require("../utils.js");
|
|
|
27
22
|
* @memberof Validators
|
|
28
23
|
* @augments ValidatorFactory
|
|
29
24
|
*/
|
|
30
|
-
class Nino extends
|
|
25
|
+
export default class Nino extends ValidatorFactory {
|
|
31
26
|
name = "nino";
|
|
32
27
|
validate(value, dataContext = {}) {
|
|
33
28
|
const { allowWhitespace, errorMsg = {
|
|
@@ -44,14 +39,12 @@ class Nino extends ValidatorFactory_js_1.default {
|
|
|
44
39
|
? /\u0020/g
|
|
45
40
|
: "", "")
|
|
46
41
|
.match(/^(?!BG|GB|NK|KN|TN|NT|ZZ)[ABCEGHJ-PRSTW-Z][ABCEGHJ-NPRSTW-Z]\d{6}[A-D]$/i);
|
|
47
|
-
return valid ? [] : [
|
|
42
|
+
return valid ? [] : [ValidationError.make({ errorMsg, dataContext })];
|
|
48
43
|
}
|
|
49
44
|
sanitise(value) {
|
|
50
45
|
if (value !== undefined) {
|
|
51
|
-
return
|
|
46
|
+
return stringifyInput(value);
|
|
52
47
|
}
|
|
53
48
|
return undefined;
|
|
54
49
|
}
|
|
55
50
|
}
|
|
56
|
-
exports.default = Nino;
|
|
57
|
-
//# sourceMappingURL=nino.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postalAddressObject.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/postalAddressObject.js"],"names":[],"mappings":"AAMA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;GAWG;AACH;IACE,aAA6B;IAE7B,0DAiHC;IAED,0BAoBC;CACF;iCA/KY,OAAO,YAAY,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAJvB,wBAAwB;4BADzB,uBAAuB"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
7
|
-
const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
|
|
8
|
-
const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
|
|
9
|
-
const utils_js_1 = require("../utils.js");
|
|
10
|
-
const { isPlainObject } = lodash_1.default; // CommonjS
|
|
1
|
+
import isPlainObject from "is-plain-obj";
|
|
2
|
+
import NullObject from "../NullObject.js";
|
|
3
|
+
import ValidationError from "../ValidationError.js";
|
|
4
|
+
import ValidatorFactory from "../ValidatorFactory.js";
|
|
5
|
+
import { stringifyInput } from "../utils.js";
|
|
11
6
|
/**
|
|
12
7
|
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
|
|
13
8
|
* @access private
|
|
@@ -43,7 +38,7 @@ const { isPlainObject } = lodash_1.default; // CommonjS
|
|
|
43
38
|
* @memberof Validators
|
|
44
39
|
* @augments ValidatorFactory
|
|
45
40
|
*/
|
|
46
|
-
class PostalAddressObject extends
|
|
41
|
+
export default class PostalAddressObject extends ValidatorFactory {
|
|
47
42
|
name = "postalAddressObject";
|
|
48
43
|
validate(value, dataContext = {}) {
|
|
49
44
|
const cfg = {
|
|
@@ -88,7 +83,7 @@ class PostalAddressObject extends ValidatorFactory_js_1.default {
|
|
|
88
83
|
}
|
|
89
84
|
: err;
|
|
90
85
|
// Work out required/optional parts based on config
|
|
91
|
-
const reqF =
|
|
86
|
+
const reqF = new NullObject();
|
|
92
87
|
const reqC = cfg.requiredFields;
|
|
93
88
|
reqF.address1 = reqC.indexOf("address1") > -1;
|
|
94
89
|
reqF.address2 = reqC.indexOf("address2") > -1;
|
|
@@ -128,7 +123,7 @@ class PostalAddressObject extends ValidatorFactory_js_1.default {
|
|
|
128
123
|
const condExceedStrlen = attr[2] > 0 && hasContent && String(value[k]).length > attr[2];
|
|
129
124
|
if (condMissingOrRegexMismatch || condExceedStrlen) {
|
|
130
125
|
valid = false;
|
|
131
|
-
errorMsgs.push(Object.assign(
|
|
126
|
+
errorMsgs.push(Object.assign(new NullObject(), objectifyError(attr[3]), {
|
|
132
127
|
fieldKeySuffix: `[${k}]`,
|
|
133
128
|
}));
|
|
134
129
|
}
|
|
@@ -140,13 +135,13 @@ class PostalAddressObject extends ValidatorFactory_js_1.default {
|
|
|
140
135
|
errorMsgs.push(cfg.errorMsg);
|
|
141
136
|
}
|
|
142
137
|
// Build ValidationErrorGroup
|
|
143
|
-
const errorGroup = errorMsgs.map((err) =>
|
|
138
|
+
const errorGroup = errorMsgs.map((err) => ValidationError.make({ errorMsg: err, dataContext }));
|
|
144
139
|
return valid ? [] : [...errorGroup];
|
|
145
140
|
}
|
|
146
141
|
sanitise(value) {
|
|
147
142
|
// Only objects are supported
|
|
148
143
|
if (!isPlainObject(value)) {
|
|
149
|
-
return
|
|
144
|
+
return new NullObject();
|
|
150
145
|
}
|
|
151
146
|
// Prune unrecognised attributes, and coerce to Strings
|
|
152
147
|
const validKeys = [
|
|
@@ -158,9 +153,7 @@ class PostalAddressObject extends ValidatorFactory_js_1.default {
|
|
|
158
153
|
];
|
|
159
154
|
const pruned = Object.fromEntries(Object.entries(value)
|
|
160
155
|
.filter(([k]) => validKeys.includes(k))
|
|
161
|
-
.map(([k, v]) => [k,
|
|
162
|
-
return Object.assign(
|
|
156
|
+
.map(([k, v]) => [k, stringifyInput(v)]));
|
|
157
|
+
return Object.assign(new NullObject(), pruned);
|
|
163
158
|
}
|
|
164
159
|
}
|
|
165
|
-
exports.default = PostalAddressObject;
|
|
166
|
-
//# sourceMappingURL=postalAddressObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/range.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH;IACE,aAAe;IAEf,+DA4BC;IAED,yCASC;CACF;iCAjEY,OAAO,YAAY,EAAE,kBAAkB;;;;;;iBAMtC,kBAAkB;;;;;iBAElB,kBAAkB;;;;SAElB,MAAM;;;;SACN,MAAM;;6BAhBS,wBAAwB;4BACzB,uBAAuB"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
|
|
7
|
-
const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
|
|
8
|
-
const utils_js_1 = require("../utils.js");
|
|
1
|
+
import ValidatorFactory from "../ValidatorFactory.js";
|
|
2
|
+
import ValidationError from "../ValidationError.js";
|
|
3
|
+
import { coerceInputToInteger } from "../utils.js";
|
|
9
4
|
/**
|
|
10
5
|
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
|
|
11
6
|
* @access private
|
|
@@ -27,7 +22,7 @@ const utils_js_1 = require("../utils.js");
|
|
|
27
22
|
* @memberof Validators
|
|
28
23
|
* @augments ValidatorFactory
|
|
29
24
|
*/
|
|
30
|
-
class Range extends
|
|
25
|
+
export default class Range extends ValidatorFactory {
|
|
31
26
|
name = "range";
|
|
32
27
|
validate(inputValue, dataContext = {}) {
|
|
33
28
|
const { errorMsgMax = {
|
|
@@ -47,7 +42,7 @@ class Range extends ValidatorFactory_js_1.default {
|
|
|
47
42
|
valid = false;
|
|
48
43
|
errorMsg = errorMsgMin;
|
|
49
44
|
}
|
|
50
|
-
return valid ? [] : [
|
|
45
|
+
return valid ? [] : [ValidationError.make({ errorMsg, dataContext })];
|
|
51
46
|
}
|
|
52
47
|
sanitise(value) {
|
|
53
48
|
// treat an empty string as undefined
|
|
@@ -55,10 +50,8 @@ class Range extends ValidatorFactory_js_1.default {
|
|
|
55
50
|
if (value !== "" && value !== undefined) {
|
|
56
51
|
// add to custom validator docs to ensure not to return a falsy value as
|
|
57
52
|
// it doesn't show on screen
|
|
58
|
-
return
|
|
53
|
+
return coerceInputToInteger(value)?.toString();
|
|
59
54
|
}
|
|
60
55
|
return undefined;
|
|
61
56
|
}
|
|
62
57
|
}
|
|
63
|
-
exports.default = Range;
|
|
64
|
-
//# sourceMappingURL=range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/regex.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;;;GAOG;AACH;IACE,aAAe;IAEf,8DAWC;IAED,yCAKC;CACF;iCAzCY,OAAO,YAAY,EAAE,kBAAkB;;;;;cAMtC,kBAAkB;;;;aAClB,MAAM;;;;YACN,OAAO;;6BAbQ,wBAAwB;4BACzB,uBAAuB"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
|
|
7
|
-
const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
|
|
8
|
-
const utils_js_1 = require("../utils.js");
|
|
1
|
+
import ValidatorFactory from "../ValidatorFactory.js";
|
|
2
|
+
import ValidationError from "../ValidationError.js";
|
|
3
|
+
import { stringifyInput } from "../utils.js";
|
|
9
4
|
/**
|
|
10
5
|
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
|
|
11
6
|
* @access private
|
|
@@ -24,7 +19,7 @@ const utils_js_1 = require("../utils.js");
|
|
|
24
19
|
* @memberof Validators
|
|
25
20
|
* @augments ValidatorFactory
|
|
26
21
|
*/
|
|
27
|
-
class Regex extends
|
|
22
|
+
export default class Regex extends ValidatorFactory {
|
|
28
23
|
name = "regex";
|
|
29
24
|
validate(value = "", dataContext = {}) {
|
|
30
25
|
const invert = this.config.invert || false;
|
|
@@ -34,14 +29,12 @@ class Regex extends ValidatorFactory_js_1.default {
|
|
|
34
29
|
inline: "validation:rule.regex.inline",
|
|
35
30
|
summary: "validation:rule.regex.summary",
|
|
36
31
|
};
|
|
37
|
-
return valid ? [] : [
|
|
32
|
+
return valid ? [] : [ValidationError.make({ errorMsg, dataContext })];
|
|
38
33
|
}
|
|
39
34
|
sanitise(value) {
|
|
40
35
|
if (value !== undefined) {
|
|
41
|
-
return
|
|
36
|
+
return stringifyInput(value);
|
|
42
37
|
}
|
|
43
38
|
return undefined;
|
|
44
39
|
}
|
|
45
40
|
}
|
|
46
|
-
exports.default = Regex;
|
|
47
|
-
//# sourceMappingURL=regex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/required.js"],"names":[],"mappings":"AAKA;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH;IACE,aAAkB;IAElB,0DAaC;IAED;;kBAyBC;CACF;iCAhEY,OAAO,YAAY,EAAE,kBAAkB;;;;;cAMtC,kBAAkB;;6BAVH,wBAAwB;4BACzB,uBAAuB"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
7
|
-
const utils_js_1 = require("../utils.js");
|
|
8
|
-
const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
|
|
9
|
-
const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
|
|
10
|
-
const { isPlainObject } = lodash_1.default; // CommonJS
|
|
1
|
+
import isPlainObject from "is-plain-obj";
|
|
2
|
+
import { isEmpty, isStringable, stringifyInput } from "../utils.js";
|
|
3
|
+
import ValidatorFactory from "../ValidatorFactory.js";
|
|
4
|
+
import ValidationError from "../ValidationError.js";
|
|
11
5
|
/**
|
|
12
6
|
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
|
|
13
7
|
* @access private
|
|
@@ -27,24 +21,24 @@ const { isPlainObject } = lodash_1.default; // CommonJS
|
|
|
27
21
|
* @memberof Validators
|
|
28
22
|
* @augments ValidatorFactory
|
|
29
23
|
*/
|
|
30
|
-
class Required extends
|
|
24
|
+
export default class Required extends ValidatorFactory {
|
|
31
25
|
name = "required";
|
|
32
26
|
validate(value, dataContext = {}) {
|
|
33
27
|
const { errorMsg = {
|
|
34
28
|
inline: "validation:rule.required.inline",
|
|
35
29
|
summary: "validation:rule.required.summary",
|
|
36
30
|
}, } = this.config;
|
|
37
|
-
if (!
|
|
31
|
+
if (!isEmpty(value)) {
|
|
38
32
|
return [];
|
|
39
33
|
}
|
|
40
|
-
return [
|
|
34
|
+
return [ValidationError.make({ errorMsg, dataContext })];
|
|
41
35
|
}
|
|
42
36
|
sanitise(value) {
|
|
43
37
|
const coerce = (val) => {
|
|
44
|
-
const s =
|
|
38
|
+
const s = stringifyInput(val, undefined);
|
|
45
39
|
return s === undefined ? undefined : s.replace(/^\s+$/, "");
|
|
46
40
|
};
|
|
47
|
-
if (
|
|
41
|
+
if (isStringable(value)) {
|
|
48
42
|
return coerce(value);
|
|
49
43
|
}
|
|
50
44
|
// Coerce all elements to Strings.
|
|
@@ -60,5 +54,3 @@ class Required extends ValidatorFactory_js_1.default {
|
|
|
60
54
|
return undefined;
|
|
61
55
|
}
|
|
62
56
|
}
|
|
63
|
-
exports.default = Required;
|
|
64
|
-
//# sourceMappingURL=required.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strlen.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/strlen.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH;IACE,aAAgB;IAEhB,mEA4BC;IAED,yCAKC;CACF;iCA7DY,OAAO,YAAY,EAAE,kBAAkB;;;;;;iBAMtC,kBAAkB;;;;;iBAElB,kBAAkB;;;;SAElB,MAAM;;;;SACN,MAAM;;6BAhBS,wBAAwB;4BACzB,uBAAuB"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
|
|
7
|
-
const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
|
|
8
|
-
const utils_js_1 = require("../utils.js");
|
|
1
|
+
import ValidatorFactory from "../ValidatorFactory.js";
|
|
2
|
+
import ValidationError from "../ValidationError.js";
|
|
3
|
+
import { stringifyInput } from "../utils.js";
|
|
9
4
|
/**
|
|
10
5
|
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
|
|
11
6
|
* @access private
|
|
@@ -27,7 +22,7 @@ const utils_js_1 = require("../utils.js");
|
|
|
27
22
|
* @memberof Validators
|
|
28
23
|
* @augments ValidatorFactory
|
|
29
24
|
*/
|
|
30
|
-
class Strlen extends
|
|
25
|
+
export default class Strlen extends ValidatorFactory {
|
|
31
26
|
name = "strlen";
|
|
32
27
|
validate(inputValue = "", dataContext = {}) {
|
|
33
28
|
const { errorMsgMax = {
|
|
@@ -47,14 +42,12 @@ class Strlen extends ValidatorFactory_js_1.default {
|
|
|
47
42
|
valid = false;
|
|
48
43
|
errorMsg = errorMsgMin;
|
|
49
44
|
}
|
|
50
|
-
return valid ? [] : [
|
|
45
|
+
return valid ? [] : [ValidationError.make({ errorMsg, dataContext })];
|
|
51
46
|
}
|
|
52
47
|
sanitise(value) {
|
|
53
48
|
if (value !== undefined) {
|
|
54
|
-
return
|
|
49
|
+
return stringifyInput(value);
|
|
55
50
|
}
|
|
56
51
|
return undefined;
|
|
57
52
|
}
|
|
58
53
|
}
|
|
59
|
-
exports.default = Strlen;
|
|
60
|
-
//# sourceMappingURL=strlen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordCount.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/wordCount.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH;IACE,aAAmB;IAEnB,uBAEC;IAED,mEAkCC;IAED,yCAKC;CACF;iCAvEY,OAAO,YAAY,EAAE,kBAAkB;;;;;;iBAMtC,kBAAkB;;;;;iBAElB,kBAAkB;;;;SAElB,MAAM;;;;SACN,MAAM;;6BAhBS,wBAAwB;4BACzB,uBAAuB"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
|
|
7
|
-
const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
|
|
8
|
-
const utils_js_1 = require("../utils.js");
|
|
1
|
+
import ValidatorFactory from "../ValidatorFactory.js";
|
|
2
|
+
import ValidationError from "../ValidationError.js";
|
|
3
|
+
import { stringifyInput } from "../utils.js";
|
|
9
4
|
/**
|
|
10
5
|
* @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
|
|
11
6
|
* @access private
|
|
@@ -27,7 +22,7 @@ const utils_js_1 = require("../utils.js");
|
|
|
27
22
|
* @memberof Validators
|
|
28
23
|
* @augments ValidatorFactory
|
|
29
24
|
*/
|
|
30
|
-
class WordCount extends
|
|
25
|
+
export default class WordCount extends ValidatorFactory {
|
|
31
26
|
name = "wordCount";
|
|
32
27
|
count(input) {
|
|
33
28
|
return (input.match(/\S+/g) || []).length;
|
|
@@ -52,14 +47,12 @@ class WordCount extends ValidatorFactory_js_1.default {
|
|
|
52
47
|
valid = false;
|
|
53
48
|
errorMsg = errorMsgMin;
|
|
54
49
|
}
|
|
55
|
-
return valid ? [] : [
|
|
50
|
+
return valid ? [] : [ValidationError.make({ errorMsg, dataContext })];
|
|
56
51
|
}
|
|
57
52
|
sanitise(value) {
|
|
58
53
|
if (value !== undefined) {
|
|
59
|
-
return
|
|
54
|
+
return stringifyInput(value);
|
|
60
55
|
}
|
|
61
56
|
return undefined;
|
|
62
57
|
}
|
|
63
58
|
}
|
|
64
|
-
exports.default = WordCount;
|
|
65
|
-
//# sourceMappingURL=wordCount.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate a URL pointing at a particular waypoint.
|
|
3
3
|
*
|
|
4
|
-
* @memberof module
|
|
4
|
+
* @memberof module:"@dwp/govuk-casa"
|
|
5
5
|
* @example
|
|
6
6
|
* // generates: /path/details?edit&editorigin=%2Fsomewhere%2Felse
|
|
7
7
|
* waypointUrl({
|
|
@@ -25,10 +25,11 @@
|
|
|
25
25
|
export default function waypointUrl({ waypoint, mountUrl, journeyContext, edit, editOrigin, skipTo, routeName, }?: {
|
|
26
26
|
waypoint?: string | undefined;
|
|
27
27
|
mountUrl?: string | undefined;
|
|
28
|
-
journeyContext?: import("./JourneyContext").default | undefined;
|
|
28
|
+
journeyContext?: import("./JourneyContext.js").default | undefined;
|
|
29
29
|
edit?: boolean | undefined;
|
|
30
30
|
editOrigin?: string | undefined;
|
|
31
31
|
skipTo?: boolean | undefined;
|
|
32
32
|
routeName?: string | undefined;
|
|
33
33
|
}): string;
|
|
34
34
|
export type JourneyContext = import("./index").JourneyContext;
|
|
35
|
+
//# sourceMappingURL=waypoint-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waypoint-url.d.ts","sourceRoot":"","sources":["../../src/lib/waypoint-url.js"],"names":[],"mappings":"AA6CA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,mHAVG;IAAqB,QAAQ;IACR,QAAQ;IACA,cAAc;IACrB,IAAI;IACL,UAAU;IACT,MAAM;IACP,SAAS;CAE9B,GAAU,MAAM,CAuElB;6BAvIY,OAAO,SAAS,EAAE,cAAc"}
|
package/dist/lib/waypoint-url.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import NullObject from "./NullObject.js";
|
|
2
2
|
/**
|
|
3
3
|
* @typedef {import("./index").JourneyContext} JourneyContext
|
|
4
4
|
* @access private
|
|
5
5
|
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.default = waypointUrl;
|
|
8
6
|
/** @access private */
|
|
9
7
|
const reUrlProtocolExtract = /^url:\/\/(.+)$/i;
|
|
10
8
|
/**
|
|
@@ -14,7 +12,7 @@ const reUrlProtocolExtract = /^url:\/\/(.+)$/i;
|
|
|
14
12
|
* @returns {string} Sanitised waypoint
|
|
15
13
|
* @access private
|
|
16
14
|
*/
|
|
17
|
-
const sanitiseWaypoint = (w) => w.replace(/[^/a-z0-9_-]
|
|
15
|
+
const sanitiseWaypoint = (w) => w.replace(/[^/a-z0-9_-]+/gi, "").replace(/\/+/g, "/");
|
|
18
16
|
/**
|
|
19
17
|
* Sanitise a waypoint string, with allowed URL parameters: contextid =
|
|
20
18
|
* JourneyContext ID
|
|
@@ -24,26 +22,22 @@ const sanitiseWaypoint = (w) => w.replace(/[^/a-z0-9_-]/gi, "").replace(/\/+/g,
|
|
|
24
22
|
* @access private
|
|
25
23
|
*/
|
|
26
24
|
const sanitiseWaypointWithAllowedParams = (w) => {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (parts.length !== 2) {
|
|
25
|
+
const queryIndex = w.indexOf("?");
|
|
26
|
+
if (queryIndex === -1 || queryIndex !== w.lastIndexOf("?")) {
|
|
30
27
|
return sanitiseWaypoint(w);
|
|
31
28
|
}
|
|
32
|
-
const
|
|
33
|
-
const urlSearchParams = new URLSearchParams(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (urlSearchParams.has(pk)) {
|
|
38
|
-
validatedUrlSearchParams.set(pk, urlSearchParams.get(pk));
|
|
39
|
-
}
|
|
29
|
+
const waypoint = w.substring(0, queryIndex);
|
|
30
|
+
const urlSearchParams = new URLSearchParams(w.substring(queryIndex + 1));
|
|
31
|
+
let query = "";
|
|
32
|
+
if (urlSearchParams.has("contextid")) {
|
|
33
|
+
query += `?contextid=${encodeURIComponent(urlSearchParams.get("contextid"))}`;
|
|
40
34
|
}
|
|
41
|
-
return `${sanitiseWaypoint(waypoint)}
|
|
35
|
+
return `${sanitiseWaypoint(waypoint)}${query}`;
|
|
42
36
|
};
|
|
43
37
|
/**
|
|
44
38
|
* Generate a URL pointing at a particular waypoint.
|
|
45
39
|
*
|
|
46
|
-
* @memberof module
|
|
40
|
+
* @memberof module:"@dwp/govuk-casa"
|
|
47
41
|
* @example
|
|
48
42
|
* // generates: /path/details?edit&editorigin=%2Fsomewhere%2Felse
|
|
49
43
|
* waypointUrl({
|
|
@@ -64,7 +58,7 @@ const sanitiseWaypointWithAllowedParams = (w) => {
|
|
|
64
58
|
* `next`
|
|
65
59
|
* @returns {string} URL
|
|
66
60
|
*/
|
|
67
|
-
function waypointUrl({ waypoint = "", mountUrl = "/", journeyContext, edit = false, editOrigin, skipTo, routeName = "next", } =
|
|
61
|
+
export default function waypointUrl({ waypoint = "", mountUrl = "/", journeyContext, edit = false, editOrigin, skipTo, routeName = "next", } = new NullObject()) {
|
|
68
62
|
const url = new URL("https://placeholder.test");
|
|
69
63
|
// Handle url:// protocol
|
|
70
64
|
// - This will generate a link to the root handler "_" for the given mount path
|
|
@@ -106,4 +100,3 @@ function waypointUrl({ waypoint = "", mountUrl = "/", journeyContext, edit = fal
|
|
|
106
100
|
}
|
|
107
101
|
return `${sanitiseWaypoint(url.pathname)}${url.search}`;
|
|
108
102
|
}
|
|
109
|
-
//# sourceMappingURL=waypoint-url.js.map
|
|
@@ -25,3 +25,4 @@ export default function bodyParserMiddleware({ formMaxParams, formMaxBytes }: {
|
|
|
25
25
|
export type RequestHandler = import("express").RequestHandler;
|
|
26
26
|
export type Request = import("express").Request;
|
|
27
27
|
export type Response = import("express").Response;
|
|
28
|
+
//# sourceMappingURL=body-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body-parser.d.ts","sourceRoot":"","sources":["../../src/middleware/body-parser.js"],"names":[],"mappings":"AAqBA;;;;;;;;;GASG;AACH,gCAPW,OAAO,OACP,QAAQ,OACR,MAAM,YACN,MAAM,GACJ,IAAI,CAiBhB;AAED;;;;;;;;GAQG;AACH,8EALG;IAAqB,aAAa,EAA1B,MAAM;IAEO,YAAY,EAAzB,MAAM;CACd,GAAU,cAAc,EAAE,CAa5B;6BAhEY,OAAO,SAAS,EAAE,cAAc;sBAKhC,OAAO,SAAS,EAAE,OAAO;uBAKzB,OAAO,SAAS,EAAE,QAAQ"}
|