@dwp/govuk-casa 9.0.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.
Files changed (199) hide show
  1. package/README.md +9 -9
  2. package/dist/assets/css/casa.css +1 -1
  3. package/dist/assets/css/casa.css.map +1 -1
  4. package/dist/casa.d.ts +122 -95
  5. package/dist/casa.js +119 -86
  6. package/dist/casa.js.map +1 -1
  7. package/dist/lib/CasaTemplateLoader.d.ts +4 -4
  8. package/dist/lib/CasaTemplateLoader.js +16 -16
  9. package/dist/lib/CasaTemplateLoader.js.map +1 -1
  10. package/dist/lib/JourneyContext.d.ts +38 -40
  11. package/dist/lib/JourneyContext.js +81 -75
  12. package/dist/lib/JourneyContext.js.map +1 -1
  13. package/dist/lib/MutableRouter.d.ts +40 -41
  14. package/dist/lib/MutableRouter.js +64 -71
  15. package/dist/lib/MutableRouter.js.map +1 -1
  16. package/dist/lib/Plan.d.ts +29 -26
  17. package/dist/lib/Plan.js +85 -71
  18. package/dist/lib/Plan.js.map +1 -1
  19. package/dist/lib/ValidationError.d.ts +16 -15
  20. package/dist/lib/ValidationError.js +21 -20
  21. package/dist/lib/ValidationError.js.map +1 -1
  22. package/dist/lib/ValidatorFactory.d.ts +15 -13
  23. package/dist/lib/ValidatorFactory.js +14 -12
  24. package/dist/lib/ValidatorFactory.js.map +1 -1
  25. package/dist/lib/configuration-ingestor.d.ts +37 -40
  26. package/dist/lib/configuration-ingestor.js +93 -93
  27. package/dist/lib/configuration-ingestor.js.map +1 -1
  28. package/dist/lib/configure.d.ts +6 -6
  29. package/dist/lib/configure.js +14 -12
  30. package/dist/lib/configure.js.map +1 -1
  31. package/dist/lib/constants.d.ts +1 -3
  32. package/dist/lib/constants.js +9 -11
  33. package/dist/lib/constants.js.map +1 -1
  34. package/dist/lib/context-id-generators.d.ts +3 -5
  35. package/dist/lib/context-id-generators.js +7 -6
  36. package/dist/lib/context-id-generators.js.map +1 -1
  37. package/dist/lib/end-session.d.ts +4 -4
  38. package/dist/lib/end-session.js +5 -5
  39. package/dist/lib/field.d.ts +20 -18
  40. package/dist/lib/field.js +35 -48
  41. package/dist/lib/field.js.map +1 -1
  42. package/dist/lib/index.d.ts +13 -13
  43. package/dist/lib/logger.d.ts +7 -6
  44. package/dist/lib/logger.js +7 -7
  45. package/dist/lib/logger.js.map +1 -1
  46. package/dist/lib/mount.d.ts +5 -5
  47. package/dist/lib/mount.js +11 -10
  48. package/dist/lib/mount.js.map +1 -1
  49. package/dist/lib/nunjucks-filters.d.ts +10 -12
  50. package/dist/lib/nunjucks-filters.js +35 -35
  51. package/dist/lib/nunjucks-filters.js.map +1 -1
  52. package/dist/lib/nunjucks.d.ts +7 -5
  53. package/dist/lib/nunjucks.js +10 -8
  54. package/dist/lib/nunjucks.js.map +1 -1
  55. package/dist/lib/utils.d.ts +19 -19
  56. package/dist/lib/utils.js +62 -55
  57. package/dist/lib/utils.js.map +1 -1
  58. package/dist/lib/validators/dateObject.d.ts +29 -22
  59. package/dist/lib/validators/dateObject.js +58 -49
  60. package/dist/lib/validators/dateObject.js.map +1 -1
  61. package/dist/lib/validators/email.d.ts +4 -4
  62. package/dist/lib/validators/email.js +4 -4
  63. package/dist/lib/validators/inArray.d.ts +4 -4
  64. package/dist/lib/validators/inArray.js +7 -8
  65. package/dist/lib/validators/inArray.js.map +1 -1
  66. package/dist/lib/validators/index.d.ts +10 -10
  67. package/dist/lib/validators/index.js +1 -3
  68. package/dist/lib/validators/index.js.map +1 -1
  69. package/dist/lib/validators/nino.d.ts +9 -8
  70. package/dist/lib/validators/nino.js +14 -10
  71. package/dist/lib/validators/nino.js.map +1 -1
  72. package/dist/lib/validators/postalAddressObject.d.ts +37 -24
  73. package/dist/lib/validators/postalAddressObject.js +65 -46
  74. package/dist/lib/validators/postalAddressObject.js.map +1 -1
  75. package/dist/lib/validators/range.d.ts +12 -8
  76. package/dist/lib/validators/range.js +11 -9
  77. package/dist/lib/validators/range.js.map +1 -1
  78. package/dist/lib/validators/regex.d.ts +4 -4
  79. package/dist/lib/validators/regex.js +5 -5
  80. package/dist/lib/validators/required.d.ts +6 -6
  81. package/dist/lib/validators/required.js +9 -11
  82. package/dist/lib/validators/required.js.map +1 -1
  83. package/dist/lib/validators/strlen.d.ts +12 -8
  84. package/dist/lib/validators/strlen.js +13 -11
  85. package/dist/lib/validators/strlen.js.map +1 -1
  86. package/dist/lib/validators/wordCount.d.ts +12 -8
  87. package/dist/lib/validators/wordCount.js +15 -11
  88. package/dist/lib/validators/wordCount.js.map +1 -1
  89. package/dist/lib/waypoint-url.d.ts +16 -13
  90. package/dist/lib/waypoint-url.js +39 -36
  91. package/dist/lib/waypoint-url.js.map +1 -1
  92. package/dist/middleware/body-parser.d.ts +1 -1
  93. package/dist/middleware/body-parser.js +6 -6
  94. package/dist/middleware/body-parser.js.map +1 -1
  95. package/dist/middleware/data.d.ts +1 -1
  96. package/dist/middleware/data.js +8 -7
  97. package/dist/middleware/data.js.map +1 -1
  98. package/dist/middleware/gather-fields.d.ts +2 -2
  99. package/dist/middleware/gather-fields.js +6 -4
  100. package/dist/middleware/gather-fields.js.map +1 -1
  101. package/dist/middleware/i18n.js +13 -15
  102. package/dist/middleware/i18n.js.map +1 -1
  103. package/dist/middleware/post.js +30 -18
  104. package/dist/middleware/post.js.map +1 -1
  105. package/dist/middleware/pre.d.ts +2 -2
  106. package/dist/middleware/pre.js +46 -27
  107. package/dist/middleware/pre.js.map +1 -1
  108. package/dist/middleware/progress-journey.d.ts +1 -1
  109. package/dist/middleware/progress-journey.js +5 -5
  110. package/dist/middleware/progress-journey.js.map +1 -1
  111. package/dist/middleware/sanitise-fields.d.ts +1 -1
  112. package/dist/middleware/sanitise-fields.js +13 -11
  113. package/dist/middleware/sanitise-fields.js.map +1 -1
  114. package/dist/middleware/serve-first-waypoint.d.ts +3 -3
  115. package/dist/middleware/serve-first-waypoint.js +8 -6
  116. package/dist/middleware/serve-first-waypoint.js.map +1 -1
  117. package/dist/middleware/session.js +14 -11
  118. package/dist/middleware/session.js.map +1 -1
  119. package/dist/middleware/skip-waypoint.d.ts +1 -1
  120. package/dist/middleware/skip-waypoint.js +3 -3
  121. package/dist/middleware/skip-waypoint.js.map +1 -1
  122. package/dist/middleware/steer-journey.d.ts +1 -1
  123. package/dist/middleware/steer-journey.js +16 -14
  124. package/dist/middleware/steer-journey.js.map +1 -1
  125. package/dist/middleware/strip-proxy-path.d.ts +1 -1
  126. package/dist/middleware/strip-proxy-path.js +3 -3
  127. package/dist/middleware/strip-proxy-path.js.map +1 -1
  128. package/dist/middleware/validate-fields.d.ts +1 -1
  129. package/dist/middleware/validate-fields.js +2 -5
  130. package/dist/middleware/validate-fields.js.map +1 -1
  131. package/dist/routes/ancillary.d.ts +3 -3
  132. package/dist/routes/ancillary.js +4 -4
  133. package/dist/routes/ancillary.js.map +1 -1
  134. package/dist/routes/journey.d.ts +2 -2
  135. package/dist/routes/journey.js +91 -39
  136. package/dist/routes/journey.js.map +1 -1
  137. package/dist/routes/static.d.ts +7 -5
  138. package/dist/routes/static.js +20 -19
  139. package/dist/routes/static.js.map +1 -1
  140. package/package.json +19 -18
  141. package/src/casa.js +133 -100
  142. package/src/lib/CasaTemplateLoader.js +24 -19
  143. package/src/lib/JourneyContext.js +138 -107
  144. package/src/lib/MutableRouter.js +72 -74
  145. package/src/lib/Plan.js +145 -97
  146. package/src/lib/ValidationError.js +25 -21
  147. package/src/lib/ValidatorFactory.js +17 -13
  148. package/src/lib/configuration-ingestor.js +147 -110
  149. package/src/lib/configure.js +34 -32
  150. package/src/lib/constants.js +9 -11
  151. package/src/lib/context-id-generators.js +40 -43
  152. package/src/lib/end-session.js +6 -6
  153. package/src/lib/field.js +69 -58
  154. package/src/lib/index.js +12 -12
  155. package/src/lib/logger.js +9 -9
  156. package/src/lib/mount.js +70 -74
  157. package/src/lib/nunjucks-filters.js +56 -59
  158. package/src/lib/nunjucks.js +23 -18
  159. package/src/lib/utils.js +78 -57
  160. package/src/lib/validators/dateObject.js +71 -60
  161. package/src/lib/validators/email.js +8 -8
  162. package/src/lib/validators/inArray.js +10 -11
  163. package/src/lib/validators/index.js +12 -14
  164. package/src/lib/validators/nino.js +29 -15
  165. package/src/lib/validators/postalAddressObject.js +87 -63
  166. package/src/lib/validators/range.js +14 -12
  167. package/src/lib/validators/regex.js +8 -8
  168. package/src/lib/validators/required.js +16 -16
  169. package/src/lib/validators/strlen.js +16 -14
  170. package/src/lib/validators/wordCount.js +22 -14
  171. package/src/lib/waypoint-url.js +64 -46
  172. package/src/middleware/body-parser.js +10 -10
  173. package/src/middleware/csrf.js +1 -1
  174. package/src/middleware/data.js +28 -24
  175. package/src/middleware/gather-fields.js +10 -9
  176. package/src/middleware/i18n.js +35 -37
  177. package/src/middleware/post.js +41 -21
  178. package/src/middleware/pre.js +62 -41
  179. package/src/middleware/progress-journey.js +32 -18
  180. package/src/middleware/sanitise-fields.js +43 -20
  181. package/src/middleware/serve-first-waypoint.js +14 -12
  182. package/src/middleware/session.js +74 -61
  183. package/src/middleware/skip-waypoint.js +7 -9
  184. package/src/middleware/steer-journey.js +40 -28
  185. package/src/middleware/strip-proxy-path.js +8 -7
  186. package/src/middleware/validate-fields.js +5 -12
  187. package/src/routes/ancillary.js +5 -7
  188. package/src/routes/journey.js +159 -85
  189. package/src/routes/static.js +62 -29
  190. package/views/casa/components/character-count/README.md +2 -2
  191. package/views/casa/components/checkboxes/README.md +6 -6
  192. package/views/casa/components/date-input/README.md +7 -7
  193. package/views/casa/components/input/README.md +2 -2
  194. package/views/casa/components/journey-form/README.md +33 -14
  195. package/views/casa/components/postal-address-object/README.md +4 -4
  196. package/views/casa/components/radios/README.md +6 -6
  197. package/views/casa/components/select/README.md +6 -6
  198. package/views/casa/components/textarea/README.md +2 -2
  199. package/views/casa/layouts/main.njk +2 -1
