@dwp/govuk-casa 8.15.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +9 -9
  2. package/dist/assets/css/casa.css +2 -1
  3. package/dist/assets/css/casa.css.map +1 -0
  4. package/dist/casa.d.ts +122 -99
  5. package/dist/casa.js +120 -88
  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 +89 -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 +24 -29
  40. package/dist/lib/field.js +41 -70
  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 +12 -17
  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 -26
  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 -20
  139. package/dist/routes/static.js.map +1 -1
  140. package/package.json +17 -16
  141. package/src/casa.js +134 -102
  142. package/src/lib/CasaTemplateLoader.js +24 -19
  143. package/src/lib/JourneyContext.js +147 -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 +74 -78
  154. package/src/lib/index.js +12 -12
  155. package/src/lib/logger.js +9 -9
  156. package/src/lib/mount.js +70 -80
  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 -40
  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 -30
  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/partials/scripts.njk +5 -3
  200. package/views/casa/partials/styles.njk +1 -4
  201. package/dist/assets/css/casa-ie8.css +0 -1
package/dist/lib/Plan.js CHANGED
@@ -18,81 +18,83 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const graphlib_1 = require("@dagrejs/graphlib");
19
19
  const JourneyContext_js_1 = __importDefault(require("./JourneyContext.js"));
20
20
  const logger_js_1 = __importDefault(require("./logger.js"));
21
- const log = (0, logger_js_1.default)('lib:plan');
21
+ const log = (0, logger_js_1.default)("lib:plan");
22
22
  /**
23
+ * @typedef {import("../casa").PlanRoute} PlanRoute
23
24
  * @access private
24
- * @typedef {import('../casa').PlanRoute} PlanRoute
25
25
  */
26
26
  /**
27
+ * @typedef {import("../casa").PlanRouteCondition} PlanRouteCondition
27
28
  * @access private
28
- * @typedef {import('../casa').PlanRouteCondition} PlanRouteCondition
29
29
  */
30
30
  /**
31
+ * @typedef {import("../casa").PlanTraverseOptions} PlanTraverseOptions
31
32
  * @access private
32
- * @typedef {import('../casa').PlanTraverseOptions} PlanTraverseOptions
33
33
  */
34
34
  /**
35
+ * @typedef {import("../casa").PlanArbiter} PlanArbiter
35
36
  * @access private
36
- * @typedef {import('../casa').PlanArbiter} PlanArbiter
37
37
  */
38
38
  /**
39
39
  * @typedef {object} PlanConstructorOptions
40
- * @property {boolean} [validateBeforeRouteCondition=true] Check page validity before conditions
41
- * @property {string|PlanArbiter} [arbiter=undefined] Arbitration mechanism
40
+ * @property {boolean} [validateBeforeRouteCondition=true] Check page validity
41
+ * before conditions. Default is `true`
42
+ * @property {string | PlanArbiter} [arbiter=undefined] Arbitration mechanism.
43
+ * Default is `undefined`
42
44
  */
43
45
  /**
44
46
  * Will check if the source waypoint has specifically passed validation, i.e
45
47
  * there is a "null" validation entry for the route source.
46
48
  *
47
- * @access private
48
49
  * @type {PlanRouteCondition}
50
+ * @access private
49
51
  */
50
52
  function defaultNextFollow(r, context) {
51
53
  const { validation: v = {} } = context.toObject();
52
- return Object.prototype.hasOwnProperty.call(v, r.source) && v[r.source] === null;
54
+ return (Object.prototype.hasOwnProperty.call(v, r.source) && v[r.source] === null);
53
55
  }
54
56
  /**
55
57
  * Will check if the target waypoint (the one we're moving back to) has
56
58
  * specifically passed validation.
57
59
  *
58
- * @access private
59
60
  * @type {PlanRouteCondition}
61
+ * @access private
60
62
  */
61
63
  function defaultPrevFollow(r, context) {
62
64
  const { validation: v = {} } = context.toObject();
63
- return Object.prototype.hasOwnProperty.call(v, r.target) && v[r.target] === null;
65
+ return (Object.prototype.hasOwnProperty.call(v, r.target) && v[r.target] === null);
64
66
  }
65
67
  /**
66
68
  * Validate a given waypoint ID.
67
69
  *
68
- * @access private
69
70
  * @param {string} val Waypoint ID
70
71
  * @returns {void}
71
72
  * @throws {TypeError} If waypoint ID is not a string
72
73
  * @throws {SyntaxError} If waypoint ID is incorrectly formatted
74
+ * @access private
73
75
  */
