@dwp/govuk-casa 9.7.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/assets/css/casa.css +1 -1
  2. package/dist/assets/css/casa.css.map +1 -1
  3. package/dist/casa.d.ts +81 -41
  4. package/dist/casa.d.ts.map +1 -0
  5. package/dist/casa.js +72 -99
  6. package/dist/core-plugins/edit-snapshot/src/configure.d.ts +1 -0
  7. package/dist/core-plugins/edit-snapshot/src/configure.d.ts.map +1 -0
  8. package/dist/core-plugins/edit-snapshot/src/configure.js +7 -14
  9. package/dist/core-plugins/edit-snapshot/src/index.d.ts +1 -0
  10. package/dist/core-plugins/edit-snapshot/src/index.d.ts.map +1 -0
  11. package/dist/core-plugins/edit-snapshot/src/index.js +3 -9
  12. package/dist/core-plugins/edit-snapshot/src/post-steer-hook.d.ts +2 -1
  13. package/dist/core-plugins/edit-snapshot/src/post-steer-hook.d.ts.map +1 -0
  14. package/dist/core-plugins/edit-snapshot/src/post-steer-hook.js +8 -13
  15. package/dist/core-plugins/edit-snapshot/src/pre-steer-hook.d.ts +2 -1
  16. package/dist/core-plugins/edit-snapshot/src/pre-steer-hook.d.ts.map +1 -0
  17. package/dist/core-plugins/edit-snapshot/src/pre-steer-hook.js +13 -18
  18. package/dist/core-plugins/edit-snapshot/src/utils.d.ts +8 -5
  19. package/dist/core-plugins/edit-snapshot/src/utils.d.ts.map +1 -0
  20. package/dist/core-plugins/edit-snapshot/src/utils.js +37 -19
  21. package/dist/core-plugins/index.d.ts +1 -0
  22. package/dist/core-plugins/index.d.ts.map +1 -0
  23. package/dist/core-plugins/index.js +1 -9
  24. package/dist/lib/CasaTemplateLoader.d.ts +1 -0
  25. package/dist/lib/CasaTemplateLoader.d.ts.map +1 -0
  26. package/dist/lib/CasaTemplateLoader.js +2 -6
  27. package/dist/lib/JourneyContext.d.ts +22 -11
  28. package/dist/lib/JourneyContext.d.ts.map +1 -0
  29. package/dist/lib/JourneyContext.js +40 -45
  30. package/dist/lib/MutableRouter.d.ts +74 -55
  31. package/dist/lib/MutableRouter.d.ts.map +1 -0
  32. package/dist/lib/MutableRouter.js +48 -45
  33. package/dist/lib/NullObject.d.ts +3 -0
  34. package/dist/lib/NullObject.d.ts.map +1 -0
  35. package/dist/lib/NullObject.js +3 -0
  36. package/dist/lib/Plan.d.ts +2 -1
  37. package/dist/lib/Plan.d.ts.map +1 -0
  38. package/dist/lib/Plan.js +44 -62
  39. package/dist/lib/ValidationError.d.ts +2 -1
  40. package/dist/lib/ValidationError.d.ts.map +1 -0
  41. package/dist/lib/ValidationError.js +3 -11
  42. package/dist/lib/ValidatorFactory.d.ts +5 -6
  43. package/dist/lib/ValidatorFactory.d.ts.map +1 -0
  44. package/dist/lib/ValidatorFactory.js +4 -12
  45. package/dist/lib/configuration-ingestor.d.ts +10 -22
  46. package/dist/lib/configuration-ingestor.d.ts.map +1 -0
  47. package/dist/lib/configuration-ingestor.js +61 -143
  48. package/dist/lib/configure.d.ts +2 -1
  49. package/dist/lib/configure.d.ts.map +1 -0
  50. package/dist/lib/configure.js +40 -52
  51. package/dist/lib/constants.d.ts +1 -0
  52. package/dist/lib/constants.d.ts.map +1 -0
  53. package/dist/lib/constants.js +8 -12
  54. package/dist/lib/context-id-generators.d.ts +1 -0
  55. package/dist/lib/context-id-generators.d.ts.map +1 -0
  56. package/dist/lib/context-id-generators.js +4 -9
  57. package/dist/lib/end-session.d.ts +2 -1
  58. package/dist/lib/end-session.d.ts.map +1 -0
  59. package/dist/lib/end-session.js +4 -11
  60. package/dist/lib/field.d.ts +2 -1
  61. package/dist/lib/field.d.ts.map +1 -0
  62. package/dist/lib/field.js +11 -21
  63. package/dist/lib/index.d.ts +1 -0
  64. package/dist/lib/index.d.ts.map +1 -0
  65. package/dist/lib/index.js +13 -65
  66. package/dist/lib/logger.d.ts +25 -2
  67. package/dist/lib/logger.d.ts.map +1 -0
  68. package/dist/lib/logger.js +18 -9
  69. package/dist/lib/mount.d.ts +1 -0
  70. package/dist/lib/mount.d.ts.map +1 -0
  71. package/dist/lib/mount.js +10 -16
  72. package/dist/lib/nunjucks-filters.d.ts +7 -3
  73. package/dist/lib/nunjucks-filters.d.ts.map +1 -0
  74. package/dist/lib/nunjucks-filters.js +58 -71
  75. package/dist/lib/nunjucks.d.ts +2 -2
  76. package/dist/lib/nunjucks.d.ts.map +1 -0
  77. package/dist/lib/nunjucks.js +12 -25
  78. package/dist/lib/utils.d.ts +4 -2
  79. package/dist/lib/utils.d.ts.map +1 -0
  80. package/dist/lib/utils.js +14 -28
  81. package/dist/lib/validators/dateObject.d.ts +1 -0
  82. package/dist/lib/validators/dateObject.d.ts.map +1 -0
  83. package/dist/lib/validators/dateObject.js +14 -21
  84. package/dist/lib/validators/email.d.ts +1 -0
  85. package/dist/lib/validators/email.d.ts.map +1 -0
  86. package/dist/lib/validators/email.js +8 -15
  87. package/dist/lib/validators/inArray.d.ts +1 -0
  88. package/dist/lib/validators/inArray.d.ts.map +1 -0
  89. package/dist/lib/validators/inArray.js +8 -15
  90. package/dist/lib/validators/index.d.ts +1 -0
  91. package/dist/lib/validators/index.d.ts.map +1 -0
  92. package/dist/lib/validators/index.js +21 -27
  93. package/dist/lib/validators/nino.d.ts +1 -0
  94. package/dist/lib/validators/nino.d.ts.map +1 -0
  95. package/dist/lib/validators/nino.js +6 -13
  96. package/dist/lib/validators/postalAddressObject.d.ts +1 -0
  97. package/dist/lib/validators/postalAddressObject.d.ts.map +1 -0
  98. package/dist/lib/validators/postalAddressObject.js +12 -19
  99. package/dist/lib/validators/range.d.ts +1 -0
  100. package/dist/lib/validators/range.d.ts.map +1 -0
  101. package/dist/lib/validators/range.js +6 -13
  102. package/dist/lib/validators/regex.d.ts +1 -0
  103. package/dist/lib/validators/regex.d.ts.map +1 -0
  104. package/dist/lib/validators/regex.js +6 -13
  105. package/dist/lib/validators/required.d.ts +1 -0
  106. package/dist/lib/validators/required.d.ts.map +1 -0
  107. package/dist/lib/validators/required.js +9 -17
  108. package/dist/lib/validators/strlen.d.ts +1 -0
  109. package/dist/lib/validators/strlen.d.ts.map +1 -0
  110. package/dist/lib/validators/strlen.js +6 -13
  111. package/dist/lib/validators/wordCount.d.ts +1 -0
  112. package/dist/lib/validators/wordCount.d.ts.map +1 -0
  113. package/dist/lib/validators/wordCount.js +6 -13
  114. package/dist/lib/waypoint-url.d.ts +3 -2
  115. package/dist/lib/waypoint-url.d.ts.map +1 -0
  116. package/dist/lib/waypoint-url.js +12 -19
  117. package/dist/middleware/body-parser.d.ts +1 -0
  118. package/dist/middleware/body-parser.d.ts.map +1 -0
  119. package/dist/middleware/body-parser.js +4 -9
  120. package/dist/middleware/csrf.d.ts +1 -0
  121. package/dist/middleware/csrf.d.ts.map +1 -0
  122. package/dist/middleware/csrf.js +4 -8
  123. package/dist/middleware/data.d.ts +2 -3
  124. package/dist/middleware/data.d.ts.map +1 -0
  125. package/dist/middleware/data.js +23 -25
  126. package/dist/middleware/gather-fields.d.ts +3 -1
  127. package/dist/middleware/gather-fields.d.ts.map +1 -0
  128. package/dist/middleware/gather-fields.js +13 -14
  129. package/dist/middleware/i18n.d.ts +1 -0
  130. package/dist/middleware/i18n.d.ts.map +1 -0
  131. package/dist/middleware/i18n.js +26 -31
  132. package/dist/middleware/post.d.ts +1 -0
  133. package/dist/middleware/post.d.ts.map +1 -0
  134. package/dist/middleware/post.js +3 -10
  135. package/dist/middleware/pre.d.ts +2 -1
  136. package/dist/middleware/pre.d.ts.map +1 -0
  137. package/dist/middleware/pre.js +6 -12
  138. package/dist/middleware/progress-journey.d.ts +5 -3
  139. package/dist/middleware/progress-journey.d.ts.map +1 -0
  140. package/dist/middleware/progress-journey.js +20 -18
  141. package/dist/middleware/sanitise-fields.d.ts +5 -3
  142. package/dist/middleware/sanitise-fields.d.ts.map +1 -0
  143. package/dist/middleware/sanitise-fields.js +25 -17
  144. package/dist/middleware/serve-first-waypoint.d.ts +1 -0
  145. package/dist/middleware/serve-first-waypoint.d.ts.map +1 -0
  146. package/dist/middleware/serve-first-waypoint.js +3 -6
  147. package/dist/middleware/session.d.ts +15 -0
  148. package/dist/middleware/session.d.ts.map +1 -0
  149. package/dist/middleware/session.js +53 -57
  150. package/dist/middleware/skip-waypoint.d.ts +3 -2
  151. package/dist/middleware/skip-waypoint.d.ts.map +1 -0
  152. package/dist/middleware/skip-waypoint.js +15 -14
  153. package/dist/middleware/steer-journey.d.ts +2 -1
  154. package/dist/middleware/steer-journey.d.ts.map +1 -0
  155. package/dist/middleware/steer-journey.js +7 -13
  156. package/dist/middleware/strip-proxy-path.d.ts +3 -2
  157. package/dist/middleware/strip-proxy-path.d.ts.map +1 -0
  158. package/dist/middleware/strip-proxy-path.js +24 -24
  159. package/dist/middleware/validate-fields.d.ts +7 -4
  160. package/dist/middleware/validate-fields.d.ts.map +1 -0
  161. package/dist/middleware/validate-fields.js +22 -11
  162. package/dist/routes/ancillary.d.ts +1 -0
  163. package/dist/routes/ancillary.d.ts.map +1 -0
  164. package/dist/routes/ancillary.js +3 -10
  165. package/dist/routes/journey.d.ts +7 -2
  166. package/dist/routes/journey.d.ts.map +1 -0
  167. package/dist/routes/journey.js +56 -55
  168. package/dist/routes/static.d.ts +1 -0
  169. package/dist/routes/static.d.ts.map +1 -0
  170. package/dist/routes/static.js +15 -23
  171. package/package.json +20 -26
  172. package/src/casa.js +49 -29
  173. package/src/core-plugins/edit-snapshot/src/post-steer-hook.js +1 -0
  174. package/src/core-plugins/edit-snapshot/src/pre-steer-hook.js +2 -1
  175. package/src/core-plugins/edit-snapshot/src/utils.js +29 -1
  176. package/src/lib/JourneyContext.js +31 -28
  177. package/src/lib/MutableRouter.js +47 -38
  178. package/src/lib/NullObject.js +4 -0
  179. package/src/lib/Plan.js +41 -55
  180. package/src/lib/ValidationError.js +2 -4
  181. package/src/lib/ValidatorFactory.js +3 -5
  182. package/src/lib/configuration-ingestor.js +18 -38
  183. package/src/lib/configure.js +7 -10
  184. package/src/lib/end-session.js +1 -1
  185. package/src/lib/field.js +7 -12
  186. package/src/lib/logger.js +16 -0
  187. package/src/lib/mount.js +1 -1
  188. package/src/lib/nunjucks-filters.js +51 -61
  189. package/src/lib/nunjucks.js +3 -12
  190. package/src/lib/utils.js +2 -1
  191. package/src/lib/validators/dateObject.js +3 -4
  192. package/src/lib/validators/postalAddressObject.js +6 -7
  193. package/src/lib/validators/required.js +1 -3
  194. package/src/lib/waypoint-url.js +15 -19
  195. package/src/middleware/csrf.js +1 -1
  196. package/src/middleware/data.js +13 -13
  197. package/src/middleware/gather-fields.js +8 -2
  198. package/src/middleware/i18n.js +9 -6
  199. package/src/middleware/pre.js +1 -1
  200. package/src/middleware/progress-journey.js +8 -0
  201. package/src/middleware/sanitise-fields.js +17 -2
  202. package/src/middleware/session.js +53 -12
  203. package/src/middleware/skip-waypoint.js +8 -1
  204. package/src/middleware/steer-journey.js +1 -1
  205. package/src/middleware/strip-proxy-path.js +21 -16
  206. package/src/middleware/validate-fields.js +19 -0
  207. package/src/routes/journey.js +18 -8
  208. package/src/routes/static.js +5 -4
  209. package/views/casa/layouts/journey.njk +1 -1
  210. package/views/casa/layouts/main.njk +11 -21
  211. package/dist/casa.js.map +0 -1
  212. package/dist/core-plugins/edit-snapshot/src/configure.js.map +0 -1
  213. package/dist/core-plugins/edit-snapshot/src/index.js.map +0 -1
  214. package/dist/core-plugins/edit-snapshot/src/post-steer-hook.js.map +0 -1
  215. package/dist/core-plugins/edit-snapshot/src/pre-steer-hook.js.map +0 -1
  216. package/dist/core-plugins/edit-snapshot/src/utils.js.map +0 -1
  217. package/dist/core-plugins/index.js.map +0 -1
  218. package/dist/lib/CasaTemplateLoader.js.map +0 -1
  219. package/dist/lib/JourneyContext.js.map +0 -1
  220. package/dist/lib/MutableRouter.js.map +0 -1
  221. package/dist/lib/Plan.js.map +0 -1
  222. package/dist/lib/ValidationError.js.map +0 -1
  223. package/dist/lib/ValidatorFactory.js.map +0 -1
  224. package/dist/lib/configuration-ingestor.js.map +0 -1
  225. package/dist/lib/configure.js.map +0 -1
  226. package/dist/lib/constants.js.map +0 -1
  227. package/dist/lib/context-id-generators.js.map +0 -1
  228. package/dist/lib/dirname.cjs +0 -1
  229. package/dist/lib/dirname.d.cts +0 -2
  230. package/dist/lib/end-session.js.map +0 -1
  231. package/dist/lib/field.js.map +0 -1
  232. package/dist/lib/index.js.map +0 -1
  233. package/dist/lib/logger.js.map +0 -1
  234. package/dist/lib/mount.js.map +0 -1
  235. package/dist/lib/nunjucks-filters.js.map +0 -1
  236. package/dist/lib/nunjucks.js.map +0 -1
  237. package/dist/lib/utils.js.map +0 -1
  238. package/dist/lib/validators/dateObject.js.map +0 -1
  239. package/dist/lib/validators/email.js.map +0 -1
  240. package/dist/lib/validators/inArray.js.map +0 -1
  241. package/dist/lib/validators/index.js.map +0 -1
  242. package/dist/lib/validators/nino.js.map +0 -1
  243. package/dist/lib/validators/postalAddressObject.js.map +0 -1
  244. package/dist/lib/validators/range.js.map +0 -1
  245. package/dist/lib/validators/regex.js.map +0 -1
  246. package/dist/lib/validators/required.js.map +0 -1
  247. package/dist/lib/validators/strlen.js.map +0 -1
  248. package/dist/lib/validators/wordCount.js.map +0 -1
  249. package/dist/lib/waypoint-url.js.map +0 -1
  250. package/dist/middleware/body-parser.js.map +0 -1
  251. package/dist/middleware/csrf.js.map +0 -1
  252. package/dist/middleware/data.js.map +0 -1
  253. package/dist/middleware/dirname.cjs +0 -1
  254. package/dist/middleware/dirname.d.cts +0 -2
  255. package/dist/middleware/gather-fields.js.map +0 -1
  256. package/dist/middleware/i18n.js.map +0 -1
  257. package/dist/middleware/post.js.map +0 -1
  258. package/dist/middleware/pre.js.map +0 -1
  259. package/dist/middleware/progress-journey.js.map +0 -1
  260. package/dist/middleware/sanitise-fields.js.map +0 -1
  261. package/dist/middleware/serve-first-waypoint.js.map +0 -1
  262. package/dist/middleware/session.js.map +0 -1
  263. package/dist/middleware/skip-waypoint.js.map +0 -1
  264. package/dist/middleware/steer-journey.js.map +0 -1
  265. package/dist/middleware/strip-proxy-path.js.map +0 -1
  266. package/dist/middleware/validate-fields.js.map +0 -1
  267. package/dist/mjs/esm-wrapper.js +0 -20
  268. package/dist/mjs/package.json +0 -3
  269. package/dist/package.json +0 -3
  270. package/dist/routes/ancillary.js.map +0 -1
  271. package/dist/routes/dirname.cjs +0 -1
  272. package/dist/routes/dirname.d.cts +0 -2
  273. package/dist/routes/journey.js.map +0 -1
  274. package/dist/routes/static.js.map +0 -1
  275. package/src/lib/dirname.cjs +0 -1
  276. package/src/middleware/dirname.cjs +0 -1
  277. package/src/routes/dirname.cjs +0 -1