@@ -8,13 +8,15 @@ const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"))
8
8
  const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
9
9
  const utils_js_1 = require("../utils.js");
10
10
  /**
11
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
11
12
  * @access private
12
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
13
13
  */
14
14
  /**
15
15
  * @typedef {object} RangeConfigOptions
16
- * @property {ErrorMessageConfig} errorMsgMax Error message to use on max failure
17
- * @property {ErrorMessageConfig} errorMsgMin Error message to use on min failure
16
+ * @property {ErrorMessageConfig} errorMsgMax Error message to use on max
17
+ * failure
18
+ * @property {ErrorMessageConfig} errorMsgMin Error message to use on min
19
+ * failure
18
20
  * @property {number} max Maximum integer value
19
21
  * @property {number} min Minimum integer value
20
22
  */
@@ -29,15 +31,15 @@ const utils_js_1 = require("../utils.js");
29
31
  class Range extends ValidatorFactory_js_1.default {
30
32
  constructor() {
31
33
  super(...arguments);
32
- this.name = 'range';
34
+ this.name = "range";
33
35
  }
34
36
  validate(inputValue, dataContext = {}) {
35
37
  const { errorMsgMax = {
36
- inline: 'validation:rule.range.max.inline',
37
- summary: 'validation:rule.range.max.summary',
38
+ inline: "validation:rule.range.max.inline",
39
+ summary: "validation:rule.range.max.summary",
38
40
  }, errorMsgMin = {
39
- inline: 'validation:rule.range.min.inline',
40
- summary: 'validation:rule.range.min.summary',
41
+ inline: "validation:rule.range.min.inline",
42
+ summary: "validation:rule.range.min.summary",
41
43
  }, min = Number.MIN_VALUE, max = Number.MAX_VALUE, } = this.config;
42
44
  let errorMsg;
43
45
  let valid = true;
@@ -55,7 +57,7 @@ class Range extends ValidatorFactory_js_1.default {
55
57
  var _a;
56
58
  // treat an empty string as undefined
57
59
  // when user submits empty form, it stores an empty string
58
- if (value !== '' && value !== undefined) {
60
+ if (value !== "" && value !== undefined) {
59
61
  // add to custom validator docs to ensure not to return a falsy value as
60
62
  // it doesn't show on screen
61
63
  return (_a = (0, utils_js_1.coerceInputToInteger)(value)) === null || _a === void 0 ? void 0 : _a.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/lib/validators/range.js"],"names":[],"mappings":";AAAA,2CAA2C;;;;;AAE3C,iFAAsD;AACtD,+EAAoD;AACpD,0CAAmD;AAEnD;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,MAAqB,KAAM,SAAQ,6BAAgB;IAAnD;;QACE,SAAI,GAAG,OAAO,CAAC;IA0CjB,CAAC;IAxCC,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,EAAE;QACnC,MAAM,EACJ,WAAW,GAAG;YACZ,MAAM,EAAE,kCAAkC;YAC1C,OAAO,EAAE,mCAAmC;SAC7C,EACD,WAAW,GAAG;YACZ,MAAM,EAAE,kCAAkC;YAC1C,OAAO,EAAE,mCAAmC;SAC7C,EACD,GAAG,GAAG,MAAM,CAAC,SAAS,EACtB,GAAG,GAAG,MAAM,CAAC,SAAS,GACvB,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4BAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,QAAQ,CAAC,KAAK;;QACZ,qCAAqC;QACrC,0DAA0D;QAC1D,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,wEAAwE;YACxE,4BAA4B;YAC5B,OAAO,MAAA,IAAA,+BAAoB,EAAC,KAAK,CAAC,0CAAE,QAAQ,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA3CD,wBA2CC"}
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/lib/validators/range.js"],"names":[],"mappings":";AAAA,2CAA2C;;;;;AAE3C,iFAAsD;AACtD,+EAAoD;AACpD,0CAAmD;AAEnD;;;GAGG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAqB,KAAM,SAAQ,6BAAgB;IAAnD;;QACE,SAAI,GAAG,OAAO,CAAC;IA0CjB,CAAC;IAxCC,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,EAAE;QACnC,MAAM,EACJ,WAAW,GAAG;YACZ,MAAM,EAAE,kCAAkC;YAC1C,OAAO,EAAE,mCAAmC;SAC7C,EACD,WAAW,GAAG;YACZ,MAAM,EAAE,kCAAkC;YAC1C,OAAO,EAAE,mCAAmC;SAC7C,EACD,GAAG,GAAG,MAAM,CAAC,SAAS,EACtB,GAAG,GAAG,MAAM,CAAC,SAAS,GACvB,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4BAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,QAAQ,CAAC,KAAK;;QACZ,qCAAqC;QACrC,0DAA0D;QAC1D,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,wEAAwE;YACxE,4BAA4B;YAC5B,OAAO,MAAA,IAAA,+BAAoB,EAAC,KAAK,CAAC,0CAAE,QAAQ,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA3CD,wBA2CC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
2
3
  * @access private
3
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
4
4
  */
5
5
  /**
6
6
  * @typedef {object} RegexConfigOptions
@@ -21,7 +21,7 @@ export default class Regex extends ValidatorFactory {
21
21
  validate(value?: string, dataContext?: {}): ValidationError[];
22
22
  sanitise(value: any): string | undefined;
23
23
  }
24
- export type ErrorMessageConfig = import('../../casa').ErrorMessageConfig;
24
+ export type ErrorMessageConfig = import("../../casa").ErrorMessageConfig;
25
25
  export type RegexConfigOptions = {
26
26
  /**
27
27
  * Error message config
@@ -36,5 +36,5 @@ export type RegexConfigOptions = {
36
36
  */
37
37
  invert: boolean;
38
38
  };
39
- import ValidatorFactory from '../ValidatorFactory.js';
40
- import ValidationError from '../ValidationError.js';
39
+ import ValidatorFactory from "../ValidatorFactory.js";
40
+ import ValidationError from "../ValidationError.js";
@@ -8,8 +8,8 @@ const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"))
8
8
  const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
9
9
  const utils_js_1 = require("../utils.js");
10
10
  /**
11
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
11
12
  * @access private
12
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
13
13
  */
14
14
  /**
15
15
  * @typedef {object} RegexConfigOptions
@@ -28,15 +28,15 @@ const utils_js_1 = require("../utils.js");
28
28
  class Regex extends ValidatorFactory_js_1.default {
29
29
  constructor() {
30
30
  super(...arguments);
31
- this.name = 'regex';
31
+ this.name = "regex";
32
32
  }
33
- validate(value = '', dataContext = {}) {
33
+ validate(value = "", dataContext = {}) {
34
34
  const invert = this.config.invert || false;
35
35
  const match = value.match(this.config.pattern || /.*/);
36
36
  const valid = invert ? !match : match;
37
37
  const errorMsg = this.config.errorMsg || {
38
- inline: 'validation:rule.regex.inline',
39
- summary: 'validation:rule.regex.summary',
38
+ inline: "validation:rule.regex.inline",
39
+ summary: "validation:rule.regex.summary",
40
40
  };
41
41
  return valid ? [] : [ValidationError_js_1.default.make({ errorMsg, dataContext })];
42
42
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
2
3
  * @access private
3
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
4
4
  */
5
5
  /**
6
6
  * @typedef {object} RequiredConfigOptions
@@ -9,8 +9,8 @@
9
9
  /**
10
10
  * Test if value is present.
11
11
  *
12
- * Value is required. The following values will fail this rule:
13
- * (all values that satisfy `isEmpty()`) plus '\s'
12
+ * Value is required. The following values will fail this rule: (all values that
13
+ * satisfy `isEmpty()`) plus '\s'
14
14
  *
15
15
  * See {@link RequiredConfigOptions} for `make()` options.
16
16
  *
@@ -24,12 +24,12 @@ export default class Required extends ValidatorFactory {
24
24
  [k: string]: string | undefined;
25
25
  } | undefined;
26
26
  }
27
- export type ErrorMessageConfig = import('../../casa').ErrorMessageConfig;
27
+ export type ErrorMessageConfig = import("../../casa").ErrorMessageConfig;
28
28
  export type RequiredConfigOptions = {
29
29
  /**
30
30
  * Error message config
31
31
  */
32
32
  errorMsg: ErrorMessageConfig;
33
33
  };
34
- import ValidatorFactory from '../ValidatorFactory.js';
35
- import ValidationError from '../ValidationError.js';
34
+ import ValidatorFactory from "../ValidatorFactory.js";
35
+ import ValidationError from "../ValidationError.js";
@@ -10,8 +10,8 @@ const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"))
10
10
  const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
11
11
  const { isPlainObject } = lodash_1.default; // CommonJS
12
12
  /**
13
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
13
14
  * @access private
14
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
15
15
  */
16
16
  /**
17
17
  * @typedef {object} RequiredConfigOptions
@@ -20,8 +20,8 @@ const { isPlainObject } = lodash_1.default; // CommonJS
20
20
  /**
21
21
  * Test if value is present.
22
22
  *
23
- * Value is required. The following values will fail this rule:
24
- * (all values that satisfy `isEmpty()`) plus '\s'
23
+ * Value is required. The following values will fail this rule: (all values that
24
+ * satisfy `isEmpty()`) plus '\s'
25
25
  *
26
26
  * See {@link RequiredConfigOptions} for `make()` options.
27
27
  *
@@ -31,24 +31,22 @@ const { isPlainObject } = lodash_1.default; // CommonJS
31
31
  class Required extends ValidatorFactory_js_1.default {
32
32
  constructor() {
33
33
  super(...arguments);
34
- this.name = 'required';
34
+ this.name = "required";
35
35
  }
36
36
  validate(value, dataContext = {}) {
37
37
  const { errorMsg = {
38
- inline: 'validation:rule.required.inline',
39
- summary: 'validation:rule.required.summary',
38
+ inline: "validation:rule.required.inline",
39
+ summary: "validation:rule.required.summary",
40
40
  }, } = this.config;
41
41
  if (!(0, utils_js_1.isEmpty)(value)) {
42
42
  return [];
43
43
  }
44
- return [
45
- ValidationError_js_1.default.make({ errorMsg, dataContext }),
46
- ];
44
+ return [ValidationError_js_1.default.make({ errorMsg, dataContext })];
47
45
  }
48
46
  sanitise(value) {
49
47
  const coerce = (val) => {
50
48
  const s = (0, utils_js_1.stringifyInput)(val, undefined);
51
- return s === undefined ? undefined : s.replace(/^\s+$/, '');
49
+ return s === undefined ? undefined : s.replace(/^\s+$/, "");
52
50
  };
53
51
  if ((0, utils_js_1.isStringable)(value)) {
54
52
  return coerce(value);
@@ -61,7 +59,7 @@ class Required extends ValidatorFactory_js_1.default {
61
59
  // Coerce all elements to Strings.
62
60
  // This only supports a one dimensional object, with stringable elements.
63
61
  if (isPlainObject(value)) {
64
- return Object.fromEntries(Object.entries(value).map(([k, v]) => ([k, coerce(v)])));
62
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, coerce(v)]));
65
63
  }
66
64
  return undefined;
67
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"required.js","sourceRoot":"","sources":["../../../src/lib/validators/required.js"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,oDAA4B;AAC5B,0CAAoE;AACpE,iFAAsD;AACtD,+EAAoD;AAEpD,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAM,CAAC,CAAC,WAAW;AAE7C;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,MAAqB,QAAS,SAAQ,6BAAgB;IAAtD;;QACE,SAAI,GAAG,UAAU,CAAC;IA2CpB,CAAC;IAzCC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,EAAE;QAC9B,MAAM,EACJ,QAAQ,GAAG;YACT,MAAM,EAAE,iCAAiC;YACzC,OAAO,EAAE,kCAAkC;SAC5C,GACF,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,CAAC,IAAA,kBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO;YACL,4BAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE;YACrB,MAAM,CAAC,GAAG,IAAA,yBAAc,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEF,IAAI,IAAA,uBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,kCAAkC;QAClC,qEAAqE;QACrE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,kCAAkC;QAClC,yEAAyE;QACzE,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA5CD,2BA4CC"}
1
+ {"version":3,"file":"required.js","sourceRoot":"","sources":["../../../src/lib/validators/required.js"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,oDAA4B;AAC5B,0CAAoE;AACpE,iFAAsD;AACtD,+EAAoD;AAEpD,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAM,CAAC,CAAC,WAAW;AAE7C;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,MAAqB,QAAS,SAAQ,6BAAgB;IAAtD;;QACE,SAAI,GAAG,UAAU,CAAC;IA2CpB,CAAC;IAzCC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,EAAE;QAC9B,MAAM,EACJ,QAAQ,GAAG;YACT,MAAM,EAAE,iCAAiC;YACzC,OAAO,EAAE,kCAAkC;SAC5C,GACF,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,CAAC,IAAA,kBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,CAAC,4BAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE;YACrB,MAAM,CAAC,GAAG,IAAA,yBAAc,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEF,IAAI,IAAA,uBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,kCAAkC;QAClC,qEAAqE;QACrE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,kCAAkC;QAClC,yEAAyE;QACzE,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA5CD,2BA4CC"}
@@ -1,11 +1,13 @@
1
1
  /**
2
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
2
3
  * @access private
3
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
4
4
  */
5
5
  /**
6
6
  * @typedef {object} StrlenConfigOptions
7
- * @property {ErrorMessageConfig} errorMsgMax Error message to use on max length failure
8
- * @property {ErrorMessageConfig} errorMsgMin Error message to use on min length failure
7
+ * @property {ErrorMessageConfig} errorMsgMax Error message to use on max length
8
+ * failure
9
+ * @property {ErrorMessageConfig} errorMsgMin Error message to use on min length
10
+ * failure
9
11
  * @property {number} max Maximum string length allowed
10
12
  * @property {number} min Minimum string length required
11
13
  */
@@ -22,14 +24,16 @@ export default class Strlen extends ValidatorFactory {
22
24
  validate(inputValue?: string, dataContext?: {}): ValidationError[];
23
25
  sanitise(value: any): string | undefined;
24
26
  }
25
- export type ErrorMessageConfig = import('../../casa').ErrorMessageConfig;
27
+ export type ErrorMessageConfig = import("../../casa").ErrorMessageConfig;
26
28
  export type StrlenConfigOptions = {
27
29
  /**
28
- * Error message to use on max length failure
30
+ * Error message to use on max length
31
+ * failure
29
32
  */
30
33
  errorMsgMax: ErrorMessageConfig;
31
34
  /**
32
- * Error message to use on min length failure
35
+ * Error message to use on min length
36
+ * failure
33
37
  */
34
38
  errorMsgMin: ErrorMessageConfig;
35
39
  /**
@@ -41,5 +45,5 @@ export type StrlenConfigOptions = {
41
45
  */
42
46
  min: number;
43
47
  };
44
- import ValidatorFactory from '../ValidatorFactory.js';
45
- import ValidationError from '../ValidationError.js';
48
+ import ValidatorFactory from "../ValidatorFactory.js";
49
+ import ValidationError from "../ValidationError.js";
@@ -8,13 +8,15 @@ const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"))
8
8
  const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
9
9
  const utils_js_1 = require("../utils.js");
10
10
  /**
11
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
11
12
  * @access private
12
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
13
13
  */
14
14
  /**
15
15
  * @typedef {object} StrlenConfigOptions
16
- * @property {ErrorMessageConfig} errorMsgMax Error message to use on max length failure
17
- * @property {ErrorMessageConfig} errorMsgMin Error message to use on min length failure
16
+ * @property {ErrorMessageConfig} errorMsgMax Error message to use on max length
17
+ * failure
18
+ * @property {ErrorMessageConfig} errorMsgMin Error message to use on min length
19
+ * failure
18
20
  * @property {number} max Maximum string length allowed
19
21
  * @property {number} min Minimum string length required
20
22
  */
@@ -29,23 +31,23 @@ const utils_js_1 = require("../utils.js");
29
31
  class Strlen extends ValidatorFactory_js_1.default {
30
32
  constructor() {
31
33
  super(...arguments);
32
- this.name = 'strlen';
34
+ this.name = "strlen";
33
35
  }
34
- validate(inputValue = '', dataContext = {}) {
36
+ validate(inputValue = "", dataContext = {}) {
35
37
  const { errorMsgMax = {
36
- inline: 'validation:rule.strlen.max.inline',
37
- summary: 'validation:rule.strlen.max.summary',
38
+ inline: "validation:rule.strlen.max.inline",
39
+ summary: "validation:rule.strlen.max.summary",
38
40
  }, errorMsgMin = {
39
- inline: 'validation:rule.strlen.min.inline',
40
- summary: 'validation:rule.strlen.min.summary',
41
+ inline: "validation:rule.strlen.min.inline",
42
+ summary: "validation:rule.strlen.min.summary",
41
43
  }, min, max, } = this.config;
42
44
  let errorMsg;
43
45
  let valid = true;
44
- if (typeof max !== 'undefined' && inputValue.length > max) {
46
+ if (typeof max !== "undefined" && inputValue.length > max) {
45
47
  valid = false;
46
48
  errorMsg = errorMsgMax;
47
49
  }
48
- if (typeof min !== 'undefined' && inputValue.length < min) {
50
+ if (typeof min !== "undefined" && inputValue.length < min) {
49
51
  valid = false;
50
52
  errorMsg = errorMsgMin;
51
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"strlen.js","sourceRoot":"","sources":["../../../src/lib/validators/strlen.js"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,iFAAsD;AACtD,+EAAoD;AACpD,0CAA6C;AAE7C;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,MAAqB,MAAO,SAAQ,6BAAgB;IAApD;;QACE,SAAI,GAAG,QAAQ,CAAC;IAsClB,CAAC;IApCC,QAAQ,CAAC,UAAU,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE;QACxC,MAAM,EACJ,WAAW,GAAG;YACZ,MAAM,EAAE,mCAAmC;YAC3C,OAAO,EAAE,oCAAoC;SAC9C,EACD,WAAW,GAAG;YACZ,MAAM,EAAE,mCAAmC;YAC3C,OAAO,EAAE,oCAAoC;SAC9C,EACD,GAAG,EACH,GAAG,GACJ,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC1D,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC1D,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4BAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAvCD,yBAuCC"}
1
+ {"version":3,"file":"strlen.js","sourceRoot":"","sources":["../../../src/lib/validators/strlen.js"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,iFAAsD;AACtD,+EAAoD;AACpD,0CAA6C;AAE7C;;;GAGG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAqB,MAAO,SAAQ,6BAAgB;IAApD;;QACE,SAAI,GAAG,QAAQ,CAAC;IAsClB,CAAC;IApCC,QAAQ,CAAC,UAAU,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE;QACxC,MAAM,EACJ,WAAW,GAAG;YACZ,MAAM,EAAE,mCAAmC;YAC3C,OAAO,EAAE,oCAAoC;SAC9C,EACD,WAAW,GAAG;YACZ,MAAM,EAAE,mCAAmC;YAC3C,OAAO,EAAE,oCAAoC;SAC9C,EACD,GAAG,EACH,GAAG,GACJ,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC1D,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC1D,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4BAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAvCD,yBAuCC"}
@@ -1,11 +1,13 @@
1
1
  /**
2
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
2
3
  * @access private
3
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
4
4
  */
5
5
  /**
6
6
  * @typedef {object} WordcountConfigOptions
7
- * @property {ErrorMessageConfig} errorMsgMax Error message to use on max length failure
8
- * @property {ErrorMessageConfig} errorMsgMin Error message to use on min length failure
7
+ * @property {ErrorMessageConfig} errorMsgMax Error message to use on max length
8
+ * failure
9
+ * @property {ErrorMessageConfig} errorMsgMin Error message to use on min length
10
+ * failure
9
11
  * @property {number} max Maximum string length allowed
10
12
  * @property {number} min Minimum string length required
11
13
  */
@@ -23,14 +25,16 @@ export default class WordCount extends ValidatorFactory {
23
25
  validate(inputValue?: string, dataContext?: {}): ValidationError[];
24
26
  sanitise(value: any): string | undefined;
25
27
  }
26
- export type ErrorMessageConfig = import('../../casa').ErrorMessageConfig;
28
+ export type ErrorMessageConfig = import("../../casa").ErrorMessageConfig;
27
29
  export type WordcountConfigOptions = {
28
30
  /**
29
- * Error message to use on max length failure
31
+ * Error message to use on max length
32
+ * failure
30
33
  */
31
34
  errorMsgMax: ErrorMessageConfig;
32
35
  /**
33
- * Error message to use on min length failure
36
+ * Error message to use on min length
37
+ * failure
34
38
  */
35
39
  errorMsgMin: ErrorMessageConfig;
36
40
  /**
@@ -42,5 +46,5 @@ export type WordcountConfigOptions = {
42
46
  */
43
47
  min: number;
44
48
  };
45
- import ValidatorFactory from '../ValidatorFactory.js';
46
- import ValidationError from '../ValidationError.js';
49
+ import ValidatorFactory from "../ValidatorFactory.js";
50
+ import ValidationError from "../ValidationError.js";
@@ -8,13 +8,15 @@ const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"))
8
8
  const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
9
9
  const utils_js_1 = require("../utils.js");
10
10
  /**
11
+ * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
11
12
  * @access private
12
- * @typedef {import('../../casa').ErrorMessageConfig} ErrorMessageConfig
13
13
  */
14
14
  /**
15
15
  * @typedef {object} WordcountConfigOptions
16
- * @property {ErrorMessageConfig} errorMsgMax Error message to use on max length failure
17
- * @property {ErrorMessageConfig} errorMsgMin Error message to use on min length failure
16
+ * @property {ErrorMessageConfig} errorMsgMax Error message to use on max length
17
+ * failure
18
+ * @property {ErrorMessageConfig} errorMsgMin Error message to use on min length
19
+ * failure
18
20
  * @property {number} max Maximum string length allowed
19
21
  * @property {number} min Minimum string length required
20
22
  */
@@ -29,26 +31,28 @@ const utils_js_1 = require("../utils.js");
29
31
  class WordCount extends ValidatorFactory_js_1.default {
30
32
  constructor() {
31
33
  super(...arguments);
32
- this.name = 'wordCount';
34
+ this.name = "wordCount";
33
35
  }
34
36
  count(input) {
35
37
  return (input.match(/\S+/g) || []).length;
36
38
  }
37
- validate(inputValue = '', dataContext = {}) {
39
+ validate(inputValue = "", dataContext = {}) {
38
40
  const { errorMsgMax = {
39
- inline: 'validation:rule.wordCount.max.inline',
40
- summary: 'validation:rule.wordCount.max.summary',
41
+ inline: "validation:rule.wordCount.max.inline",
42
+ summary: "validation:rule.wordCount.max.summary",
41
43
  }, errorMsgMin = {
42
- inline: 'validation:rule.wordCount.min.inline',
43
- summary: 'validation:rule.wordCount.min.summary',
44
+ inline: "validation:rule.wordCount.min.inline",
45
+ summary: "validation:rule.wordCount.min.summary",
44
46
  }, min, max, } = this.config;
45
47
  let errorMsg;
46
48
  let valid = true;
47
- if (typeof max !== 'undefined' && (inputValue.match(/\S+/g) || []).length > max) {
49
+ if (typeof max !== "undefined" &&
50
+ (inputValue.match(/\S+/g) || []).length > max) {
48
51
  valid = false;
49
52
  errorMsg = errorMsgMax;
50
53
  }
51
- if (typeof min !== 'undefined' && (inputValue.match(/\S+/g) || []).length < min) {
54
+ if (typeof min !== "undefined" &&
55
+ (inputValue.match(/\S+/g) || []).length < min) {
52
56
  valid = false;
53
57
  errorMsg = errorMsgMin;
54
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wordCount.js","sourceRoot":"","sources":["../../../src/lib/validators/wordCount.js"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,iFAAsD;AACtD,+EAAoD;AACpD,0CAA6C;AAE7C;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,MAAqB,SAAU,SAAQ,6BAAgB;IAAvD;;QACE,SAAI,GAAG,WAAW,CAAC;IA0CrB,CAAC;IAxCC,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,QAAQ,CAAC,UAAU,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE;QACxC,MAAM,EACJ,WAAW,GAAG;YACZ,MAAM,EAAE,sCAAsC;YAC9C,OAAO,EAAE,uCAAuC;SACjD,EACD,WAAW,GAAG;YACZ,MAAM,EAAE,sCAAsC;YAC9C,OAAO,EAAE,uCAAuC;SACjD,EACD,GAAG,EACH,GAAG,GACJ,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAChF,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAChF,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4BAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA3CD,4BA2CC"}
1
+ {"version":3,"file":"wordCount.js","sourceRoot":"","sources":["../../../src/lib/validators/wordCount.js"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,iFAAsD;AACtD,+EAAoD;AACpD,0CAA6C;AAE7C;;;GAGG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAqB,SAAU,SAAQ,6BAAgB;IAAvD;;QACE,SAAI,GAAG,WAAW,CAAC;IAgDrB,CAAC;IA9CC,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,QAAQ,CAAC,UAAU,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE;QACxC,MAAM,EACJ,WAAW,GAAG;YACZ,MAAM,EAAE,sCAAsC;YAC9C,OAAO,EAAE,uCAAuC;SACjD,EACD,WAAW,GAAG;YACZ,MAAM,EAAE,sCAAsC;YAC9C,OAAO,EAAE,uCAAuC;SACjD,EACD,GAAG,EACH,GAAG,GACJ,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IACE,OAAO,GAAG,KAAK,WAAW;YAC1B,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,GAAG,EAC7C,CAAC;YACD,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,IACE,OAAO,GAAG,KAAK,WAAW;YAC1B,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,GAAG,EAC7C,CAAC;YACD,KAAK,GAAG,KAAK,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4BAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAjDD,4BAiDC"}
@@ -1,23 +1,26 @@
1
1
  /**
2
2
  * Generate a URL pointing at a particular waypoint.
3
3
  *
4
- * @example
5
- * // generates: /path/details?edit&editorigin=%2Fsomewhere%2Felse
6
- * waypointUrl({
7
- * mountUrl: '/path/',
8
- * waypoint: 'details',
9
- * edit: true,
10
- * editOrigin: '/somewhere/else'
11
- * })
12
4
  * @memberof module:@dwp/govuk-casa
5
+ * @example
6
+ * // generates: /path/details?edit&editorigin=%2Fsomewhere%2Felse
7
+ * waypointUrl({
8
+ * mountUrl: "/path/",
9
+ * waypoint: "details",
10
+ * edit: true,
11
+ * editOrigin: "/somewhere/else",
12
+ * });
13
+ *
13
14
  * @param {object} obj Options
14
- * @param {string} [obj.waypoint=""] Waypoint
15
- * @param {string} [obj.mountUrl="/"] Mount URL
15
+ * @param {string} [obj.waypoint=""] Waypoint. Default is `""`
16
+ * @param {string} [obj.mountUrl="/"] Mount URL. Default is `"/"`
16
17
  * @param {JourneyContext} [obj.journeyContext] JourneyContext
17
- * @param {boolean} [obj.edit=false] Turn edit mode on or off
18
+ * @param {boolean} [obj.edit=false] Turn edit mode on or off. Default is
19
+ * `false`
18
20
  * @param {string} [obj.editOrigin] Edit mode original URL
19
21
  * @param {boolean} [obj.skipTo] Skip to this waypoint from the current one
20
- * @param {string} [obj.routeName=next] Plan route name; next | prev
22
+ * @param {string} [obj.routeName=next] Plan route name; next | prev. Default is
23
+ * `next`
21
24
  * @returns {string} URL
22
25
  */
23
26
  export default function waypointUrl({ waypoint, mountUrl, journeyContext, edit, editOrigin, skipTo, routeName, }?: {
@@ -29,4 +32,4 @@ export default function waypointUrl({ waypoint, mountUrl, journeyContext, edit,
29
32
  skipTo?: boolean | undefined;
30
33
  routeName?: string | undefined;
31
34
  }): string;
32
- export type JourneyContext = import('./index').JourneyContext;
35
+ export type JourneyContext = import("./index").JourneyContext;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
+ * @typedef {import("./index").JourneyContext} JourneyContext
3
4
  * @access private
4
- * @typedef {import('./index').JourneyContext} JourneyContext
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  /** @access private */
@@ -9,22 +9,22 @@ const reUrlProtocolExtract = /^url:\/\/(.+)$/i;
9
9
  /**
10
10
  * Sanitise a waypoint string.
11
11
  *
12
- * @access private
13
12
  * @param {string} w Waypoint
14
13
  * @returns {string} Sanitised waypoint
14
+ * @access private
15
15
  */
16
- const sanitiseWaypoint = (w) => w.replace(/[^/a-z0-9_-]/ig, '').replace(/\/+/g, '/');
16
+ const sanitiseWaypoint = (w) => w.replace(/[^/a-z0-9_-]/gi, "").replace(/\/+/g, "/");
17
17
  /**
18
- * Sanitise a waypoint string, with allowed URL parameters:
19
- * contextid = JourneyContext ID
18
+ * Sanitise a waypoint string, with allowed URL parameters: contextid =
19
+ * JourneyContext ID
20
20
  *
21
- * @access private
22
21
  * @param {string} w Waypoint and potential URL parameters
23
22
  * @returns {string} Sanitised waypoint
23
+ * @access private
24
24
  */
25
25
  const sanitiseWaypointWithAllowedParams = (w) => {
26
26
  // Extract URL params
27
- const parts = w.split('?');
27
+ const parts = w.split("?");
28
28
  if (parts.length !== 2) {
29
29
  return sanitiseWaypoint(w);
30
30
  }
@@ -32,51 +32,54 @@ const sanitiseWaypointWithAllowedParams = (w) => {
32
32
  const urlSearchParams = new URLSearchParams(rawParams);
33
33
  // Strip all but those parameters allowed
34
34
  const validatedUrlSearchParams = new URLSearchParams();
35
- for (const pk of ['contextid']) {
35
+ for (const pk of ["contextid"]) {
36
36
  if (urlSearchParams.has(pk)) {
37
37
  validatedUrlSearchParams.set(pk, urlSearchParams.get(pk));
38
38
  }
39
39
  }
40
- return `${sanitiseWaypoint(waypoint)}?${validatedUrlSearchParams.toString()}`.replace(/\?$/, '');
40
+ return `${sanitiseWaypoint(waypoint)}?${validatedUrlSearchParams.toString()}`.replace(/\?$/, "");
41
41
  };
42
42
  /**
43
43
  * Generate a URL pointing at a particular waypoint.
44
44
  *
45
- * @example
46
- * // generates: /path/details?edit&editorigin=%2Fsomewhere%2Felse
47
- * waypointUrl({
48
- * mountUrl: '/path/',
49
- * waypoint: 'details',
50
- * edit: true,
51
- * editOrigin: '/somewhere/else'
52
- * })
53
45
  * @memberof module:@dwp/govuk-casa
46
+ * @example
47
+ * // generates: /path/details?edit&editorigin=%2Fsomewhere%2Felse
48
+ * waypointUrl({
49
+ * mountUrl: "/path/",
50
+ * waypoint: "details",
51
+ * edit: true,
52
+ * editOrigin: "/somewhere/else",
53
+ * });
54
+ *
54
55
  * @param {object} obj Options
55
- * @param {string} [obj.waypoint=""] Waypoint
56
- * @param {string} [obj.mountUrl="/"] Mount URL
56
+ * @param {string} [obj.waypoint=""] Waypoint. Default is `""`
57
+ * @param {string} [obj.mountUrl="/"] Mount URL. Default is `"/"`
57
58
  * @param {JourneyContext} [obj.journeyContext] JourneyContext
58
- * @param {boolean} [obj.edit=false] Turn edit mode on or off
59
+ * @param {boolean} [obj.edit=false] Turn edit mode on or off. Default is
60
+ * `false`
59
61
  * @param {string} [obj.editOrigin] Edit mode original URL
60
62
  * @param {boolean} [obj.skipTo] Skip to this waypoint from the current one
61
- * @param {string} [obj.routeName=next] Plan route name; next | prev
63
+ * @param {string} [obj.routeName=next] Plan route name; next | prev. Default is
64
+ * `next`
62
65
  * @returns {string} URL
63
66
  */
64
- function waypointUrl({ waypoint = '', mountUrl = '/', journeyContext, edit = false, editOrigin, skipTo, routeName = 'next', } = Object.create(null)) {
65
- const url = new URL('https://placeholder.test');
67
+ function waypointUrl({ waypoint = "", mountUrl = "/", journeyContext, edit = false, editOrigin, skipTo, routeName = "next", } = Object.create(null)) {
68
+ const url = new URL("https://placeholder.test");
66
69
  // Handle url:// protocol
67
70
  // - This will generate a link to the root handler "_" for the given mount path
68
- if (String(waypoint).substr(0, 7) === 'url:///') {
71
+ if (String(waypoint).substr(0, 7) === "url:///") {
69
72
  const m = waypoint.match(reUrlProtocolExtract);
70
- const u = new URL(sanitiseWaypointWithAllowedParams(m[1]), 'https://placeholder.test/');
73
+ const u = new URL(sanitiseWaypointWithAllowedParams(m[1]), "https://placeholder.test/");
71
74
  url.pathname = `${sanitiseWaypoint(u.pathname)}/_/`;
72
- url.searchParams.set('refmount', `url://${mountUrl}`);
73
- url.searchParams.set('route', routeName);
75
+ url.searchParams.set("refmount", `url://${mountUrl}`);
76
+ url.searchParams.set("route", routeName);
74
77
  for (const [uk, uv] of u.searchParams.entries()) {
75
78
  url.searchParams.append(uk, uv);
76
79
  }
77
80
  }
78
81
  else {
79
- const u = new URL(sanitiseWaypointWithAllowedParams(`${mountUrl}${waypoint}`), 'https://placeholder.test/');
82
+ const u = new URL(sanitiseWaypointWithAllowedParams(`${mountUrl}${waypoint}`), "https://placeholder.test/");
80
83
  url.pathname = u.pathname;
81
84
  url.search = u.search;
82
85
  }
@@ -84,22 +87,22 @@ function waypointUrl({ waypoint = '', mountUrl = '/', journeyContext, edit = fal
84
87
  // To avoid messy URLs with duplicated content, this parameter will _not_ be
85
88
  // added if the context ID already appears in the url path, i.e. to avoid
86
89
  // `/path/1234-abcd/waypoint?contextid=1234-abcd` scenarios
87
- if (journeyContext
88
- && !journeyContext.isDefault()
89
- && journeyContext.identity.id
90
- && !mountUrl.includes(`/${journeyContext.identity.id}/`)) {
91
- url.searchParams.set('contextid', journeyContext.identity.id);
90
+ if (journeyContext &&
91
+ !journeyContext.isDefault() &&
92
+ journeyContext.identity.id &&
93
+ !mountUrl.includes(`/${journeyContext.identity.id}/`)) {
94
+ url.searchParams.set("contextid", journeyContext.identity.id);
92
95
  }
93
96
  // Attach edit mode flag
94
97
  if (edit === true) {
95
- url.searchParams.set('edit', 'true');
98
+ url.searchParams.set("edit", "true");
96
99
  }
97
100
  if (edit && editOrigin) {
98
- url.searchParams.set('editorigin', sanitiseWaypointWithAllowedParams(editOrigin));
101
+ url.searchParams.set("editorigin", sanitiseWaypointWithAllowedParams(editOrigin));
99
102
  }
100
103
  // Skipto
101
104
  if (skipTo) {
102
- url.searchParams.set('skipto', sanitiseWaypointWithAllowedParams(skipTo));
105
+ url.searchParams.set("skipto", sanitiseWaypointWithAllowedParams(skipTo));
103
106
  }
104
107
  return `${sanitiseWaypoint(url.pathname)}${url.search}`;
105
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"waypoint-url.js","sourceRoot":"","sources":["../../src/lib/waypoint-url.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"waypoint-url.js","sourceRoot":"","sources":["../../src/lib/waypoint-url.js"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,sBAAsB;AACtB,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,EAAE,CAC7B,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,iCAAiC,GAAG,CAAC,CAAC,EAAE,EAAE;IAC9C,qBAAqB;IACrB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;IACpC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAEvD,yCAAyC;IACzC,MAAM,wBAAwB,GAAG,IAAI,eAAe,EAAE,CAAC;IACvD,KAAK,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,wBAAwB,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CACnF,KAAK,EACL,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAwB,WAAW,CACjC,EACE,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,GAAG,EACd,cAAc,EACd,IAAI,GAAG,KAAK,EACZ,UAAU,EACV,MAAM,EACN,SAAS,GAAG,MAAM,GACnB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAEvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAEhD,yBAAyB;IACzB,+EAA+E;IAC/E,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAE/C,MAAM,CAAC,GAAG,IAAI,GAAG,CACf,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvC,2BAA2B,CAC5B,CAAC;QACF,GAAG,CAAC,QAAQ,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAEpD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC;QACtD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,IAAI,GAAG,CACf,iCAAiC,CAAC,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAC3D,2BAA2B,CAC5B,CAAC;QACF,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC1B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,iEAAiE;IACjE,4EAA4E;IAC5E,yEAAyE;IACzE,2DAA2D;IAC3D,IACE,cAAc;QACd,CAAC,cAAc,CAAC,SAAS,EAAE;QAC3B,cAAc,CAAC,QAAQ,CAAC,EAAE;QAC1B,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EACrD,CAAC;QACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,wBAAwB;IACxB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;QACvB,GAAG,CAAC,YAAY,CAAC,GAAG,CAClB,YAAY,EACZ,iCAAiC,CAAC,UAAU,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,SAAS;IACT,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,iCAAiC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;AAC1D,CAAC;AArED,8BAqEC"}