74
76
  function validateWaypointId(val) {
75
- if (typeof val !== 'string') {
77
+ if (typeof val !== "string") {
76
78
  throw new TypeError(`Expected waypoint id to be a string, got ${typeof val}`);
77
79
  }
78
- if (val.substr(0, 6) === 'url://' && !val.endsWith('/')) {
79
- throw new SyntaxError('url:// waypoints must include a trailing /');
80
+ if (val.substr(0, 6) === "url://" && !val.endsWith("/")) {
81
+ throw new SyntaxError("url:// waypoints must include a trailing /");
80
82
  }
81
83
  }
82
84
  /**
83
85
  * Validate a given route name.
84
86
  *
85
- * @access private
86
87
  * @param {string} val Route name
87
88
  * @returns {string} The route name
88
89
  * @throws {TypeError} If route name is not a string
89
90
  * @throws {ReferenceError} If route name is neither "next" or "prev"
91
+ * @access private
90
92
  */
91
93
  function validateRouteName(val) {
92
- if (typeof val !== 'string') {
94
+ if (typeof val !== "string") {
93
95
  throw new TypeError(`Expected route name to be a string, got ${typeof val}`);
94
96
  }
95
- else if (!['next', 'prev'].includes(val)) {
97
+ else if (!["next", "prev"].includes(val)) {
96
98
  throw new ReferenceError(`Expected route name to be one of next or prev. Got ${val}`);
97
99
  }
98
100
  return val;
@@ -100,10 +102,10 @@ function validateRouteName(val) {
100
102
  /**
101
103
  * Validate a given route condition.
102
104
  *
103
- * @access private
104
105
  * @param {PlanRouteCondition} val The condition function
105
106
  * @returns {void}
106
107
  * @throws {TypeError} If condition is not a string
108
+ * @access private
107
109
  */
108
110
  function validateRouteCondition(val) {
109
111
  if (!(val instanceof Function)) {
@@ -111,14 +113,14 @@ function validateRouteCondition(val) {
111
113
  }
112
114
  }
113
115
  /**
114
- * Creates a user friendly route structure from a given graph edge which will
115
- * be used in userland. This is the object that will be passed into follow
116
+ * Creates a user friendly route structure from a given graph edge which will be
117
+ * used in userland. This is the object that will be passed into follow
116
118
  * functions too as the "route" parameter.
117
119
  *
118
- * @access private
119
120
  * @param {object} dgraph Directed graph instance.
120
121
  * @param {object} edge Graph edge object.
121
122
  * @returns {PlanRoute} Route.
123
+ * @access private
122
124
  */
123
125
  const makeRouteObject = (dgraph, edge) => {
124
126
  const label = dgraph.edge(edge) || {};
@@ -143,9 +145,7 @@ const reExitNodeProtocol = /^[a-z]+:\/\//i;
143
145
  * @todo Use property private class properties.
144
146
  */
145
147
  const priv = new WeakMap();
146
- /**
147
- * @memberof module:@dwp/govuk-casa
148
- */
148
+ /** @memberof module:@dwp/govuk-casa */
149
149
  class Plan {
150
150
  /**
151
151
  * Waypoints using the url:// protocol are known as "exit nodes" as they
@@ -163,9 +163,7 @@ class Plan {
163
163
  * @param {PlanConstructorOptions} opts Options
164
164
  */
165
165
  constructor(opts = {}) {
166
- /**
167
- * @type {string[]} These waypoints can be skipped
168
- */
166
+ /** @type {string[]} These Waypoints can be skipped */
169
167
  _Plan_skippableWaypoints.set(this, void 0);
170
168
  // This is our directed, multigraph representation
171
169
  const dgraph = new graphlib_1.Graph({
@@ -211,7 +209,7 @@ class Plan {
211
209
  /**
212
210
  * Add one or more skippable waypoints.
213
211
  *
214
- * @param {...string} waypoints Waypoints
212
+ * @param {...string} waypoints Waypoints
215
213
  * @returns {Plan} Chain
216
214
  */
217
215
  addSkippables(...waypoints) {
@@ -251,7 +249,9 @@ class Plan {
251
249
  */
252
250
  getRoutes() {
253
251
  const self = priv.get(this);
254
- return self.dgraph.edges().map((edge) => makeRouteObject(self.dgraph, edge));
252
+ return self.dgraph
253
+ .edges()
254
+ .map((edge) => makeRouteObject(self.dgraph, edge));
255
255
  }
256
256
  /**
257
257
  * Get the condition function for the given parameters.
@@ -274,7 +274,9 @@ class Plan {
274
274
  */
275
275
  getOutwardRoutes(src, tgt = null) {
276
276
  const self = priv.get(this);
277
- return self.dgraph.outEdges(src, tgt).map((e) => makeRouteObject(self.dgraph, e));
277
+ return self.dgraph
278
+ .outEdges(src, tgt)
279
+ .map((e) => makeRouteObject(self.dgraph, e));
278
280
  }
279
281
  /**
280
282
  * Return all outward routes (out-edges) from the given waypoint, to the
@@ -285,13 +287,13 @@ class Plan {
285
287
  * @returns {PlanRoute[]} Route objects found.
286
288
  */
287
289
  getPrevOutwardRoutes(src, tgt = null) {
288
- return this.getOutwardRoutes(src, tgt).filter((r) => r.name === 'prev');
290
+ return this.getOutwardRoutes(src, tgt).filter((r) => r.name === "prev");
289
291
  }
290
292
  /**
291
293
  * Add a sequence of waypoints that will follow on from each other, with no
292
294
  * routing logic between them.
293
295
  *
294
- * @param {...string} waypoints Waypoints to add
296
+ * @param {...string} waypoints Waypoints to add
295
297
  * @returns {void}
296
298
  */
297
299
  addSequence(...waypoints) {
@@ -311,7 +313,7 @@ class Plan {
311
313
  * @returns {Plan} Chain
312
314
  */
313
315
  setNextRoute(src, tgt, follow) {
314
- return this.setNamedRoute(src, tgt, 'next', follow);
316
+ return this.setNamedRoute(src, tgt, "next", follow);
315
317
  }
316
318
  /**
317
319
  * Create a new directed route between two waypoints, labelled as "prev".
@@ -322,7 +324,7 @@ class Plan {
322
324
  * @returns {Plan} Chain
323
325
  */
324
326
  setPrevRoute(src, tgt, follow) {
325
- return this.setNamedRoute(src, tgt, 'prev', follow);
327
+ return this.setNamedRoute(src, tgt, "prev", follow);
326
328
  }
327
329
  /**
328
330
  * Adds both a "next" and "prev" route between the two waypoints.
@@ -332,8 +334,8 @@ class Plan {
332
334
  * condition must be true, and so to reverse the direction we also need that
333
335
  * same condition to be true.
334
336
  *
335
- * However, if the condition function uses the `source`/`target` property
336
- * of the route in some way, then we must reverse these before passing to the
337
+ * However, if the condition function uses the `source`/`target` property of
338
+ * the route in some way, then we must reverse these before passing to the
337
339
  * condition on the "prev" route because `source` in the condition will almost
338
340
  * certainly be referring to the source of the "next" route.
339
341
  *
@@ -347,34 +349,39 @@ class Plan {
347
349
  * @returns {Plan} Chain
348
350
  */
349
351
  setRoute(src, tgt, followNext = undefined, followPrev = undefined) {
350
- this.setNamedRoute(src, tgt, 'next', followNext);
352
+ this.setNamedRoute(src, tgt, "next", followNext);
351
353
  let followPrevious = followPrev;
352
354
  if (followPrevious === undefined) {
353
- followPrevious = followNext === undefined ? undefined : (r, c) => {
354
- const invertedRoute = Object.assign(Object.assign({}, r), { source: r.target, target: r.source });
355
- return followNext(invertedRoute, c);
356
- };
355
+ followPrevious =
356
+ followNext === undefined
357
+ ? undefined
358
+ : (r, c) => {
359
+ const invertedRoute = Object.assign(Object.assign({}, r), { source: r.target, target: r.source });
360
+ return followNext(invertedRoute, c);
361
+ };
357
362
  }
358
- this.setNamedRoute(tgt, src, 'prev', followPrevious);
363
+ this.setNamedRoute(tgt, src, "prev", followPrevious);
359
364
  return this;
360
365
  }
361
366
  /**
362
367
  * Create a named route between two waypoints, and give that route a function
363
368
  * that determine whether it should be followed during traversal operations.
364
- * Note that the source waypoint must be in a successful validation state
365
- * to be considered for traversal, regardless of what the custom function
369
+ * Note that the source waypoint must be in a successful validation state to
370
+ * be considered for traversal, regardless of what the custom function
366
371
  * determines.
367
372
  *
368
373
  * You may also define routes that take the user to any generic URL within the
369
- * same domain by using the `url://` protocol. These are considered
370
- * "exit nodes".
374
+ * same domain by using the `url://` protocol. These are considered "exit
375
+ * nodes".
371
376
  *
372
- * setNamedRoute("my-waypoint", "url:///some/absolute/url");
377
+ * SetNamedRoute("my-waypoint", "url:///some/absolute/url");
373
378
  *
374
379
  * @param {string} src Source waypoint.
375
380
  * @param {string} tgt Target waypoint.
376
- * @param {string} name Name of the route (must be unique for this waypoint pairing).
377
- * @param {PlanRouteCondition} follow Test function to determine if route can be followed.
381
+ * @param {string} name Name of the route (must be unique for this waypoint
382
+ * pairing).
383
+ * @param {PlanRouteCondition} follow Test function to determine if route can
384
+ * be followed.
378
385
  * @returns {Plan} Chain
379
386
  * @throws {Error} If attempting to create a "next" route from an exit node
380
387
  */
@@ -391,7 +398,7 @@ class Plan {
391
398
  const conditionName = follow && follow.name;
392
399
  // Warn if we're overwriting an existing edge on the same name
393
400
  if (self.dgraph.hasEdge(src, tgt, name)) {
394
- log.warn('Setting a route that already exists (%s, %s, %s). Will be overridden', src, tgt, name);
401
+ log.warn("Setting a route that already exists (%s, %s, %s). Will be overridden", src, tgt, name);
395
402
  }
396
403
  self.dgraph.setEdge(src, tgt, { conditionName }, name);
397
404
  // Determine which follow function to use
@@ -400,20 +407,20 @@ class Plan {
400
407
  if (!self.options.validateBeforeRouteCondition) {
401
408
  followFunc = follow;
402
409
  }
403
- else if (name === 'next') {
410
+ else if (name === "next") {
404
411
  // Retain the original function name of route condition
405
412
  followFunc = {
406
- [follow.name]: (r, c) => (defaultNextFollow(r, c) && follow(r, c)),
413
+ [follow.name]: (r, c) => defaultNextFollow(r, c) && follow(r, c),
407
414
  }[follow.name];
408
415
  }
409
416
  else {
410
417
  // Retain the original function name of route condition
411
418
  followFunc = {
412
- [follow.name]: (r, c) => (defaultPrevFollow(r, c) && follow(r, c)),
419
+ [follow.name]: (r, c) => defaultPrevFollow(r, c) && follow(r, c),
413
420
  }[follow.name];
414
421
  }
415
422
  }
416
- else if (name === 'next') {
423
+ else if (name === "next") {
417
424
  followFunc = defaultNextFollow;
418
425
  }
419
426
  else {
@@ -425,8 +432,8 @@ class Plan {
425
432
  return this;
426
433
  }
427
434
  /**
428
- * This is a convenience method for traversing all "next" routes, and returning
429
- * the IDs of all waypoints visited along the way.
435
+ * This is a convenience method for traversing all "next" routes, and
436
+ * returning the IDs of all waypoints visited along the way.
430
437
  *
431
438
  * @param {JourneyContext} context Journey Context
432
439
  * @param {PlanTraverseOptions} options Options
@@ -444,7 +451,7 @@ class Plan {
444
451
  * @returns {PlanRoute[]} List of traversed waypoints
445
452
  */
446
453
  traverseNextRoutes(context, options = {}) {
447
- return this.traverseRoutes(context, Object.assign(Object.assign({}, options), { routeName: 'next' }));
454
+ return this.traverseRoutes(context, Object.assign(Object.assign({}, options), { routeName: "next" }));
448
455
  }
449
456
  /**
450
457
  * Traverse the Plan by following all "prev" routes, and returning the IDs of
@@ -455,14 +462,15 @@ class Plan {
455
462
  * @returns {PlanRoute[]} List of traversed waypoints
456
463
  */
457
464
  traversePrevRoutes(context, options = {}) {
458
- return this.traverseRoutes(context, Object.assign(Object.assign({}, options), { routeName: 'prev' }));
465
+ return this.traverseRoutes(context, Object.assign(Object.assign({}, options), { routeName: "prev" }));
459
466
  }
460
467
  /**
461
468
  * Traverse through the plan from a particular starting waypoint. This is a
462
469
  * non-exhaustive Graph Exploration.
463
470
  *
464
- * The last route in the list will contain the source of the last waypoint that
465
- * can be reached, i.e. The waypoint that has no further satisfiable out-edges.
471
+ * The last route in the list will contain the source of the last waypoint
472
+ * that can be reached, i.e. The waypoint that has no further satisfiable
473
+ * out-edges.
466
474
  *
467
475
  * If a cyclical set of routes are encountered, traversal will stop after
468
476
  * reaching the first repeated waypoint.
@@ -478,7 +486,7 @@ class Plan {
478
486
  }
479
487
  const self = priv.get(this);
480
488
  /** @type {PlanTraverseOptions} */
481
- const { startWaypoint = this.getWaypoints()[0], stopCondition = () => (false), arbiter = self.options.arbiter, routeName, } = options;
489
+ const { startWaypoint = this.getWaypoints()[0], stopCondition = () => false, arbiter = self.options.arbiter, routeName, } = options;
482
490
  if (!self.dgraph.hasNode(startWaypoint)) {
483
491
  throw new ReferenceError(`Plan does not contain waypoint '${startWaypoint}'`);
484
492
  }
@@ -503,9 +511,9 @@ class Plan {
503
511
  // When there's more than one candidate route to take, we need help to choose
504
512
  if (target.length > 1) {
505
513
  const satisfied = target.map((t) => `${t.v} -> ${t.w}`);
506
- log.debug(`Multiple routes were satisfied for "${routeName}" from "${startWP}" (${satisfied.join(' / ')}). Deciding how to resolve ...`);
507
- if (arbiter === 'auto') {
508
- log.debug('Using automatic arbitration process');
514
+ log.debug(`Multiple routes were satisfied for "${routeName}" from "${startWP}" (${satisfied.join(" / ")}). Deciding how to resolve ...`);
515
+ if (arbiter === "auto") {
516
+ log.debug("Using automatic arbitration process");
509
517
  const targetNames = target.map(({ w }) => w);
510
518
  const forwardTraversal = this.traverseNextRoutes(context, {
511
519
  stopCondition: ({ source }) => targetNames.includes(source),
@@ -514,7 +522,7 @@ class Plan {
514
522
  target = target.filter((t) => t.w === resolved.source);
515
523
  }
516
524
  else if (arbiter instanceof Function) {
517
- log.debug('Using custom arbitration process');
525
+ log.debug("Using custom arbitration process");
518
526
  // Convert to routeObject and back to edge object so that only the
519
527
  // routeObject is used in the public API
520
528
  target = arbiter({
@@ -522,10 +530,14 @@ class Plan {
522
530
  journeyContext: context,
523
531
  travereOptions: options,
524
532
  });
525
- target = target.map((r) => ({ v: r.source, w: r.target, name: r.name }));
533
+ target = target.map((r) => ({
534
+ v: r.source,
535
+ w: r.target,
536
+ name: r.name,
537
+ }));
526
538
  }
527
539
  else {
528
- log.warn('Unable to arbitrate');
540
+ log.warn("Unable to arbitrate");
529
541
  target = [];
530
542
  }
531
543
  }
@@ -548,14 +560,16 @@ class Plan {
548
560
  }
549
561
  return results;
550
562
  }
551
- log.debug('Encountered loop (%s). Stopping traversal.', `${route.source} -> ${route.target}`);
563
+ log.debug("Encountered loop (%s). Stopping traversal.", `${route.source} -> ${route.target}`);
552
564
  }
553
- return [makeRouteObject(self.dgraph, {
565
+ return [
566
+ makeRouteObject(self.dgraph, {
554
567
  v: startWP,
555
568
  w: null,
556
569
  name: routeName,
557
570
  label: {},
558
- })];
571
+ }),
572
+ ];
559
573
  };
560
574
  return traverse(startWaypoint);
561
575
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Plan.js","sourceRoot":"","sources":["../../src/lib/Plan.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Plan.js","sourceRoot":"","sources":["../../src/lib/Plan.js"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  /**
2
+ * @typedef {import("../casa").ValidateContext} ValidateContext
2
3
  * @access private
3
- * @typedef {import('../casa').ValidateContext} ValidateContext
4
4
  */
5
5
  /**
6
+ * @typedef {import("../casa").ErrorMessageConfig} ErrorMessageConfig
6
7
  * @access private
7
- * @typedef {import('../casa').ErrorMessageConfig} ErrorMessageConfig
8
8
  */
9
9
  /**
10
+ * @typedef {import("../casa").ErrorMessageConfigObject} ErrorMessageConfigObject
10
11
  * @access private
11
- * @typedef {import('../casa').ErrorMessageConfigObject} ErrorMessageConfigObject
12
12
  */
13
13
  /**
14
- * @class
15
14
  * @memberof module:@dwp/govuk-casa
15
+ * @class
16
16
  */
17
17
  export default class ValidationError {
18
18
  /**
@@ -21,18 +21,19 @@ export default class ValidationError {
21
21
  * <br/><br/>
22
22
  *
23
23
  * In the case of `errorMsg` being a function, this will be called at runtime,
24
- * at the point that errors are generated within the `validate()`,
25
- * methods, and will be passed the `dataContext`.
26
- * <br/><br/>
24
+ * at the point that errors are generated within the `validate()`, methods,
25
+ * and will be passed the `dataContext`. <br/><br/>
27
26
  *
28
27
  * `dataContext` is an object containing the same data passed to all
29
- * validators' `validate()` methods. In the case of `errorMsg` being
30
- * a function, this data is passed to that function in order to help resolve to
28
+ * validators' `validate()` methods. In the case of `errorMsg` being a
29
+ * function, this data is passed to that function in order to help resolve to
31
30
  * an error message config object.
32
31
  *
33
32
  * @param {object} args Arguments
34
- * @param {ErrorMessageConfig} args.errorMsg Error message config to seed ValidationError
35
- * @param {ValidateContext} [args.dataContext={}] Data for error msg function
33
+ * @param {ErrorMessageConfig} args.errorMsg Error message config to seed
34
+ * ValidationError
35
+ * @param {ValidateContext} [args.dataContext={}] Data for error msg function.
36
+ * Default is `{}`
36
37
  * @returns {ValidationError} Error instance
37
38
  * @throws {TypeError} If errorMsg is not in a valid type
38
39
  */
@@ -43,7 +44,7 @@ export default class ValidationError {
43
44
  /**
44
45
  * Create a ValidationError.
45
46
  *
46
- * @param {string|ErrorMessageConfigObject} errorParam Error configuration
47
+ * @param {string | ErrorMessageConfigObject} errorParam Error configuration
47
48
  */
48
49
  constructor(errorParam?: string | ErrorMessageConfigObject);
49
50
  /**
@@ -59,6 +60,6 @@ export default class ValidationError {
59
60
  focusSuffix: any;
60
61
  validator: string | undefined;
61
62
  }
62
- export type ValidateContext = import('../casa').ValidateContext;
63
- export type ErrorMessageConfig = import('../casa').ErrorMessageConfig;
64
- export type ErrorMessageConfigObject = import('../casa').ErrorMessageConfigObject;
63
+ export type ValidateContext = import("../casa").ValidateContext;
64
+ export type ErrorMessageConfig = import("../casa").ErrorMessageConfig;
65
+ export type ErrorMessageConfigObject = import("../casa").ErrorMessageConfigObject;
@@ -7,20 +7,20 @@ const lodash_1 = __importDefault(require("lodash"));
7
7
  const { isPlainObject } = lodash_1.default; // CommonJS
8
8
  const params = new WeakMap();
9
9
  /**
10
+ * @typedef {import("../casa").ValidateContext} ValidateContext
10
11
  * @access private
11
- * @typedef {import('../casa').ValidateContext} ValidateContext
12
12
  */
13
13
  /**
14
+ * @typedef {import("../casa").ErrorMessageConfig} ErrorMessageConfig
14
15
  * @access private
15
- * @typedef {import('../casa').ErrorMessageConfig} ErrorMessageConfig
16
16
  */
17
17
  /**
18
+ * @typedef {import("../casa").ErrorMessageConfigObject} ErrorMessageConfigObject
18
19
  * @access private
19
- * @typedef {import('../casa').ErrorMessageConfigObject} ErrorMessageConfigObject
20
20
  */
21
21
  /**
22
- * @class
23
22
  * @memberof module:@dwp/govuk-casa
23
+ * @class
24
24
  */
25
25
  class ValidationError {
26
26
  /**
@@ -29,24 +29,25 @@ class ValidationError {
29
29
  * <br/><br/>
30
30
  *
31
31
  * In the case of `errorMsg` being a function, this will be called at runtime,
32
- * at the point that errors are generated within the `validate()`,
33
- * methods, and will be passed the `dataContext`.
34
- * <br/><br/>
32
+ * at the point that errors are generated within the `validate()`, methods,
33
+ * and will be passed the `dataContext`. <br/><br/>
35
34
  *
36
35
  * `dataContext` is an object containing the same data passed to all
37
- * validators' `validate()` methods. In the case of `errorMsg` being
38
- * a function, this data is passed to that function in order to help resolve to
36
+ * validators' `validate()` methods. In the case of `errorMsg` being a
37
+ * function, this data is passed to that function in order to help resolve to
39
38
  * an error message config object.
40
39
  *
41
40
  * @param {object} args Arguments
42
- * @param {ErrorMessageConfig} args.errorMsg Error message config to seed ValidationError
43
- * @param {ValidateContext} [args.dataContext={}] Data for error msg function
41
+ * @param {ErrorMessageConfig} args.errorMsg Error message config to seed
42
+ * ValidationError
43
+ * @param {ValidateContext} [args.dataContext={}] Data for error msg function.
44
+ * Default is `{}`
44
45
  * @returns {ValidationError} Error instance
45
46
  * @throws {TypeError} If errorMsg is not in a valid type
46
47
  */
47
48
  static make({ errorMsg, dataContext = {} }) {
48
49
  // Convert strings to the most basic object primitive
49
- if (typeof errorMsg === 'string') {
50
+ if (typeof errorMsg === "string") {
50
51
  return new ValidationError({
51
52
  summary: errorMsg,
52
53
  inline: errorMsg,
@@ -60,7 +61,7 @@ class ValidationError {
60
61
  }
61
62
  // Use the user-defined function to generate an error primitive for the
62
63
  // given context
63
- if (typeof errorMsg === 'function') {
64
+ if (typeof errorMsg === "function") {
64
65
  return new ValidationError(errorMsg.call(null, Object.assign({}, dataContext)));
65
66
  }
66
67
  // Core Error
@@ -72,18 +73,18 @@ class ValidationError {
72
73
  });
73
74
  }
74
75
  // Unsupported
75
- throw new TypeError('errorMsg must be a string, Error, primitive object or function that generates a primitive object');
76
+ throw new TypeError("errorMsg must be a string, Error, primitive object or function that generates a primitive object");
76
77
  }
77
78
  /**
78
79
  * Create a ValidationError.
79
80
  *
80
- * @param {string|ErrorMessageConfigObject} errorParam Error configuration
81
+ * @param {string | ErrorMessageConfigObject} errorParam Error configuration
81
82
  */
82
83
  constructor(errorParam = {}) {
83
- if (!isPlainObject(errorParam) && typeof errorParam !== 'string') {
84
- throw new TypeError('Constructor requires a string or object');
84
+ if (!isPlainObject(errorParam) && typeof errorParam !== "string") {
85
+ throw new TypeError("Constructor requires a string or object");
85
86
  }
86
- const error = typeof errorParam === 'string' ? { summary: errorParam } : errorParam;
87
+ const error = typeof errorParam === "string" ? { summary: errorParam } : errorParam;
87
88
  // Store parameters for later use in applying contexts
88
89
  const originals = {
89
90
  summary: error.summary,
@@ -123,7 +124,7 @@ class ValidationError {
123
124
  // Get original constructor parameters
124
125
  const originals = params.get(this);
125
126
  // Expand variables
126
- if (typeof originals.variables === 'function') {
127
+ if (typeof originals.variables === "function") {
127
128
  this.variables = originals.variables.call(this, context);
128
129
  }
129
130
  // Set field name
@@ -139,7 +140,7 @@ class ValidationError {
139
140
  : [originals.focusSuffix];
140
141
  fieldHref += focusSuffix[0];
141
142
  }
142
- this.field = context.fieldName + (originals.fieldKeySuffix || '');
143
+ this.field = context.fieldName + (originals.fieldKeySuffix || "");
143
144
  this.fieldHref = fieldHref;
144
145
  this.focusSuffix = focusSuffix || [];
145
146
  }