package/dist/lib/mount.js CHANGED
@@ -1,12 +1,7 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const express_1 = require("express");
7
- const path_to_regexp_1 = require("path-to-regexp");
8
- const strip_proxy_path_js_1 = __importDefault(require("../middleware/strip-proxy-path.js"));
9
- const serve_first_waypoint_js_1 = __importDefault(require("../middleware/serve-first-waypoint.js"));
1
+ import { Router } from "express";
2
+ import { pathToRegexp } from "path-to-regexp";
3
+ import stripProxyPathMiddlewareFactory from "../middleware/strip-proxy-path.js";
4
+ import serveFirstWaypointMiddlewareFactory from "../middleware/serve-first-waypoint.js";
10
5
  /**
11
6
  * @typedef {import("nunjucks").Environment} NunjucksEnvironment
12
7
  * @access private
@@ -46,19 +41,19 @@ const serve_first_waypoint_js_1 = __importDefault(require("../middleware/serve-f
46
41
  * @param {ExpressRequestHandler[]} args.postMiddleware Middleware
47
42
  * @returns {Mounter} Mount
48
43
  */
49
- exports.default = ({ nunjucksEnv, mountUrl, plan, staticRouter, ancillaryRouter, journeyRouter, preMiddleware, sessionMiddleware, i18nMiddleware, bodyParserMiddleware, dataMiddleware, postMiddleware, }) => (app, { route = "/", serveFirstWaypoint = false } = {}) => {
44
+ export default ({ nunjucksEnv, mountUrl, plan, staticRouter, ancillaryRouter, journeyRouter, preMiddleware, sessionMiddleware, i18nMiddleware, bodyParserMiddleware, dataMiddleware, postMiddleware, }) => (app, { route = "/", serveFirstWaypoint = false } = {}) => {
50
45
  nunjucksEnv.express(app);
51
46
  app.set("view engine", "njk");
52
47
  // If a `mountUrl` has been defined, then we're potentially in "proxy mode",
53
48
  // in which we strip the proxy path prefix from the incoming request URLs.
54
49
  if (mountUrl) {
55
- app.use((0, strip_proxy_path_js_1.default)({ mountUrl }));
50
+ app.use(stripProxyPathMiddlewareFactory({ mountUrl }));
56
51
  }
57
52
  // Attach a handler to redirect requests for `/` to the first waypoint in
58
53
  // the plan
59
54
  if (serveFirstWaypoint && plan) {
60
- const re = (0, path_to_regexp_1.pathToRegexp)(`${route}`.replace(/\/+/g, "/"));
61
- app.use(re.regexp, (0, serve_first_waypoint_js_1.default)({ plan }));
55
+ const re = pathToRegexp(`${route}`.replace(/\/+/g, "/"));
56
+ app.use(re.regexp, serveFirstWaypointMiddlewareFactory({ plan }));
62
57
  }
63
58
  // Capture the mount path of this CASA app, before any parameterised path
64
59
  // segments exert influence over `req.baseUrl` in the `router` further below.
@@ -76,14 +71,14 @@ exports.default = ({ nunjucksEnv, mountUrl, plan, staticRouter, ancillaryRouter,
76
71
  const sealedStaticRouter = staticRouter.seal();
77
72
  app.use(preMiddleware);
78
73
  app.use(sealedStaticRouter);
79
- const router = (0, express_1.Router)({
74
+ const router = Router({
80
75
  // Required so that any parameters in the URL are propagated to middleware
81
76
  mergeParams: true,
82
77
  });
83
78
  router.use(preMiddleware);
79
+ router.use(bodyParserMiddleware);
84
80
  router.use(sessionMiddleware);
85
81
  router.use(i18nMiddleware);
86
- router.use(bodyParserMiddleware);
87
82
  router.use(dataMiddleware);
88
83
  router.use(ancillaryRouter.seal());
89
84
  router.use(journeyRouter.seal());
@@ -91,4 +86,3 @@ exports.default = ({ nunjucksEnv, mountUrl, plan, staticRouter, ancillaryRouter,
91
86
  app.use(route, router);
92
87
  return app;
93
88
  };
94
- //# sourceMappingURL=mount.js.map
@@ -1,13 +1,16 @@
1
1
  /**
2
- * @param {...any} objects Objects to merge
2
+ * Merge multiple objects into one object
3
+ *
4
+ * @memberof NunjucksFilters
5
+ * @param {...(object | Array)} objects Objects to merge
3
6
  * @returns {object} Merged object
4
7
  */
5
- export function mergeObjects(...objects: any[]): object;
8
+ export function mergeObjects(...objects: (object | any[])[]): object;
6
9
  /**
7
10
  * Determine whether a value exists in a list.
8
11
  *
9
12
  * @memberof NunjucksFilters
10
- * @param {any[]} source List of items to search
13
+ * @param {Array} source List of items to search
11
14
  * @param {any} search Item to search within the `source`
12
15
  * @returns {boolean} True if the search item was found
13
16
  */
@@ -48,3 +51,4 @@ export function formatDateObject(date: {
48
51
  * @returns {string} Formatted
49
52
  */
50
53
  export function renderAsAttributes(attrsObject: object): string;
54
+ //# sourceMappingURL=nunjucks-filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nunjucks-filters.d.ts","sourceRoot":"","sources":["../../src/lib/nunjucks-filters.js"],"names":[],"mappings":"AA6CA;;;;;;GAMG;AACH,yCAHc,CAAC,MAAM,QAAQ,CAAC,EAAA,GACjB,MAAM,CAYlB;AAED;;;;;;;GAOG;AACH,kDAHW,GAAG,GACD,OAAO,CAInB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,uCARG;IAAqB,EAAE,EAAf,MAAM;IACO,EAAE,EAAf,MAAM;IACO,IAAI,EAAjB,MAAM;CACd,WACA;IAAwB,MAAM;IACN,MAAM;CAC9B,GAAU,MAAM,CAoBlB;AAED;;;;;;;;;GASG;AACH,gDAHW,MAAM,GACJ,MAAM,CA0BlB"}
@@ -1,83 +1,69 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.mergeObjects = mergeObjects;
7
- exports.includes = includes;
8
- exports.formatDateObject = formatDateObject;
9
- exports.renderAsAttributes = renderAsAttributes;
10
- const deepmerge_1 = __importDefault(require("deepmerge"));
11
- const luxon_1 = require("luxon");
12
- const nunjucks_1 = __importDefault(require("nunjucks"));
13
- const { all: deepmergeAll } = deepmerge_1.default;
14
- // Arrays will be merged such that elements at the same index will be merged
15
- // into each other
16
- // ref: https://www.npmjs.com/package/deepmerge
17
- const combineMerge = (target, source, options) => {
18
- const destination = target.slice();
19
- for (let index = 0; index < source.length; index++) {
20
- // ESLint disabled as `index` is only an integer
21
- /* eslint-disable security/detect-object-injection */
22
- const item = source[index];
23
- if (typeof destination[index] === "undefined") {
24
- destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);
25
- }
26
- else if (options.isMergeableObject(item)) {
27
- destination[index] = (0, deepmerge_1.default)(target[index], item, options);
28
- }
29
- else if (target.indexOf(item) === -1) {
30
- destination.push(item);
31
- }
32
- /* eslint-enable security/detect-object-injection */
33
- }
34
- return destination;
35
- };
36
- // Allows objects to be deepmerged and retain their type, without becoming [object Object]
37
- // ref: https://github.com/jonschlinkert/is-plain-object/blob/master/is-plain-object.js
38
- /**
39
- * @param {any} o Value to test
40
- * @returns {boolean} True if an object
41
- */
42
- function isObject(o) {
43
- return Object.prototype.toString.call(o) === "[object Object]";
44
- }
1
+ import deepmerge from "@fastify/deepmerge";
2
+ import { DateTime } from "luxon";
3
+ import nunjucks from "nunjucks";
4
+ import isPlainObject from "is-plain-obj";
5
+ import NullObject from "./NullObject.js";
6
+ const merge = deepmerge({
7
+ all: true,
8
+ onlyDefinedProperties: true,
9
+ isMergeableObject: isMergable,
10
+ mergeArray(options) {
11
+ const deepmerge = options.deepmerge;
12
+ const clone = options.clone;
13
+ return function (target, source) {
14
+ let i = 0;
15
+ const tl = target.length;
16
+ const sl = source.length;
17
+ const il = Math.max(tl, sl);
18
+ const result = new Array(il);
19
+ /* eslint-disable security/detect-object-injection */
20
+ for (i = 0; i < il; ++i) {
21
+ const targetItem = target[i];
22
+ const sourceItem = source[i];
23
+ if (i < sl) {
24
+ result[i] = deepmerge(targetItem, sourceItem);
25
+ }
26
+ else {
27
+ result[i] = clone(targetItem);
28
+ }
29
+ }
30
+ /* eslint-enable security/detect-object-injection */
31
+ return result;
32
+ };
33
+ },
34
+ });
45
35
  /**
46
- * @param {any} o Value to test
47
- * @returns {boolean} True if a plain object or array
36
+ * Returns true if object is mergable (plain object or Array)
37
+ *
38
+ * @param {object} object Input object
39
+ * @returns {boolean} Is mergable
48
40
  */
49
- function isPlainObjectOrArray(o) {
50
- if (Array.isArray(o)) {
51
- return true;
52
- }
53
- if (isObject(o) === false) {
54
- return false;
55
- }
56
- const ctor = o.constructor;
57
- if (ctor === undefined) {
58
- return true;
59
- }
60
- const prot = ctor.prototype;
61
- if (isObject(prot) === false) {
62
- return false;
63
- }
64
- return Object.hasOwn(prot, "isPrototypeOf");
41
+ function isMergable(object) {
42
+ return Array.isArray(object) || isPlainObject(object);
65
43
  }
66
44
  /**
67
- * @param {...any} objects Objects to merge
45
+ * Merge multiple objects into one object
46
+ *
47
+ * @memberof NunjucksFilters
48
+ * @param {...(object | Array)} objects Objects to merge
68
49
  * @returns {object} Merged object
69
50
  */
70
51
  function mergeObjects(...objects) {
71
- return deepmergeAll([Object.create(null), ...objects], {
72
- arrayMerge: combineMerge,
73
- isMergeableObject: isPlainObjectOrArray,
74
- });
52
+ const merged = merge(new NullObject(), ...objects);
53
+ if (merged === null) {
54
+ for (const object of objects) {
55
+ if (!isMergable(object)) {
56
+ throw new TypeError(`Cannot convert ${typeof object} to object`);
57
+ }
58
+ }
59
+ }
60
+ return merged;
75
61
  }
76
62
  /**
77
63
  * Determine whether a value exists in a list.
78
64
  *
79
65
  * @memberof NunjucksFilters
80
- * @param {any[]} source List of items to search
66
+ * @param {Array} source List of items to search
81
67
  * @param {any} search Item to search within the `source`
82
68
  * @returns {boolean} True if the search item was found
83
69
  */
@@ -107,7 +93,7 @@ function formatDateObject(date, config = {}) {
107
93
  "yyyy" in date &&
108
94
  "mm" in date &&
109
95
  "dd" in date) {
110
- return luxon_1.DateTime.fromObject({
96
+ return DateTime.fromObject({
111
97
  year: Math.max(0, parseInt(date.yyyy, 10)),
112
98
  month: Math.max(0, parseInt(date.mm, 10)),
113
99
  day: Math.max(1, parseInt(date.dd, 10)),
@@ -146,6 +132,7 @@ function renderAsAttributes(attrsObject) {
146
132
  attrsList.push(`${key}="${value}"`);
147
133
  }
148
134
  }
149
- return new nunjucks_1.default.runtime.SafeString(attrsList.join(" "));
135
+ return new nunjucks.runtime.SafeString(attrsList.join(" "));
150
136
  }
151
- //# sourceMappingURL=nunjucks-filters.js.map
137
+ /** @namespace NunjucksFilters */
138
+ export { mergeObjects, includes, formatDateObject, renderAsAttributes };
@@ -7,11 +7,10 @@
7
7
  * Create a Nunjucks environment.
8
8
  *
9
9
  * @param {NunjucksOptions} options Nunjucks options
10
- * @param {boolean} govukRebrand GovukRebrand flag
11
10
  * @returns {Environment} Nunjucks Environment instance
12
11
  * @access private
13
12
  */
14
- export default function nunjucksConfig({ views, govukRebrand }: NunjucksOptions): Environment;
13
+ export default function nunjucksConfig({ views }: NunjucksOptions): Environment;
15
14
  export type NunjucksOptions = {
16
15
  /**
17
16
  * Template file directories (optional, default
@@ -20,3 +19,4 @@ export type NunjucksOptions = {
20
19
  views?: string[] | undefined;
21
20
  };
22
21
  import { Environment } from "nunjucks";
22
+ //# sourceMappingURL=nunjucks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nunjucks.d.ts","sourceRoot":"","sources":["../../src/lib/nunjucks.js"],"names":[],"mappings":"AAUA;;;;GAIG;AAEH;;;;;;GAMG;AACH,kDAJW,eAAe,GACb,WAAW,CA+BvB;;;;;;;;4BAnD2B,UAAU"}
@@ -1,15 +1,7 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = nunjucksConfig;
7
- const node_fs_1 = require("node:fs");
8
- const node_path_1 = require("node:path");
9
- const nunjucks_1 = require("nunjucks");
10
- const dirname_cjs_1 = __importDefault(require("./dirname.cjs"));
11
- const CasaTemplateLoader_js_1 = __importDefault(require("./CasaTemplateLoader.js"));
12
- const nunjucks_filters_js_1 = require("./nunjucks-filters.js");
1
+ import { Environment } from "nunjucks";
2
+ import packageInfo from "../../package.json" with { type: "json" };
3
+ import CasaTemplateLoader from "./CasaTemplateLoader.js";
4
+ import { mergeObjects, includes, renderAsAttributes, formatDateObject, } from "./nunjucks-filters.js";
13
5
  /**
14
6
  * @typedef {object} NunjucksOptions
15
7
  * @property {string[]} [views=[]] Template file directories (optional, default
@@ -19,19 +11,18 @@ const nunjucks_filters_js_1 = require("./nunjucks-filters.js");
19
11
  * Create a Nunjucks environment.
20
12
  *
21
13
  * @param {NunjucksOptions} options Nunjucks options
22
- * @param {boolean} govukRebrand GovukRebrand flag
23
14
  * @returns {Environment} Nunjucks Environment instance
24
15
  * @access private
25
16
  */
26
- function nunjucksConfig({ views = [], govukRebrand }) {
17
+ export default function nunjucksConfig({ views = [] }) {
27
18
  // Prepare a single Nunjucks environment for all responses to use. Note that
28
19
  // we cannot prepare response-specific global functions/filters if we use a
29
20
  // single environment, but the performance gains of doing so are significant.
30
- const loader = new CasaTemplateLoader_js_1.default(views, {
21
+ const loader = new CasaTemplateLoader(views, {
31
22
  watch: false,
32
23
  noCache: false,
33
24
  });
34
- const env = new nunjucks_1.Environment(loader, {
25
+ const env = new Environment(loader, {
35
26
  autoescape: true,
36
27
  throwOnUndefined: false,
37
28
  trimBlocks: false,
@@ -41,14 +32,10 @@ function nunjucksConfig({ views = [], govukRebrand }) {
41
32
  env.modifyBlock = loader.modifyBlock.bind(loader);
42
33
  // Globals
43
34
  // These can't be modified once set. But they can be overridden by res.locals.
44
- env.addGlobal("casaVersion",
45
- /* eslint-disable-next-line security/detect-non-literal-fs-filename */
46
- JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.resolve)(dirname_cjs_1.default, "../../package.json"))).version);
47
- env.addGlobal("govukRebrand", govukRebrand);
48
- env.addGlobal("mergeObjects", nunjucks_filters_js_1.mergeObjects);
49
- env.addGlobal("includes", nunjucks_filters_js_1.includes);
50
- env.addGlobal("formatDateObject", nunjucks_filters_js_1.formatDateObject);
51
- env.addGlobal("renderAsAttributes", nunjucks_filters_js_1.renderAsAttributes);
35
+ env.addGlobal("casaVersion", packageInfo.version);
36
+ env.addGlobal("mergeObjects", mergeObjects);
37
+ env.addGlobal("includes", includes);
38
+ env.addGlobal("formatDateObject", formatDateObject);
39
+ env.addGlobal("renderAsAttributes", renderAsAttributes);
52
40
  return env;
53
41
  }
54
- //# sourceMappingURL=nunjucks.js.map
@@ -25,10 +25,11 @@ export function isStringable(value: any): boolean;
25
25
  * @param {string} hookName Hook name (including scope prefix)
26
26
  * @param {string} path URL path to match (relative to mountUrl)
27
27
  * @param {Hook[]} hooks Hooks to be applied at the page level
28
- * @returns {Function[]} An array of middleware that should be applied
28
+ * @returns {import("express").RequestHandler[]} An array of middleware that
29
+ * should be applied
29
30
  * @access private
30
31
  */
31
- export function resolveMiddlewareHooks(hookName: string, path: string, hooks?: Hook[]): Function[];
32
+ export function resolveMiddlewareHooks(hookName: string, path: string, hooks?: Hook[]): import("express").RequestHandler[];
32
33
  /**
33
34
  * Coerce an input to a string.
34
35
  *
@@ -114,3 +115,4 @@ export function validateView(view: string): void;
114
115
  */
115
116
  export function validateWaypoint(waypoint: string): void;
116
117
  export type Hook = import("../casa").GlobalHook | import("../casa").PageHook;
118
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,6BAJW,GAAG,GACD,OAAO,CAiBnB;AAED;;;;;;GAMG;AACH,oCAJW,GAAG,GACD,OAAO,CAKnB;AAED;;;;;;;;;;GAUG;AACH,iDAPW,MAAM,QACN,MAAM,UACN,IAAI,EAAE,GACJ,OAAO,SAAS,EAAE,cAAc,EAAE,CAa9C;AAED;;;;;;;GAOG;AACH,sCALW,GAAG,YACH,MAAM,mBACJ,MAAM,CAUlB;AAED;;;;;GAKG;AACH,4CAHW,GAAG,GACD,MAAM,GAAG,SAAS,CAI9B;AAED;;;;;;;;GAQG;AACH,uCANW,MAAM,WACN,MAAM,GACJ,MAAM,CAqClB;AAID;;;;;;;GAOG;AACH,8BALW,MAAM,GACJ,MAAM,CAalB;AAED;;;;;;;;GAQG;AACH,2CANW,MAAM,GACJ,IAAI,CAmBhB;AAED;;;;;;;GAOG;AACH,uCALW,MAAM,GACJ,IAAI,CAQhB;AAED;;;;;;;;GAQG;AACH,sCANW,MAAM,GACJ,MAAM,CAqBlB;AAED;;;;;;;;GAQG;AACH,mCANW,MAAM,GACJ,IAAI,CAmBhB;AAED;;;;;;;;GAQG;AACH,2CANW,MAAM,GACJ,IAAI,CAmBhB;mBA1QY,OAAO,SAAS,EAAE,UAAU,GAAG,OAAO,SAAS,EAAE,QAAQ"}
package/dist/lib/utils.js CHANGED
@@ -1,21 +1,7 @@
1
- "use strict";
2
1
  /**
3
2
  * @typedef {import("../casa").GlobalHook | import("../casa").PageHook} Hook
4
3
  * @access private
5
4
  */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.isEmpty = isEmpty;
8
- exports.isStringable = isStringable;
9
- exports.resolveMiddlewareHooks = resolveMiddlewareHooks;
10
- exports.stringifyInput = stringifyInput;
11
- exports.coerceInputToInteger = coerceInputToInteger;
12
- exports.stripWhitespace = stripWhitespace;
13
- exports.notProto = notProto;
14
- exports.validateHookName = validateHookName;
15
- exports.validateHookPath = validateHookPath;
16
- exports.validateUrlPath = validateUrlPath;
17
- exports.validateView = validateView;
18
- exports.validateWaypoint = validateWaypoint;
19
5
  /**
20
6
  * Determine if value is empty. Recurse over objects.
21
7
  *
@@ -23,7 +9,7 @@ exports.validateWaypoint = validateWaypoint;
23
9
  * @returns {boolean} True if the object is empty
24
10
  * @access private
25
11
  */
26
- function isEmpty(val) {
12
+ export function isEmpty(val) {
27
13
  if (val === null ||
28
14
  typeof val === "undefined" ||
29
15
  (typeof val === "string" && val === "")) {
@@ -43,7 +29,7 @@ function isEmpty(val) {
43
29
  * @returns {boolean} Whether the value is stringable or not
44
30
  * @access private
45
31
  */
46
- function isStringable(value) {
32
+ export function isStringable(value) {
47
33
  return typeof value === "string" || typeof value === "number";
48
34
  }
49
35
  /**
@@ -53,10 +39,11 @@ function isStringable(value) {
53
39
  * @param {string} hookName Hook name (including scope prefix)
54
40
  * @param {string} path URL path to match (relative to mountUrl)
55
41
  * @param {Hook[]} hooks Hooks to be applied at the page level
56
- * @returns {Function[]} An array of middleware that should be applied
42
+ * @returns {import("express").RequestHandler[]} An array of middleware that
43
+ * should be applied
57
44
  * @access private
58
45
  */
59
- function resolveMiddlewareHooks(hookName, path, hooks = []) {
46
+ export function resolveMiddlewareHooks(hookName, path, hooks = []) {
60
47
  const pathMatch = (h) => h.path === undefined ||
61
48
  (h.path instanceof RegExp && h.path.test(path)) ||
62
49
  h.path === path;
@@ -73,7 +60,7 @@ function resolveMiddlewareHooks(hookName, path, hooks = []) {
73
60
  * @returns {string} The stringified input
74
61
  * @access private
75
62
  */
76
- function stringifyInput(input, fallback) {
63
+ export function stringifyInput(input, fallback) {
77
64
  // Not using param defaults here as the fallback may be explicitly "undefined"
78
65
  const fb = arguments.length === 2 && (isStringable(fallback) || fallback === undefined)
79
66
  ? fallback
@@ -86,7 +73,7 @@ function stringifyInput(input, fallback) {
86
73
  * @param {any} input Input to be coerced.
87
74
  * @returns {number | undefined} The number as an integer or `undefined`.
88
75
  */
89
- function coerceInputToInteger(input) {
76
+ export function coerceInputToInteger(input) {
90
77
  return Number.isNaN(Number(input)) ? undefined : Math.floor(Number(input));
91
78
  }
92
79
  /**
@@ -98,7 +85,7 @@ function coerceInputToInteger(input) {
98
85
  * @throws {TypeError}
99
86
  * @access private
100
87
  */
101
- function stripWhitespace(value, options) {
88
+ export function stripWhitespace(value, options) {
102
89
  const opts = {
103
90
  leading: "",
104
91
  trailing: "",
@@ -135,7 +122,7 @@ function stripWhitespace(value, options) {
135
122
  * @throws {Error} If proposed key is an invalid keyword
136
123
  * @access private
137
124
  */
138
- function notProto(key) {
125
+ export function notProto(key) {
139
126
  if (["__proto__", "constructor", "prototype"].includes(String(key).toLowerCase())) {
140
127
  throw new Error("Attempt to use prototype key disallowed");
141
128
  }
@@ -150,7 +137,7 @@ function notProto(key) {
150
137
  * @throws {SyntaxError}
151
138
  * @access private
152
139
  */
153
- function validateHookName(hookName) {
140
+ export function validateHookName(hookName) {
154
141
  if (typeof hookName !== "string") {
155
142
  throw new TypeError("Hook name must be a string");
156
143
  }
@@ -169,7 +156,7 @@ function validateHookName(hookName) {
169
156
  * @throws {TypeError}
170
157
  * @access private
171
158
  */
172
- function validateHookPath(path) {
159
+ export function validateHookPath(path) {
173
160
  if (typeof path !== "string" && !(path instanceof RegExp)) {
174
161
  throw new TypeError("Hook path must be a string or RegExp");
175
162
  }
@@ -183,7 +170,7 @@ function validateHookPath(path) {
183
170
  * @throws {SyntaxError}
184
171
  * @access private
185
172
  */
186
- function validateUrlPath(path) {
173
+ export function validateUrlPath(path) {
187
174
  if (typeof path !== "string") {
188
175
  throw new TypeError("URL path must be a string");
189
176
  }
@@ -204,7 +191,7 @@ function validateUrlPath(path) {
204
191
  * @throws {SyntaxError}
205
192
  * @access private
206
193
  */
207
- function validateView(view) {
194
+ export function validateView(view) {
208
195
  if (typeof view !== "string") {
209
196
  throw new TypeError("View must be a string");
210
197
  }
@@ -224,7 +211,7 @@ function validateView(view) {
224
211
  * @throws {SyntaxError}
225
212
  * @access private
226
213
  */
227
- function validateWaypoint(waypoint) {
214
+ export function validateWaypoint(waypoint) {
228
215
  if (typeof waypoint !== "string") {
229
216
  throw new TypeError("Waypoint must be a string");
230
217
  }
@@ -235,4 +222,3 @@ function validateWaypoint(waypoint) {
235
222
  throw new SyntaxError("Waypoint must contain only a-z, 0-9, -, _ and / characters");
236
223
  }
237
224
  }
238
- //# sourceMappingURL=utils.js.map
@@ -85,3 +85,4 @@ export type DateObjectConfigOptions = {
85
85
  import ValidatorFactory from "../ValidatorFactory.js";
86
86
  import ValidationError from "../ValidationError.js";
87
87
  import { DateTime } from "luxon";
88
+ //# sourceMappingURL=dateObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateObject.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/dateObject.js"],"names":[],"mappings":"AAOA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;GAUG;AACH;IACE,4DAA4D;IAC5D,aAAoB;IAEpB,0DAqHC;IAED,0BAWC;CACF;iCAzKY,OAAO,YAAY,EAAE,kBAAkB;;;;;cAMtC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAVH,wBAAwB;4BADzB,uBAAuB;yBAF1B,OAAO"}
@@ -1,14 +1,9 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const luxon_1 = require("luxon");
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
9
- const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
10
- const utils_js_1 = require("../utils.js");
11
- const { isPlainObject } = lodash_1.default;
1
+ import isPlainObject from "is-plain-obj";
2
+ import { DateTime } from "luxon";
3
+ import NullObject from "../NullObject.js";
4
+ import ValidationError from "../ValidationError.js";
5
+ import ValidatorFactory from "../ValidatorFactory.js";
6
+ import { stringifyInput, stripWhitespace } from "../utils.js";
12
7
  /**
13
8
  * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
14
9
  * @access private
@@ -42,7 +37,7 @@ const { isPlainObject } = lodash_1.default;
42
37
  * @memberof Validators
43
38
  * @augments ValidatorFactory
44
39
  */
45
- class DateObject extends ValidatorFactory_js_1.default {
40
+ export default class DateObject extends ValidatorFactory {
46
41
  /** @property {string} name Validator name ("dateObject") */
47
42
  name = "dateObject";
48
43
  validate(value, dataContext = {}) {
@@ -59,7 +54,7 @@ class DateObject extends ValidatorFactory_js_1.default {
59
54
  inline: "validation:rule.dateObject.beforeOffset.inline",
60
55
  summary: "validation:rule.dateObject.beforeOffset.summary",
61
56
  },
62
- now: luxon_1.DateTime.local(),
57
+ now: DateTime.local(),
63
58
  allowSingleDigitDay: false,
64
59
  allowSingleDigitMonth: false,
65
60
  allowMonthNames: false,
@@ -102,7 +97,7 @@ class DateObject extends ValidatorFactory_js_1.default {
102
97
  }
103
98
  if (typeof value === "object") {
104
99
  formats.find((format) => {
105
- luxonDate = luxon_1.DateTime.fromFormat([value.dd, value.mm, value.yyyy].join("-"), format).startOf("day");
100
+ luxonDate = DateTime.fromFormat([value.dd, value.mm, value.yyyy].join("-"), format).startOf("day");
106
101
  valid = luxonDate.isValid;
107
102
  return valid;
108
103
  });
@@ -144,20 +139,18 @@ class DateObject extends ValidatorFactory_js_1.default {
144
139
  errorMsg.focusSuffix = ["[dd]", "[mm]", "[yyyy]"];
145
140
  }
146
141
  }
147
- return valid ? [] : [ValidationError_js_1.default.make({ errorMsg, dataContext })];
142
+ return valid ? [] : [ValidationError.make({ errorMsg, dataContext })];
148
143
  }
149
144
  sanitise(value) {
150
145
  if (value !== undefined) {
151
146
  return isPlainObject(value)
152
147
  ? {
153
- dd: (0, utils_js_1.stripWhitespace)((0, utils_js_1.stringifyInput)(value.dd)),
154
- mm: (0, utils_js_1.stripWhitespace)((0, utils_js_1.stringifyInput)(value.mm)),
155
- yyyy: (0, utils_js_1.stripWhitespace)((0, utils_js_1.stringifyInput)(value.yyyy)),
148
+ dd: stripWhitespace(stringifyInput(value.dd)),
149
+ mm: stripWhitespace(stringifyInput(value.mm)),
150
+ yyyy: stripWhitespace(stringifyInput(value.yyyy)),
156
151
  }
157
- : Object.create(null);
152
+ : new NullObject();
158
153
  }
159
154
  return undefined;
160
155
  }
161
156
  }
162
- exports.default = DateObject;
163
- //# sourceMappingURL=dateObject.js.map
@@ -31,3 +31,4 @@ export type EmailConfigOptions = {
31
31
  };
32
32
  import ValidatorFactory from "../ValidatorFactory.js";
33
33
  import ValidationError from "../ValidationError.js";
34
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/email.js"],"names":[],"mappings":"AAOA;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;;;;GASG;AACH;IACE,uDAAuD;IACvD,aAAe;IAEf,0DAcC;IAED,yCAKC;CACF;iCA7CY,OAAO,YAAY,EAAE,kBAAkB;;;;;cAMtC,kBAAkB;;6BAZH,wBAAwB;4BADzB,uBAAuB"}
@@ -1,13 +1,8 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const validator_1 = __importDefault(require("validator"));
7
- const ValidationError_js_1 = __importDefault(require("../ValidationError.js"));
8
- const ValidatorFactory_js_1 = __importDefault(require("../ValidatorFactory.js"));
9
- const utils_js_1 = require("../utils.js");
10
- const { isEmail } = validator_1.default; // CommonJS
1
+ import validatorPkg from "validator";
2
+ import ValidationError from "../ValidationError.js";
3
+ import ValidatorFactory from "../ValidatorFactory.js";
4
+ import { stringifyInput } from "../utils.js";
5
+ const { isEmail } = validatorPkg; // CommonJS
11
6
  /**
12
7
  * @typedef {import("../../casa").ErrorMessageConfig} ErrorMessageConfig
13
8
  * @access private
@@ -26,7 +21,7 @@ const { isEmail } = validator_1.default; // CommonJS
26
21
  * @memberof Validators
27
22
  * @augments ValidatorFactory
28
23
  */
29
- class Email extends ValidatorFactory_js_1.default {
24
+ export default class Email extends ValidatorFactory {
30
25
  /** @property {string} name Validator name ("email") */
31
26
  name = "email";
32
27
  validate(value, dataContext = {}) {
@@ -41,14 +36,12 @@ class Email extends ValidatorFactory_js_1.default {
41
36
  summary: "validation:rule.email.summary",
42
37
  inline: "validation:rule.email.inline",
43
38
  };
44
- return isValid ? [] : [ValidationError_js_1.default.make({ errorMsg, dataContext })];
39
+ return isValid ? [] : [ValidationError.make({ errorMsg, dataContext })];
45
40
  }
46
41
  sanitise(value) {
47
42
  if (value !== undefined) {
48
- return (0, utils_js_1.stringifyInput)(value);
43
+ return stringifyInput(value);
49
44
  }
50
45
  return undefined;
51
46
  }
52
47
  }
53
- exports.default = Email;
54
- //# sourceMappingURL=email.js.map
@@ -37,3 +37,4 @@ export type ArrayConfigOptions = {
37
37
  };
38
38
  import ValidatorFactory from "../ValidatorFactory.js";
39
39
  import ValidationError from "../ValidationError.js";
40
+ //# sourceMappingURL=inArray.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inArray.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/inArray.js"],"names":[],"mappings":"AAYA;;;GAGG;AAEH;;;;GAIG;AAEH;;;;;;;;;;GAUG;AACH;IACE,yDAAyD;IACzD,aAAiB;IAEjB,0DAqBC;IAED,oDAgBC;CACF;iCAjEY,OAAO,YAAY,EAAE,kBAAkB;;;;;cAMtC,kBAAkB;;;;YAClB,MAAM,EAAE;;6BAXO,wBAAwB;4BADzB,uBAAuB"}