@dwp/govuk-casa 8.16.1 → 8.16.3

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 (189) hide show
  1. package/dist/assets/css/casa-ie8.css +1 -1
  2. package/dist/assets/css/casa.css +1 -1
  3. package/dist/casa.d.ts +13 -13
  4. package/dist/casa.js +17 -7
  5. package/dist/casa.js.map +1 -1
  6. package/dist/lib/CasaTemplateLoader.d.ts +1 -1
  7. package/dist/lib/CasaTemplateLoader.js +13 -14
  8. package/dist/lib/CasaTemplateLoader.js.map +1 -1
  9. package/dist/lib/JourneyContext.d.ts +10 -4
  10. package/dist/lib/JourneyContext.js +57 -47
  11. package/dist/lib/JourneyContext.js.map +1 -1
  12. package/dist/lib/MutableRouter.d.ts +1 -1
  13. package/dist/lib/MutableRouter.js +22 -23
  14. package/dist/lib/MutableRouter.js.map +1 -1
  15. package/dist/lib/Plan.d.ts +5 -5
  16. package/dist/lib/Plan.js +49 -36
  17. package/dist/lib/Plan.js.map +1 -1
  18. package/dist/lib/ValidationError.d.ts +1 -1
  19. package/dist/lib/ValidationError.js +9 -9
  20. package/dist/lib/ValidationError.js.map +1 -1
  21. package/dist/lib/ValidatorFactory.js +4 -7
  22. package/dist/lib/ValidatorFactory.js.map +1 -1
  23. package/dist/lib/configuration-ingestor.d.ts +75 -14
  24. package/dist/lib/configuration-ingestor.js +156 -64
  25. package/dist/lib/configuration-ingestor.js.map +1 -1
  26. package/dist/lib/configure.js +11 -10
  27. package/dist/lib/configure.js.map +1 -1
  28. package/dist/lib/constants.js +8 -8
  29. package/dist/lib/context-id-generators.d.ts +1 -1
  30. package/dist/lib/context-id-generators.js +7 -4
  31. package/dist/lib/context-id-generators.js.map +1 -1
  32. package/dist/lib/end-session.js +2 -2
  33. package/dist/lib/field.d.ts +6 -6
  34. package/dist/lib/field.js +15 -21
  35. package/dist/lib/field.js.map +1 -1
  36. package/dist/lib/index.d.ts +13 -13
  37. package/dist/lib/index.js +17 -7
  38. package/dist/lib/index.js.map +1 -1
  39. package/dist/lib/logger.js +7 -7
  40. package/dist/lib/logger.js.map +1 -1
  41. package/dist/lib/mount.js +3 -3
  42. package/dist/lib/mount.js.map +1 -1
  43. package/dist/lib/nunjucks-filters.d.ts +5 -1
  44. package/dist/lib/nunjucks-filters.js +37 -23
  45. package/dist/lib/nunjucks-filters.js.map +1 -1
  46. package/dist/lib/nunjucks.d.ts +2 -2
  47. package/dist/lib/nunjucks.js +6 -7
  48. package/dist/lib/nunjucks.js.map +1 -1
  49. package/dist/lib/utils.js +52 -42
  50. package/dist/lib/utils.js.map +1 -1
  51. package/dist/lib/validators/dateObject.d.ts +3 -3
  52. package/dist/lib/validators/dateObject.js +44 -37
  53. package/dist/lib/validators/dateObject.js.map +1 -1
  54. package/dist/lib/validators/email.d.ts +2 -2
  55. package/dist/lib/validators/email.js +4 -5
  56. package/dist/lib/validators/email.js.map +1 -1
  57. package/dist/lib/validators/inArray.d.ts +2 -2
  58. package/dist/lib/validators/inArray.js +5 -6
  59. package/dist/lib/validators/inArray.js.map +1 -1
  60. package/dist/lib/validators/index.d.ts +10 -10
  61. package/dist/lib/validators/index.js.map +1 -1
  62. package/dist/lib/validators/nino.d.ts +2 -2
  63. package/dist/lib/validators/nino.js +10 -7
  64. package/dist/lib/validators/nino.js.map +1 -1
  65. package/dist/lib/validators/postalAddressObject.d.ts +2 -2
  66. package/dist/lib/validators/postalAddressObject.js +52 -39
  67. package/dist/lib/validators/postalAddressObject.js.map +1 -1
  68. package/dist/lib/validators/range.d.ts +2 -2
  69. package/dist/lib/validators/range.js +6 -7
  70. package/dist/lib/validators/range.js.map +1 -1
  71. package/dist/lib/validators/regex.d.ts +2 -2
  72. package/dist/lib/validators/regex.js +4 -5
  73. package/dist/lib/validators/regex.js.map +1 -1
  74. package/dist/lib/validators/required.d.ts +2 -2
  75. package/dist/lib/validators/required.js +6 -9
  76. package/dist/lib/validators/required.js.map +1 -1
  77. package/dist/lib/validators/strlen.d.ts +2 -2
  78. package/dist/lib/validators/strlen.js +8 -9
  79. package/dist/lib/validators/strlen.js.map +1 -1
  80. package/dist/lib/validators/wordCount.d.ts +2 -2
  81. package/dist/lib/validators/wordCount.js +10 -9
  82. package/dist/lib/validators/wordCount.js.map +1 -1
  83. package/dist/lib/waypoint-url.d.ts +4 -4
  84. package/dist/lib/waypoint-url.js +23 -23
  85. package/dist/lib/waypoint-url.js.map +1 -1
  86. package/dist/middleware/body-parser.d.ts +27 -5
  87. package/dist/middleware/body-parser.js +37 -6
  88. package/dist/middleware/body-parser.js.map +1 -1
  89. package/dist/middleware/csrf.d.ts +3 -0
  90. package/dist/middleware/csrf.js +3 -0
  91. package/dist/middleware/csrf.js.map +1 -1
  92. package/dist/middleware/data.d.ts +22 -5
  93. package/dist/middleware/data.js +37 -7
  94. package/dist/middleware/data.js.map +1 -1
  95. package/dist/middleware/gather-fields.d.ts +1 -1
  96. package/dist/middleware/gather-fields.js +4 -3
  97. package/dist/middleware/gather-fields.js.map +1 -1
  98. package/dist/middleware/i18n.d.ts +11 -2
  99. package/dist/middleware/i18n.js +26 -17
  100. package/dist/middleware/i18n.js.map +1 -1
  101. package/dist/middleware/post.d.ts +3 -1
  102. package/dist/middleware/post.js +35 -18
  103. package/dist/middleware/post.js.map +1 -1
  104. package/dist/middleware/pre.d.ts +1 -1
  105. package/dist/middleware/pre.js +44 -21
  106. package/dist/middleware/pre.js.map +1 -1
  107. package/dist/middleware/progress-journey.d.ts +1 -1
  108. package/dist/middleware/progress-journey.js +5 -5
  109. package/dist/middleware/progress-journey.js.map +1 -1
  110. package/dist/middleware/sanitise-fields.d.ts +2 -2
  111. package/dist/middleware/sanitise-fields.js +13 -11
  112. package/dist/middleware/sanitise-fields.js.map +1 -1
  113. package/dist/middleware/serve-first-waypoint.d.ts +1 -1
  114. package/dist/middleware/serve-first-waypoint.js +6 -4
  115. package/dist/middleware/serve-first-waypoint.js.map +1 -1
  116. package/dist/middleware/session.d.ts +27 -8
  117. package/dist/middleware/session.js +53 -25
  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 +15 -13
  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 +2 -2
  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 +2 -2
  132. package/dist/routes/ancillary.js +3 -3
  133. package/dist/routes/ancillary.js.map +1 -1
  134. package/dist/routes/journey.d.ts +1 -1
  135. package/dist/routes/journey.js +85 -31
  136. package/dist/routes/journey.js.map +1 -1
  137. package/dist/routes/static.d.ts +2 -2
  138. package/dist/routes/static.js +18 -18
  139. package/dist/routes/static.js.map +1 -1
  140. package/package.json +39 -42
  141. package/src/casa.js +13 -13
  142. package/src/lib/CasaTemplateLoader.js +21 -17
  143. package/src/lib/JourneyContext.js +118 -79
  144. package/src/lib/MutableRouter.js +30 -26
  145. package/src/lib/Plan.js +109 -62
  146. package/src/lib/ValidationError.js +13 -10
  147. package/src/lib/ValidatorFactory.js +7 -8
  148. package/src/lib/configuration-ingestor.js +200 -74
  149. package/src/lib/configure.js +31 -30
  150. package/src/lib/constants.js +8 -8
  151. package/src/lib/context-id-generators.js +39 -38
  152. package/src/lib/end-session.js +3 -3
  153. package/src/lib/field.js +48 -32
  154. package/src/lib/index.js +12 -12
  155. package/src/lib/logger.js +9 -9
  156. package/src/lib/mount.js +68 -73
  157. package/src/lib/nunjucks-filters.js +57 -44
  158. package/src/lib/nunjucks.js +20 -16
  159. package/src/lib/utils.js +69 -44
  160. package/src/lib/validators/dateObject.js +57 -48
  161. package/src/lib/validators/email.js +8 -9
  162. package/src/lib/validators/inArray.js +8 -9
  163. package/src/lib/validators/index.js +11 -11
  164. package/src/lib/validators/nino.js +25 -12
  165. package/src/lib/validators/postalAddressObject.js +73 -55
  166. package/src/lib/validators/range.js +9 -11
  167. package/src/lib/validators/regex.js +7 -8
  168. package/src/lib/validators/required.js +13 -14
  169. package/src/lib/validators/strlen.js +11 -12
  170. package/src/lib/validators/wordCount.js +17 -12
  171. package/src/lib/waypoint-url.js +48 -33
  172. package/src/middleware/body-parser.js +44 -10
  173. package/src/middleware/csrf.js +4 -1
  174. package/src/middleware/data.js +62 -25
  175. package/src/middleware/gather-fields.js +8 -8
  176. package/src/middleware/i18n.js +49 -39
  177. package/src/middleware/post.js +47 -21
  178. package/src/middleware/pre.js +60 -35
  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 +12 -10
  182. package/src/middleware/session.js +97 -65
  183. package/src/middleware/skip-waypoint.js +7 -9
  184. package/src/middleware/steer-journey.js +39 -27
  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 +4 -6
  188. package/src/routes/journey.js +158 -78
  189. package/src/routes/static.js +61 -28
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- /* eslint-disable class-methods-use-this */
7
6
  const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
8
7
  const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
9
8
  const utils_js_1 = require("../utils.js");
@@ -29,26 +28,28 @@ const utils_js_1 = require("../utils.js");
29
28
  class WordCount extends ValidatorFactory_js_1.default {
30
29
  constructor() {
31
30
  super(...arguments);
32
- this.name = 'wordCount';
31
+ this.name = "wordCount";
33
32
  }
34
33
  count(input) {
35
34
  return (input.match(/\S+/g) || []).length;
36
35
  }
37
- validate(inputValue = '', dataContext = {}) {
36
+ validate(inputValue = "", dataContext = {}) {
38
37
  const { errorMsgMax = {
39
- inline: 'validation:rule.wordCount.max.inline',
40
- summary: 'validation:rule.wordCount.max.summary',
38
+ inline: "validation:rule.wordCount.max.inline",
39
+ summary: "validation:rule.wordCount.max.summary",
41
40
  }, errorMsgMin = {
42
- inline: 'validation:rule.wordCount.min.inline',
43
- summary: 'validation:rule.wordCount.min.summary',
41
+ inline: "validation:rule.wordCount.min.inline",
42
+ summary: "validation:rule.wordCount.min.summary",
44
43
  }, min, max, } = this.config;
45
44
  let errorMsg;
46
45
  let valid = true;
47
- if (typeof max !== 'undefined' && (inputValue.match(/\S+/g) || []).length > max) {
46
+ if (typeof max !== "undefined" &&
47
+ (inputValue.match(/\S+/g) || []).length > max) {
48
48
  valid = false;
49
49
  errorMsg = errorMsgMax;
50
50
  }
51
- if (typeof min !== 'undefined' && (inputValue.match(/\S+/g) || []).length < min) {
51
+ if (typeof min !== "undefined" &&
52
+ (inputValue.match(/\S+/g) || []).length < min) {
52
53
  valid = false;
53
54
  errorMsg = errorMsgMin;
54
55
  }
@@ -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,iFAAsD;AACtD,+EAAoD;AACpD,0CAA6C;AAE7C;;;GAGG;AAEH;;;;;;GAMG;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"}
@@ -11,13 +11,13 @@
11
11
  * })
12
12
  * @memberof module:@dwp/govuk-casa
13
13
  * @param {object} obj Options
14
- * @param {string} [obj.waypoint=""] Waypoint
15
- * @param {string} [obj.mountUrl="/"] Mount URL
14
+ * @param {string} [obj.waypoint] Waypoint
15
+ * @param {string} [obj.mountUrl] Mount URL
16
16
  * @param {JourneyContext} [obj.journeyContext] JourneyContext
17
- * @param {boolean} [obj.edit=false] Turn edit mode on or off
17
+ * @param {boolean} [obj.edit] Turn edit mode on or off
18
18
  * @param {string} [obj.editOrigin] Edit mode original URL
19
19
  * @param {boolean} [obj.skipTo] Skip to this waypoint from the current one
20
- * @param {string} [obj.routeName=next] Plan route name; next | prev
20
+ * @param {string} [obj.routeName] Plan route name; next | prev
21
21
  * @returns {string} URL
22
22
  */
23
23
  export default function waypointUrl({ waypoint, mountUrl, journeyContext, edit, editOrigin, skipTo, routeName, }?: {
@@ -14,7 +14,7 @@ const reUrlProtocolExtract = /^url:\/\/(.+)$/i;
14
14
  * @param {string} w Waypoint
15
15
  * @returns {string} Sanitised waypoint
16
16
  */
17
- const sanitiseWaypoint = (w) => w.replace(/[^/a-z0-9_-]/ig, '').replace(/\/+/g, '/');
17
+ const sanitiseWaypoint = (w) => w.replace(/[^/a-z0-9_-]/gi, "").replace(/\/+/g, "/");
18
18
  /**
19
19
  * Sanitise a waypoint string, with allowed URL parameters:
20
20
  * contextid = JourneyContext ID
@@ -25,7 +25,7 @@ const sanitiseWaypoint = (w) => w.replace(/[^/a-z0-9_-]/ig, '').replace(/\/+/g,
25
25
  */
26
26
  const sanitiseWaypointWithAllowedParams = (w) => {
27
27
  // Extract URL params
28
- const parts = w.split('?');
28
+ const parts = w.split("?");
29
29
  if (parts.length !== 2) {
30
30
  return sanitiseWaypoint(w);
31
31
  }
@@ -33,12 +33,12 @@ const sanitiseWaypointWithAllowedParams = (w) => {
33
33
  const urlSearchParams = new URLSearchParams(rawParams);
34
34
  // Strip all but those parameters allowed
35
35
  const validatedUrlSearchParams = new URLSearchParams();
36
- for (const pk of ['contextid']) {
36
+ for (const pk of ["contextid"]) {
37
37
  if (urlSearchParams.has(pk)) {
38
38
  validatedUrlSearchParams.set(pk, urlSearchParams.get(pk));
39
39
  }
40
40
  }
41
- return `${sanitiseWaypoint(waypoint)}?${validatedUrlSearchParams.toString()}`.replace(/\?$/, '');
41
+ return `${sanitiseWaypoint(waypoint)}?${validatedUrlSearchParams.toString()}`.replace(/\?$/, "");
42
42
  };
43
43
  /**
44
44
  * Generate a URL pointing at a particular waypoint.
@@ -53,31 +53,31 @@ const sanitiseWaypointWithAllowedParams = (w) => {
53
53
  * })
54
54
  * @memberof module:@dwp/govuk-casa
55
55
  * @param {object} obj Options
56
- * @param {string} [obj.waypoint=""] Waypoint
57
- * @param {string} [obj.mountUrl="/"] Mount URL
56
+ * @param {string} [obj.waypoint] Waypoint
57
+ * @param {string} [obj.mountUrl] Mount URL
58
58
  * @param {JourneyContext} [obj.journeyContext] JourneyContext
59
- * @param {boolean} [obj.edit=false] Turn edit mode on or off
59
+ * @param {boolean} [obj.edit] Turn edit mode on or off
60
60
  * @param {string} [obj.editOrigin] Edit mode original URL
61
61
  * @param {boolean} [obj.skipTo] Skip to this waypoint from the current one
62
- * @param {string} [obj.routeName=next] Plan route name; next | prev
62
+ * @param {string} [obj.routeName] Plan route name; next | prev
63
63
  * @returns {string} URL
64
64
  */
65
- function waypointUrl({ waypoint = '', mountUrl = '/', journeyContext, edit = false, editOrigin, skipTo, routeName = 'next', } = Object.create(null)) {
66
- const url = new URL('https://placeholder.test');
65
+ function waypointUrl({ waypoint = "", mountUrl = "/", journeyContext, edit = false, editOrigin, skipTo, routeName = "next", } = Object.create(null)) {
66
+ const url = new URL("https://placeholder.test");
67
67
  // Handle url:// protocol
68
68
  // - This will generate a link to the root handler "_" for the given mount path
69
- if (String(waypoint).substr(0, 7) === 'url:///') {
69
+ if (String(waypoint).substr(0, 7) === "url:///") {
70
70
  const m = waypoint.match(reUrlProtocolExtract);
71
- const u = new URL(sanitiseWaypointWithAllowedParams(m[1]), 'https://placeholder.test/');
71
+ const u = new URL(sanitiseWaypointWithAllowedParams(m[1]), "https://placeholder.test/");
72
72
  url.pathname = `${sanitiseWaypoint(u.pathname)}/_/`;
73
- url.searchParams.set('refmount', `url://${mountUrl}`);
74
- url.searchParams.set('route', routeName);
73
+ url.searchParams.set("refmount", `url://${mountUrl}`);
74
+ url.searchParams.set("route", routeName);
75
75
  for (const [uk, uv] of u.searchParams.entries()) {
76
76
  url.searchParams.append(uk, uv);
77
77
  }
78
78
  }
79
79
  else {
80
- const u = new URL(sanitiseWaypointWithAllowedParams(`${mountUrl}${waypoint}`), 'https://placeholder.test/');
80
+ const u = new URL(sanitiseWaypointWithAllowedParams(`${mountUrl}${waypoint}`), "https://placeholder.test/");
81
81
  url.pathname = u.pathname;
82
82
  url.search = u.search;
83
83
  }
@@ -85,22 +85,22 @@ function waypointUrl({ waypoint = '', mountUrl = '/', journeyContext, edit = fal
85
85
  // To avoid messy URLs with duplicated content, this parameter will _not_ be
86
86
  // added if the context ID already appears in the url path, i.e. to avoid
87
87
  // `/path/1234-abcd/waypoint?contextid=1234-abcd` scenarios
88
- if (journeyContext
89
- && !journeyContext.isDefault()
90
- && journeyContext.identity.id
91
- && !mountUrl.includes(`/${journeyContext.identity.id}/`)) {
92
- url.searchParams.set('contextid', journeyContext.identity.id);
88
+ if (journeyContext &&
89
+ !journeyContext.isDefault() &&
90
+ journeyContext.identity.id &&
91
+ !mountUrl.includes(`/${journeyContext.identity.id}/`)) {
92
+ url.searchParams.set("contextid", journeyContext.identity.id);
93
93
  }
94
94
  // Attach edit mode flag
95
95
  if (edit === true) {
96
- url.searchParams.set('edit', 'true');
96
+ url.searchParams.set("edit", "true");
97
97
  }
98
98
  if (edit && editOrigin) {
99
- url.searchParams.set('editorigin', sanitiseWaypointWithAllowedParams(editOrigin));
99
+ url.searchParams.set("editorigin", sanitiseWaypointWithAllowedParams(editOrigin));
100
100
  }
101
101
  // Skipto
102
102
  if (skipTo) {
103
- url.searchParams.set('skipto', sanitiseWaypointWithAllowedParams(skipTo));
103
+ url.searchParams.set("skipto", sanitiseWaypointWithAllowedParams(skipTo));
104
104
  }
105
105
  return `${sanitiseWaypoint(url.pathname)}${url.search}`;
106
106
  }
@@ -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;;AAoEH,8BAqEC;AAvID,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;;;;;;;;;;;;;;;;;;;;;GAqBG;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"}
@@ -1,5 +1,27 @@
1
- export function verifyBody(req: any, res: any, buf: any, encoding: any): void;
2
- export default function bodyParserMiddleware({ formMaxParams, formMaxBytes, }: {
3
- formMaxParams: any;
4
- formMaxBytes: any;
5
- }): import("connect").NextHandleFunction[];
1
+ /**
2
+ * Verify request body.
3
+ *
4
+ * @param {Request} req HTTP request
5
+ * @param {Response} res HTTP response
6
+ * @param {Buffer} buf Buffer
7
+ * @param {string} encoding Character encoding
8
+ * @returns {void}
9
+ * @throws {Error} For invalid bodies
10
+ */
11
+ export function verifyBody(req: Request, res: Response, buf: Buffer, encoding: string): void;
12
+ /**
13
+ * Body parsing middleware.
14
+ *
15
+ * @param {object} opts Options
16
+ * @param {number} opts.formMaxParams Max number of parameters that should be
17
+ * parsed
18
+ * @param {number} opts.formMaxBytes Max bytes that should be read
19
+ * @returns {RequestHandler[]} Middleware functions
20
+ */
21
+ export default function bodyParserMiddleware({ formMaxParams, formMaxBytes }: {
22
+ formMaxParams: number;
23
+ formMaxBytes: number;
24
+ }): RequestHandler[];
25
+ export type RequestHandler = import("express").RequestHandler;
26
+ export type Request = import("express").Request;
27
+ export type Response = import("express").Response;
@@ -3,26 +3,57 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.verifyBody = verifyBody;
4
4
  exports.default = bodyParserMiddleware;
5
5
  const express_1 = require("express");
6
+ /**
7
+ * @typedef {import("express").RequestHandler} RequestHandler
8
+ * @access private
9
+ */
10
+ /**
11
+ * @typedef {import("express").Request} Request
12
+ * @access private
13
+ */
14
+ /**
15
+ * @typedef {import("express").Response} Response
16
+ * @access private
17
+ */
6
18
  const rProto = /__proto__/i;
7
19
  const rPrototype = /prototype[='"[\]]/i;
8
20
  const rConstructor = /constructor[='"[\]]/i;
21
+ /**
22
+ * Verify request body.
23
+ *
24
+ * @param {Request} req HTTP request
25
+ * @param {Response} res HTTP response
26
+ * @param {Buffer} buf Buffer
27
+ * @param {string} encoding Character encoding
28
+ * @returns {void}
29
+ * @throws {Error} For invalid bodies
30
+ */
9
31
  function verifyBody(req, res, buf, encoding) {
10
- const body = decodeURI(buf.toString(encoding)).replace(/[\s\u200B-\u200D\uFEFF]/g, '');
32
+ const body = decodeURI(buf.toString(encoding)).replace(/[\s\u200B-\u200D\uFEFF]/g, "");
11
33
  if (rProto.test(body)) {
12
- throw new Error('Request body verification failed (__proto__)');
34
+ throw new Error("Request body verification failed (__proto__)");
13
35
  }
14
36
  if (rPrototype.test(body)) {
15
- throw new Error('Request body verification failed (prototype)');
37
+ throw new Error("Request body verification failed (prototype)");
16
38
  }
17
39
  if (rConstructor.test(body)) {
18
- throw new Error('Request body verification failed (constructor)');
40
+ throw new Error("Request body verification failed (constructor)");
19
41
  }
20
42
  }
21
- function bodyParserMiddleware({ formMaxParams, formMaxBytes, }) {
43
+ /**
44
+ * Body parsing middleware.
45
+ *
46
+ * @param {object} opts Options
47
+ * @param {number} opts.formMaxParams Max number of parameters that should be
48
+ * parsed
49
+ * @param {number} opts.formMaxBytes Max bytes that should be read
50
+ * @returns {RequestHandler[]} Middleware functions
51
+ */
52
+ function bodyParserMiddleware({ formMaxParams, formMaxBytes }) {
22
53
  return [
23
54
  (0, express_1.urlencoded)({
24
55
  extended: true,
25
- type: 'application/x-www-form-urlencoded',
56
+ type: "application/x-www-form-urlencoded",
26
57
  inflate: true,
27
58
  parameterLimit: formMaxParams,
28
59
  limit: formMaxBytes,
@@ -1 +1 @@
1
- {"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../src/middleware/body-parser.js"],"names":[],"mappings":";;AAMA,gCAWC;AAED,uCAcC;AAjCD,qCAA0D;AAE1D,MAAM,MAAM,GAAG,YAAY,CAAC;AAC5B,MAAM,UAAU,GAAG,oBAAoB,CAAC;AACxC,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAE5C,SAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;IAChD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAwB,oBAAoB,CAAC,EAC3C,aAAa,EACb,YAAY,GACb;IACC,OAAO;QACL,IAAA,oBAAiB,EAAC;YAChB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,aAAa;YAC7B,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,UAAU;SACnB,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../src/middleware/body-parser.js"],"names":[],"mappings":";;AA+BA,gCAcC;AAWD,uCAWC;AAnED,qCAA0D;AAE1D;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH,MAAM,MAAM,GAAG,YAAY,CAAC;AAC5B,MAAM,UAAU,GAAG,oBAAoB,CAAC;AACxC,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAE5C;;;;;;;;;GASG;AACH,SAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;IAChD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CACpD,0BAA0B,EAC1B,EAAE,CACH,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAwB,oBAAoB,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE;IAC1E,OAAO;QACL,IAAA,oBAAiB,EAAC;YAChB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,aAAa;YAC7B,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,UAAU;SACnB,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -1 +1,4 @@
1
+ /**
2
+ *
3
+ */
1
4
  export default function csrfMiddleware(): import("csrf-sync").CsrfSynchronisedProtection[];
@@ -5,6 +5,9 @@ const csrf_sync_1 = require("csrf-sync");
5
5
  // 2 middleware: one to generate the csrf token and check its validity (POST
6
6
  // only), and one to provide that token to templates via the `casa.csrfToken`
7
7
  // variable.
8
+ /**
9
+ *
10
+ */
8
11
  function csrfMiddleware() {
9
12
  const { csrfSynchronisedProtection } = (0, csrf_sync_1.csrfSync)({
10
13
  getTokenFromRequest: (req) => req.body._csrf,
@@ -1 +1 @@
1
- {"version":3,"file":"csrf.js","sourceRoot":"","sources":["../../src/middleware/csrf.js"],"names":[],"mappings":";;AAMA,iCAcC;AApBD,yCAAqC;AAErC,4EAA4E;AAC5E,6EAA6E;AAC7E,YAAY;AAEZ,SAAwB,cAAc;IACpC,MAAM,EAAE,0BAA0B,EAAE,GAAG,IAAA,oBAAQ,EAAC;QAC9C,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;KAC7C,CAAC,CAAC;IACH,OAAO;QACL,0BAA0B;QAC1B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;;YACjB,GAAG,CAAC,MAAM,CAAC,IAAI,mCACV,MAAA,GAAG,CAAC,MAAM,0CAAE,IAAI,KACnB,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAC3B,CAAC;YACF,IAAI,EAAE,CAAC;QACT,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"csrf.js","sourceRoot":"","sources":["../../src/middleware/csrf.js"],"names":[],"mappings":";;AASA,iCAcC;AAvBD,yCAAqC;AAErC,4EAA4E;AAC5E,6EAA6E;AAC7E,YAAY;AAEZ;;GAEG;AACH,SAAwB,cAAc;IACpC,MAAM,EAAE,0BAA0B,EAAE,GAAG,IAAA,oBAAQ,EAAC;QAC9C,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;KAC7C,CAAC,CAAC;IACH,OAAO;QACL,0BAA0B;QAC1B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;;YACjB,GAAG,CAAC,MAAM,CAAC,IAAI,mCACV,MAAA,GAAG,CAAC,MAAM,0CAAE,IAAI,KACnB,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAC3B,CAAC;YACF,IAAI,EAAE,CAAC;QACT,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,22 @@
1
- export default function dataMiddleware({ plan, events, contextIdGenerator, }: {
2
- plan: any;
3
- events: any;
4
- contextIdGenerator: any;
5
- }): ((req: any, res: any, next: any) => void)[];
1
+ /**
2
+ * Data middleware.
3
+ *
4
+ * Decorates the request with some contextual data about the user's journey
5
+ * through the application. This is used by downstream middleware and
6
+ * templates.
7
+ *
8
+ * @param {object} opts Options
9
+ * @param {Plan} opts.plan CASA Plan
10
+ * @param {ContextEventHandler[]} opts.events Event handlers
11
+ * @param {ContextIdGenerator} opts.contextIdGenerator Content ID generator
12
+ * @returns {RequestHandler[]} Middleware functions
13
+ */
14
+ export default function dataMiddleware({ plan, events, contextIdGenerator }: {
15
+ plan: Plan;
16
+ events: ContextEventHandler[];
17
+ contextIdGenerator: ContextIdGenerator;
18
+ }): RequestHandler[];
19
+ export type RequestHandler = import("express").RequestHandler;
20
+ export type Plan = import("../casa.js").Plan;
21
+ export type ContextEventHandler = import("../casa.js").ContextEventHandler;
22
+ export type ContextIdGenerator = import("../casa.js").ContextIdGenerator;
@@ -10,17 +10,46 @@ const lodash_1 = __importDefault(require("lodash"));
10
10
  const JourneyContext_js_1 = __importDefault(require("../lib/JourneyContext.js"));
11
11
  const utils_js_1 = require("../lib/utils.js");
12
12
  const waypoint_url_js_1 = __importDefault(require("../lib/waypoint-url.js"));
13
+ /**
14
+ * @typedef {import("express").RequestHandler} RequestHandler
15
+ * @access private
16
+ */
17
+ /**
18
+ * @typedef {import("../casa.js").Plan} Plan
19
+ * @access private
20
+ */
21
+ /**
22
+ * @typedef {import("../casa.js").ContextEventHandler} ContextEventHandler
23
+ * @access private
24
+ */
25
+ /**
26
+ * @typedef {import("../casa.js").ContextIdGenerator} ContextIdGenerator
27
+ * @access private
28
+ */
13
29
  const { has } = lodash_1.default;
14
30
  const editOrigin = (req) => {
15
- if (has(req.query, 'editorigin')) {
31
+ if (has(req.query, "editorigin")) {
16
32
  return (0, waypoint_url_js_1.default)({ waypoint: req.query.editorigin });
17
33
  }
18
- if (has(req === null || req === void 0 ? void 0 : req.body, 'editorigin')) {
34
+ if (has(req === null || req === void 0 ? void 0 : req.body, "editorigin")) {
19
35
  return (0, waypoint_url_js_1.default)({ waypoint: req.body.editorigin });
20
36
  }
21
- return '';
37
+ return "";
22
38
  };
23
- function dataMiddleware({ plan, events, contextIdGenerator, }) {
39
+ /**
40
+ * Data middleware.
41
+ *
42
+ * Decorates the request with some contextual data about the user's journey
43
+ * through the application. This is used by downstream middleware and
44
+ * templates.
45
+ *
46
+ * @param {object} opts Options
47
+ * @param {Plan} opts.plan CASA Plan
48
+ * @param {ContextEventHandler[]} opts.events Event handlers
49
+ * @param {ContextIdGenerator} opts.contextIdGenerator Content ID generator
50
+ * @returns {RequestHandler[]} Middleware functions
51
+ */
52
+ function dataMiddleware({ plan, events, contextIdGenerator }) {
24
53
  return [
25
54
  (req, res, next) => {
26
55
  /* ------------------------------------------------ Request decorations */
@@ -32,7 +61,8 @@ function dataMiddleware({ plan, events, contextIdGenerator, }) {
32
61
  // `contextid` request parameter
33
62
  journeyContext: JourneyContext_js_1.default.extractContextFromRequest(req).addEventListeners(events),
34
63
  // Edit mode
35
- editMode: (has(req === null || req === void 0 ? void 0 : req.query, 'edit') && has(req === null || req === void 0 ? void 0 : req.query, 'editorigin')) || (has(req === null || req === void 0 ? void 0 : req.body, 'edit') && has(req === null || req === void 0 ? void 0 : req.body, 'editorigin')), editOrigin: editOrigin(req) });
64
+ editMode: (has(req === null || req === void 0 ? void 0 : req.query, "edit") && has(req === null || req === void 0 ? void 0 : req.query, "editorigin")) ||
65
+ (has(req === null || req === void 0 ? void 0 : req.body, "edit") && has(req === null || req === void 0 ? void 0 : req.body, "editorigin")), editOrigin: editOrigin(req) });
36
66
  // Grab chosen language from session
37
67
  req.casa.journeyContext.nav.language = req.session.language;
38
68
  // Context ID generator
@@ -43,7 +73,7 @@ function dataMiddleware({ plan, events, contextIdGenerator, }) {
43
73
  });
44
74
  /* ------------------------------------------------- Template variables */
45
75
  // Capture mount URL that will be used in generating all browser URLs
46
- const mountUrl = (0, utils_js_1.validateUrlPath)(`${req.baseUrl}/`.replace(/\/+/g, '/'));
76
+ const mountUrl = (0, utils_js_1.validateUrlPath)(`${req.baseUrl}/`.replace(/\/+/g, "/"));
47
77
  // If this CASA app is mounted on a parameterised route, then all of its
48
78
  // static assets (served by `staticRouter`) will, by default, be served
49
79
  // from that dynamic path, for example:
@@ -63,7 +93,7 @@ function dataMiddleware({ plan, events, contextIdGenerator, }) {
63
93
  // Router, the `baseUrl` is different in each case, so we cannot rely
64
94
  // on it to be consistent. Hence the need for this property, which will
65
95
  // always be the non-parameterised version of the baseUrl.
66
- const staticMountUrl = (0, utils_js_1.validateUrlPath)(`${req.unparameterisedBaseUrl}/`.replace(/\/+/g, '/'));
96
+ const staticMountUrl = (0, utils_js_1.validateUrlPath)(`${req.unparameterisedBaseUrl}/`.replace(/\/+/g, "/"));
67
97
  // CASA and userland templates
68
98
  res.locals.casa = {
69
99
  mountUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/middleware/data.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/middleware/data.js"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- declare function _default({ waypoint, fields, }: {
1
+ declare function _default({ waypoint, fields }: {
2
2
  waypoint: string;
3
3
  fields?: import("../lib/field").PageField[] | undefined;
4
4
  }): any[];
@@ -21,10 +21,10 @@ const constants_js_1 = require("../lib/constants.js");
21
21
  *
22
22
  * @param {object} obj Options
23
23
  * @param {string} obj.waypoint Waypoint
24
- * @param {PageField[]} [obj.fields=[]] Fields
24
+ * @param {PageField[]} [obj.fields] Fields
25
25
  * @returns {Array} Array of middleware
26
26
  */
27
- exports.default = ({ waypoint, fields = [], }) => [
27
+ exports.default = ({ waypoint, fields = [] }) => [
28
28
  (req, res, next) => {
29
29
  // Store a copy of the journey context before modifying it. This is useful
30
30
  // for any comparison work that may be done in subsequent middleware.
@@ -34,7 +34,8 @@ exports.default = ({ waypoint, fields = [], }) => [
34
34
  /* eslint-disable security/detect-object-injection */
35
35
  const persistentBody = Object.create(null);
36
36
  for (let i = 0, l = fields.length; i < l; i++) {
37
- if (fields[i].meta.persist && fields[i].getValue(req.body) !== undefined) {
37
+ if (fields[i].meta.persist &&
38
+ fields[i].getValue(req.body) !== undefined) {
38
39
  persistentBody[fields[i].name] = fields[i].getValue(req.body);
39
40
  }
40
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gather-fields.js","sourceRoot":"","sources":["../../src/middleware/gather-fields.js"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,iCAAiC;AACjC,wDAAwD;AACxD,mEAAmE;;;;;AAEnE,iFAAsD;AACtD,sDAA2D;AAE3D;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,kBAAe,CAAC,EACd,QAAQ,EACR,MAAM,GAAG,EAAE,GACZ,EAAE,EAAE,CAAC;IACJ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjB,0EAA0E;QAC1E,qEAAqE;QACrE,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,2BAAc,CAAC,WAAW,CAC1D,GAAG,CAAC,IAAI,CAAC,cAAc,EACvB,GAAG,CACJ,CAAC;QAEF,4CAA4C;QAC5C,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,oDAAoD;QAEpD,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC/D,2BAAc,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YAC9D,QAAQ,EAAE;gBACR,gBAAgB,EAAE,mCAAoB;aACvC;SACF,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"gather-fields.js","sourceRoot":"","sources":["../../src/middleware/gather-fields.js"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,iCAAiC;AACjC,wDAAwD;AACxD,mEAAmE;;;;;AAEnE,iFAAsD;AACtD,sDAA2D;AAE3D;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,kBAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjB,0EAA0E;QAC1E,qEAAqE;QACrE,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,2BAAc,CAAC,WAAW,CAC1D,GAAG,CAAC,IAAI,CAAC,cAAc,EACvB,GAAG,CACJ,CAAC;QAEF,4CAA4C;QAC5C,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IACE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;gBACtB,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAC1C,CAAC;gBACD,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,oDAAoD;QAEpD,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC/D,2BAAc,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YAC9D,QAAQ,EAAE;gBACR,gBAAgB,EAAE,mCAAoB;aACvC;SACF,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAC"}
@@ -1,4 +1,13 @@
1
+ /**
2
+ * Internationalisation middleware.
3
+ *
4
+ * @param {object} opts Options
5
+ * @param {string[]} [opts.languages] Language codes
6
+ * @param {string[]} [opts.directories] Source translations directories
7
+ * @returns {RequestHandler[]} Middleware functions
8
+ */
1
9
  export default function i18nMiddleware({ languages, directories, }: {
2
10
  languages?: string[] | undefined;
3
- directories?: any[] | undefined;
4
- }): import("express-serve-static-core").Handler[];
11
+ directories?: string[] | undefined;
12
+ }): RequestHandler[];
13
+ export type RequestHandler = import("express").RequestHandler;
@@ -9,21 +9,25 @@ const i18next_http_middleware_1 = require("i18next-http-middleware");
9
9
  const path_1 = require("path");
10
10
  const fs_1 = require("fs");
11
11
  const deepmerge_1 = __importDefault(require("deepmerge"));
12
- const js_yaml_1 = __importDefault(require("js-yaml"));
12
+ const js_yaml_1 = require("js-yaml");
13
13
  const logger_js_1 = __importDefault(require("../lib/logger.js"));
14
- const log = (0, logger_js_1.default)('middleware:i18n');
14
+ /**
15
+ * @typedef {import("express").RequestHandler} RequestHandler
16
+ * @access private
17
+ */
18
+ const log = (0, logger_js_1.default)("middleware:i18n");
15
19
  const loadJson = (file) => {
16
20
  // Strip out newlines (this is a legacy feature which we're keeping for
17
21
  // backwards compatibility).
18
22
  /* eslint-disable-next-line security/detect-non-literal-fs-filename */
19
- const json = (0, fs_1.readFileSync)(file, 'utf8');
20
- return JSON.parse(json.replace(/[\r\n]/g, ''));
23
+ const json = (0, fs_1.readFileSync)(file, "utf8");
24
+ return JSON.parse(json.replace(/[\r\n]/g, ""));
21
25
  };
22
26
  /* eslint-disable-next-line security/detect-non-literal-fs-filename */
23
- const loadYaml = (file) => js_yaml_1.default.load((0, fs_1.readFileSync)(file, 'utf8'));
27
+ const loadYaml = (file) => (0, js_yaml_1.load)((0, fs_1.readFileSync)(file, "utf8"));
24
28
  const extract = (file) => {
25
- const ext = /.yaml$/i.test(file) ? '.yaml' : '.json';
26
- const data = ext === '.yaml' ? loadYaml(file) : loadJson(file);
29
+ const ext = /.yaml$/i.test(file) ? ".yaml" : ".json";
30
+ const data = ext === ".yaml" ? loadYaml(file) : loadJson(file);
27
31
  return {
28
32
  ns: (0, path_1.basename)(file, ext),
29
33
  data,
@@ -42,7 +46,7 @@ const loadResources = (languages, directories) => {
42
46
  if (!(0, fs_1.existsSync)(dir)) {
43
47
  return;
44
48
  }
45
- log.info('Loading %s language from %s ...', language, dir);
49
+ log.info("Loading %s language from %s ...", language, dir);
46
50
  /* eslint-disable-next-line security/detect-non-literal-fs-filename */
47
51
  (0, fs_1.readdirSync)(dir).forEach((file) => {
48
52
  const { ns, data } = extract((0, path_1.resolve)(dir, file));
@@ -56,26 +60,32 @@ const loadResources = (languages, directories) => {
56
60
  });
57
61
  return store;
58
62
  };
59
- function i18nMiddleware({ languages = ['en', 'cy'], directories = [], }) {
63
+ /**
64
+ * Internationalisation middleware.
65
+ *
66
+ * @param {object} opts Options
67
+ * @param {string[]} [opts.languages] Language codes
68
+ * @param {string[]} [opts.directories] Source translations directories
69
+ * @returns {RequestHandler[]} Middleware functions
70
+ */
71
+ function i18nMiddleware({ languages = ["en", "cy"], directories = [], }) {
60
72
  // Load _all_ translations, from all directories into memory.
61
73
  const resources = loadResources(languages, directories);
62
74
  // Configure i18next
63
75
  const i18nInstance = (0, i18next_1.createInstance)();
64
- i18nInstance
65
- .use(i18next_http_middleware_1.LanguageDetector)
66
- .init({
76
+ i18nInstance.use(i18next_http_middleware_1.LanguageDetector).init({
67
77
  initImmediate: false, // because we need synchronous loading
68
78
  supportedLngs: languages,
69
79
  fallbackLng: false,
70
- defaultNS: 'common',
80
+ defaultNS: "common",
71
81
  // debug: true,
72
82
  // All translation resources
73
83
  resources,
74
84
  // LanguageDetector options
75
85
  detection: {
76
- lookupQuerystring: 'lang',
77
- lookupSession: 'language',
78
- order: ['querystring', 'session'],
86
+ lookupQuerystring: "lang",
87
+ lookupSession: "language",
88
+ order: ["querystring", "session"],
79
89
  },
80
90
  });
81
91
  // 2 middleware: one to read/set the session language, and one to enhance the
@@ -83,7 +93,6 @@ function i18nMiddleware({ languages = ['en', 'cy'], directories = [], }) {
83
93
  return [
84
94
  (req, res, next) => {
85
95
  if (!req.session.language) {
86
- /* eslint-disable-next-line prefer-destructuring */
87
96
  req.session.language = languages[0];
88
97
  }
89
98
  if ((req === null || req === void 0 ? void 0 : req.query.lang) && languages.includes(req.query.lang)) {
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/middleware/i18n.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/middleware/i18n.js"],"names":[],"mappings":"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"}
@@ -1 +1,3 @@
1
- export default function postMiddleware(): ((err: any, req: any, res: any, next: any) => any)[];
1
+ /** @returns {RequestHandler[]} Middleware functions */
2
+ export default function postMiddleware(): RequestHandler[];
3
+ export type RequestHandler = import("express").RequestHandler;