@planning-inspectorate/dynamic-forms 3.3.4 → 3.4.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 (262) hide show
  1. package/.azure/pipelines/azure-pipelines-pr.yml +4 -0
  2. package/.azure/pipelines/release.yml +4 -0
  3. package/README.md +20 -9
  4. package/package.json +9 -3
  5. package/src/components/address/question.js +1 -10
  6. package/src/components/boolean/question.js +1 -1
  7. package/src/components/checkbox/question.js +2 -6
  8. package/src/components/date/question.js +1 -8
  9. package/src/components/date-period/question.js +1 -8
  10. package/src/components/email/question.js +4 -4
  11. package/src/components/multi-field-input/question.js +3 -3
  12. package/src/components/multi-field-input/question.test.js +1 -1
  13. package/src/components/number-entry/question.js +1 -5
  14. package/src/components/radio/question.js +1 -1
  15. package/src/components/select/question.js +1 -1
  16. package/src/components/single-line-input/question.js +0 -8
  17. package/src/components/text-entry/question.js +4 -4
  18. package/src/components/text-entry-redact/question.js +6 -16
  19. package/src/components/unit-option-entry/question.js +4 -11
  20. package/src/components/utils/component-types.js +18 -0
  21. package/src/index.js +72 -25
  22. package/src/middleware/redirect-to-unanswered-question.test.js +1 -1
  23. package/src/questions/options-question.js +5 -12
  24. package/src/questions/question-types.d.ts +3 -3
  25. package/src/questions/question.js +6 -6
  26. package/src/questions/questions.js +1 -1
  27. package/tsconfig.json +9 -1
  28. package/types/commitlint.config.d.ts +7 -0
  29. package/types/commitlint.config.d.ts.map +1 -0
  30. package/types/eslint.config.d.ts +95 -0
  31. package/types/eslint.config.d.ts.map +1 -0
  32. package/types/src/components/address/question.d.ts +31 -0
  33. package/types/src/components/address/question.d.ts.map +1 -0
  34. package/types/src/components/address/question.test.d.ts +2 -0
  35. package/types/src/components/address/question.test.d.ts.map +1 -0
  36. package/types/src/components/boolean/question.d.ts +47 -0
  37. package/types/src/components/boolean/question.d.ts.map +1 -0
  38. package/types/src/components/boolean/question.test.d.ts +2 -0
  39. package/types/src/components/boolean/question.test.d.ts.map +1 -0
  40. package/types/src/components/checkbox/question.d.ts +49 -0
  41. package/types/src/components/checkbox/question.d.ts.map +1 -0
  42. package/types/src/components/checkbox/question.test.d.ts +2 -0
  43. package/types/src/components/checkbox/question.test.d.ts.map +1 -0
  44. package/types/src/components/date/question.d.ts +22 -0
  45. package/types/src/components/date/question.d.ts.map +1 -0
  46. package/types/src/components/date/question.test.d.ts +2 -0
  47. package/types/src/components/date/question.test.d.ts.map +1 -0
  48. package/types/src/components/date-period/question.d.ts +29 -0
  49. package/types/src/components/date-period/question.d.ts.map +1 -0
  50. package/types/src/components/date-period/question.test.d.ts +2 -0
  51. package/types/src/components/date-period/question.test.d.ts.map +1 -0
  52. package/types/src/components/date-time/question.d.ts +24 -0
  53. package/types/src/components/date-time/question.d.ts.map +1 -0
  54. package/types/src/components/date-time/question.test.d.ts +2 -0
  55. package/types/src/components/date-time/question.test.d.ts.map +1 -0
  56. package/types/src/components/email/question.d.ts +30 -0
  57. package/types/src/components/email/question.d.ts.map +1 -0
  58. package/types/src/components/email/question.test.d.ts +2 -0
  59. package/types/src/components/email/question.test.d.ts.map +1 -0
  60. package/types/src/components/identifier/question.d.ts +15 -0
  61. package/types/src/components/identifier/question.d.ts.map +1 -0
  62. package/types/src/components/identifier/question.test.d.ts +2 -0
  63. package/types/src/components/identifier/question.test.d.ts.map +1 -0
  64. package/types/src/components/manage-list/manage-list-section.d.ts +16 -0
  65. package/types/src/components/manage-list/manage-list-section.d.ts.map +1 -0
  66. package/types/src/components/manage-list/manage-list-section.test.d.ts +2 -0
  67. package/types/src/components/manage-list/manage-list-section.test.d.ts.map +1 -0
  68. package/types/src/components/manage-list/question.d.ts +41 -0
  69. package/types/src/components/manage-list/question.d.ts.map +1 -0
  70. package/types/src/components/manage-list/question.test.d.ts +2 -0
  71. package/types/src/components/manage-list/question.test.d.ts.map +1 -0
  72. package/types/src/components/manage-list/utils.d.ts +18 -0
  73. package/types/src/components/manage-list/utils.d.ts.map +1 -0
  74. package/types/src/components/manage-list/utils.test.d.ts +2 -0
  75. package/types/src/components/manage-list/utils.test.d.ts.map +1 -0
  76. package/types/src/components/multi-field-input/question.d.ts +106 -0
  77. package/types/src/components/multi-field-input/question.d.ts.map +1 -0
  78. package/types/src/components/multi-field-input/question.test.d.ts +2 -0
  79. package/types/src/components/multi-field-input/question.test.d.ts.map +1 -0
  80. package/types/src/components/number-entry/question.d.ts +37 -0
  81. package/types/src/components/number-entry/question.d.ts.map +1 -0
  82. package/types/src/components/radio/question.d.ts +53 -0
  83. package/types/src/components/radio/question.d.ts.map +1 -0
  84. package/types/src/components/radio/question.test.d.ts +2 -0
  85. package/types/src/components/radio/question.test.d.ts.map +1 -0
  86. package/types/src/components/select/question.d.ts +51 -0
  87. package/types/src/components/select/question.d.ts.map +1 -0
  88. package/types/src/components/select/question.test.d.ts +2 -0
  89. package/types/src/components/select/question.test.d.ts.map +1 -0
  90. package/types/src/components/single-line-input/question.d.ts +18 -0
  91. package/types/src/components/single-line-input/question.d.ts.map +1 -0
  92. package/types/src/components/single-line-input/question.test.d.ts +2 -0
  93. package/types/src/components/single-line-input/question.test.d.ts.map +1 -0
  94. package/types/src/components/text-entry/question.d.ts +34 -0
  95. package/types/src/components/text-entry/question.d.ts.map +1 -0
  96. package/types/src/components/text-entry/question.test.d.ts +2 -0
  97. package/types/src/components/text-entry/question.test.d.ts.map +1 -0
  98. package/types/src/components/text-entry-redact/question.d.ts +42 -0
  99. package/types/src/components/text-entry-redact/question.d.ts.map +1 -0
  100. package/types/src/components/text-entry-redact/question.test.d.ts +2 -0
  101. package/types/src/components/text-entry-redact/question.test.d.ts.map +1 -0
  102. package/types/src/components/unit-option-entry/question.d.ts +83 -0
  103. package/types/src/components/unit-option-entry/question.d.ts.map +1 -0
  104. package/types/src/components/unit-option-entry/question.test.d.ts +2 -0
  105. package/types/src/components/unit-option-entry/question.test.d.ts.map +1 -0
  106. package/types/src/components/utils/component-types.d.ts +19 -0
  107. package/types/src/components/utils/component-types.d.ts.map +1 -0
  108. package/types/src/components/utils/persisted-number-answer.d.ts +2 -0
  109. package/types/src/components/utils/persisted-number-answer.d.ts.map +1 -0
  110. package/types/src/components/utils/question-has-answer.d.ts +17 -0
  111. package/types/src/components/utils/question-has-answer.d.ts.map +1 -0
  112. package/types/src/components/utils/question-has-answer.test.d.ts +2 -0
  113. package/types/src/components/utils/question-has-answer.test.d.ts.map +1 -0
  114. package/types/src/components/utils/question-utils.d.ts +15 -0
  115. package/types/src/components/utils/question-utils.d.ts.map +1 -0
  116. package/types/src/components/utils/question-utils.test.d.ts +2 -0
  117. package/types/src/components/utils/question-utils.test.d.ts.map +1 -0
  118. package/types/src/controller.d.ts +78 -0
  119. package/types/src/controller.d.ts.map +1 -0
  120. package/types/src/controller.test.d.ts +2 -0
  121. package/types/src/controller.test.d.ts.map +1 -0
  122. package/types/src/index.d.ts +54 -0
  123. package/types/src/index.d.ts.map +1 -0
  124. package/types/src/journey/journey-response.d.ts +32 -0
  125. package/types/src/journey/journey-response.d.ts.map +1 -0
  126. package/types/src/journey/journey-response.test.d.ts +2 -0
  127. package/types/src/journey/journey-response.test.d.ts.map +1 -0
  128. package/types/src/journey/journey.d.ts +144 -0
  129. package/types/src/journey/journey.d.ts.map +1 -0
  130. package/types/src/journey/journey.test.d.ts +2 -0
  131. package/types/src/journey/journey.test.d.ts.map +1 -0
  132. package/types/src/lib/address-utils.d.ts +6 -0
  133. package/types/src/lib/address-utils.d.ts.map +1 -0
  134. package/types/src/lib/address-utils.test.d.ts +2 -0
  135. package/types/src/lib/address-utils.test.d.ts.map +1 -0
  136. package/types/src/lib/address.d.ts +43 -0
  137. package/types/src/lib/address.d.ts.map +1 -0
  138. package/types/src/lib/address.test.d.ts +2 -0
  139. package/types/src/lib/address.test.d.ts.map +1 -0
  140. package/types/src/lib/date-utils.d.ts +60 -0
  141. package/types/src/lib/date-utils.d.ts.map +1 -0
  142. package/types/src/lib/date-utils.test.d.ts +2 -0
  143. package/types/src/lib/date-utils.test.d.ts.map +1 -0
  144. package/types/src/lib/session-answer-store.d.ts +84 -0
  145. package/types/src/lib/session-answer-store.d.ts.map +1 -0
  146. package/types/src/lib/session-answer-store.test.d.ts +2 -0
  147. package/types/src/lib/session-answer-store.test.d.ts.map +1 -0
  148. package/types/src/lib/utils.d.ts +19 -0
  149. package/types/src/lib/utils.d.ts.map +1 -0
  150. package/types/src/lib/utils.test.d.ts +2 -0
  151. package/types/src/lib/utils.test.d.ts.map +1 -0
  152. package/types/src/lib/uuid.d.ts +7 -0
  153. package/types/src/lib/uuid.d.ts.map +1 -0
  154. package/types/src/lib/uuid.test.d.ts +2 -0
  155. package/types/src/lib/uuid.test.d.ts.map +1 -0
  156. package/types/src/middleware/build-get-journey.d.ts +6 -0
  157. package/types/src/middleware/build-get-journey.d.ts.map +1 -0
  158. package/types/src/middleware/redirect-to-unanswered-question.d.ts +12 -0
  159. package/types/src/middleware/redirect-to-unanswered-question.d.ts.map +1 -0
  160. package/types/src/middleware/redirect-to-unanswered-question.test.d.ts +2 -0
  161. package/types/src/middleware/redirect-to-unanswered-question.test.d.ts.map +1 -0
  162. package/types/src/questions/create-questions.d.ts +21 -0
  163. package/types/src/questions/create-questions.d.ts.map +1 -0
  164. package/types/src/questions/options-question.d.ts +74 -0
  165. package/types/src/questions/options-question.d.ts.map +1 -0
  166. package/types/src/questions/options-question.test.d.ts +2 -0
  167. package/types/src/questions/options-question.test.d.ts.map +1 -0
  168. package/types/src/questions/question.d.ts +274 -0
  169. package/types/src/questions/question.d.ts.map +1 -0
  170. package/types/src/questions/question.test.d.ts +2 -0
  171. package/types/src/questions/question.test.d.ts.map +1 -0
  172. package/types/src/questions/questions.d.ts +3 -0
  173. package/types/src/questions/questions.d.ts.map +1 -0
  174. package/types/src/section.d.ts +107 -0
  175. package/types/src/section.d.ts.map +1 -0
  176. package/types/src/section.test.d.ts +2 -0
  177. package/types/src/section.test.d.ts.map +1 -0
  178. package/types/src/validator/address-validator.d.ts +41 -0
  179. package/types/src/validator/address-validator.d.ts.map +1 -0
  180. package/types/src/validator/address-validator.test.d.ts +2 -0
  181. package/types/src/validator/address-validator.test.d.ts.map +1 -0
  182. package/types/src/validator/base-validator.d.ts +11 -0
  183. package/types/src/validator/base-validator.d.ts.map +1 -0
  184. package/types/src/validator/base-validator.test.d.ts +2 -0
  185. package/types/src/validator/base-validator.test.d.ts.map +1 -0
  186. package/types/src/validator/conditional-required-validator.d.ts +24 -0
  187. package/types/src/validator/conditional-required-validator.d.ts.map +1 -0
  188. package/types/src/validator/conditional-required-validator.test.d.ts +2 -0
  189. package/types/src/validator/conditional-required-validator.test.d.ts.map +1 -0
  190. package/types/src/validator/confirmation-checkbox-validator.d.ts +27 -0
  191. package/types/src/validator/confirmation-checkbox-validator.d.ts.map +1 -0
  192. package/types/src/validator/confirmation-checkbox-validator.test.d.ts +2 -0
  193. package/types/src/validator/confirmation-checkbox-validator.test.d.ts.map +1 -0
  194. package/types/src/validator/coordinates-validator.d.ts +22 -0
  195. package/types/src/validator/coordinates-validator.d.ts.map +1 -0
  196. package/types/src/validator/coordinates-validator.test.d.ts +2 -0
  197. package/types/src/validator/coordinates-validator.test.d.ts.map +1 -0
  198. package/types/src/validator/date-period-validator.d.ts +63 -0
  199. package/types/src/validator/date-period-validator.d.ts.map +1 -0
  200. package/types/src/validator/date-period-validator.test.d.ts +2 -0
  201. package/types/src/validator/date-period-validator.test.d.ts.map +1 -0
  202. package/types/src/validator/date-time-validator.d.ts +26 -0
  203. package/types/src/validator/date-time-validator.d.ts.map +1 -0
  204. package/types/src/validator/date-time-validator.test.d.ts +2 -0
  205. package/types/src/validator/date-time-validator.test.d.ts.map +1 -0
  206. package/types/src/validator/date-validator.d.ts +48 -0
  207. package/types/src/validator/date-validator.d.ts.map +1 -0
  208. package/types/src/validator/date-validator.test.d.ts +2 -0
  209. package/types/src/validator/date-validator.test.d.ts.map +1 -0
  210. package/types/src/validator/document-upload-validator.d.ts +10 -0
  211. package/types/src/validator/document-upload-validator.d.ts.map +1 -0
  212. package/types/src/validator/document-upload-validator.test.d.ts +2 -0
  213. package/types/src/validator/document-upload-validator.test.d.ts.map +1 -0
  214. package/types/src/validator/email-validator.d.ts +73 -0
  215. package/types/src/validator/email-validator.d.ts.map +1 -0
  216. package/types/src/validator/email-validator.test.d.ts +2 -0
  217. package/types/src/validator/email-validator.test.d.ts.map +1 -0
  218. package/types/src/validator/multi-field-input-validator.d.ts +70 -0
  219. package/types/src/validator/multi-field-input-validator.d.ts.map +1 -0
  220. package/types/src/validator/multi-field-input-validator.test.d.ts +2 -0
  221. package/types/src/validator/multi-field-input-validator.test.d.ts.map +1 -0
  222. package/types/src/validator/numeric-validator.d.ts +49 -0
  223. package/types/src/validator/numeric-validator.d.ts.map +1 -0
  224. package/types/src/validator/numeric-validator.test.d.ts +2 -0
  225. package/types/src/validator/numeric-validator.test.d.ts.map +1 -0
  226. package/types/src/validator/required-validator.d.ts +22 -0
  227. package/types/src/validator/required-validator.d.ts.map +1 -0
  228. package/types/src/validator/required-validator.test.d.ts +2 -0
  229. package/types/src/validator/required-validator.test.d.ts.map +1 -0
  230. package/types/src/validator/same-answer-validator.d.ts +18 -0
  231. package/types/src/validator/same-answer-validator.d.ts.map +1 -0
  232. package/types/src/validator/same-answer-validator.test.d.ts +2 -0
  233. package/types/src/validator/same-answer-validator.test.d.ts.map +1 -0
  234. package/types/src/validator/string-validator.d.ts +58 -0
  235. package/types/src/validator/string-validator.d.ts.map +1 -0
  236. package/types/src/validator/string-validator.test.d.ts +2 -0
  237. package/types/src/validator/string-validator.test.d.ts.map +1 -0
  238. package/types/src/validator/unit-option-entry-validator.d.ts +40 -0
  239. package/types/src/validator/unit-option-entry-validator.d.ts.map +1 -0
  240. package/types/src/validator/unit-option-entry-validator.test.d.ts +2 -0
  241. package/types/src/validator/unit-option-entry-validator.test.d.ts.map +1 -0
  242. package/types/src/validator/valid-option-validator.d.ts +22 -0
  243. package/types/src/validator/valid-option-validator.d.ts.map +1 -0
  244. package/types/src/validator/valid-option-validator.test.d.ts +2 -0
  245. package/types/src/validator/valid-option-validator.test.d.ts.map +1 -0
  246. package/types/src/validator/validation-error-handler.d.ts +20 -0
  247. package/types/src/validator/validation-error-handler.d.ts.map +1 -0
  248. package/types/src/validator/validation-error-handler.test.d.ts +2 -0
  249. package/types/src/validator/validation-error-handler.test.d.ts.map +1 -0
  250. package/types/src/validator/validator.d.ts +5 -0
  251. package/types/src/validator/validator.d.ts.map +1 -0
  252. package/types/src/validator/validator.test.d.ts +2 -0
  253. package/types/src/validator/validator.test.d.ts.map +1 -0
  254. package/types/test/mock/journey.d.ts +3 -0
  255. package/types/test/mock/journey.d.ts.map +1 -0
  256. package/types/test/mock/uuid.d.ts +7 -0
  257. package/types/test/mock/uuid.d.ts.map +1 -0
  258. package/types/test/utils/nunjucks.d.ts +2 -0
  259. package/types/test/utils/nunjucks.d.ts.map +1 -0
  260. package/types/test/utils/utils.d.ts +32 -0
  261. package/types/test/utils/utils.d.ts.map +1 -0
  262. package/src/lib/address.d.ts +0 -7
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @typedef {import('../questions/question.js')} Question
3
+ */
4
+ /**
5
+ * enforces a field is not empty when condition is satisfied
6
+ * @class
7
+ */
8
+ export default class ConditionalRequiredValidator extends BaseValidator {
9
+ /**
10
+ * creates an instance of a ConditionalRequiredValidator
11
+ * @param {string} [errorMessage] - custom error message to show on validation failure
12
+ */
13
+ constructor(errorMessage?: string);
14
+ /**
15
+ * validates the response body, checking the questionObj's fieldname
16
+ * @param {Question} questionObj
17
+ */
18
+ validate(questionObj: Question): any;
19
+ getConditionalFieldName(questionObj: any, option: any): string;
20
+ isValueIncluded(questionObj: any, value: any): import("express-validator").ValidationChain;
21
+ }
22
+ export type Question = typeof import("../questions/question.js");
23
+ import BaseValidator from './base-validator.js';
24
+ //# sourceMappingURL=conditional-required-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-required-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/conditional-required-validator.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH;IAMC;;;OAGG;IACH,2BAFW,MAAM,EAQhB;IAED;;;OAGG;IACH,sBAFW,QAAQ,OAclB;IAED,+DAEC;IAED,2FAKC;CACD;;0BAxDyB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=conditional-required-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-required-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/conditional-required-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @typedef {import('../questions/question.js')} Question
3
+ */
4
+ /**
5
+ * enforces a confirmation checkbox is checked before proceeding
6
+ * @class
7
+ */
8
+ export default class ConfirmationCheckboxValidator extends BaseValidator {
9
+ /**
10
+ * creates an instance of a ConditionalRequiredValidator
11
+ * @param {Object} params
12
+ * @param {string} params.checkboxName
13
+ * @param {string} params.errorMessage - custom error message to show on validation failure
14
+ */
15
+ constructor({ checkboxName, errorMessage }: {
16
+ checkboxName: string;
17
+ errorMessage: string;
18
+ });
19
+ checkboxName: string;
20
+ /**
21
+ * validates the response body, checking the checkbox name
22
+ */
23
+ validate(): import("express-validator").ValidationChain;
24
+ }
25
+ export type Question = typeof import("../questions/question.js");
26
+ import BaseValidator from './base-validator.js';
27
+ //# sourceMappingURL=confirmation-checkbox-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-checkbox-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/confirmation-checkbox-validator.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH;IAMC;;;;;OAKG;IACH,4CAHG;QAAuB,YAAY,EAA3B,MAAM;QACS,YAAY,EAA3B,MAAM;KAChB,EAMA;IAFA,qBAAgC;IAIjC;;OAEG;IACH,wDAEC;CACD;;0BAnCyB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=confirmation-checkbox-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-checkbox-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/confirmation-checkbox-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ export const requiredCoordinateLength: 6;
2
+ /**
3
+ * @typedef {Object} CoordinateField
4
+ * @property {string} title
5
+ * @property {string} fieldName
6
+ */
7
+ export default class CoordinatesValidator extends BaseValidator {
8
+ /**
9
+ * @param {CoordinateField} northing
10
+ * @param {CoordinateField} easting
11
+ */
12
+ constructor(northing: CoordinateField, easting: CoordinateField);
13
+ northing: CoordinateField;
14
+ easting: CoordinateField;
15
+ validate(): import("express-validator").ValidationChain[];
16
+ }
17
+ export type CoordinateField = {
18
+ title: string;
19
+ fieldName: string;
20
+ };
21
+ import BaseValidator from './base-validator.js';
22
+ //# sourceMappingURL=coordinates-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinates-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/coordinates-validator.js"],"names":[],"mappings":"AAGA,uCAAwC,CAAC,CAAC;AAE1C;;;;GAIG;AACH;IACC;;;OAGG;IACH,sBAHW,eAAe,WACf,eAAe,EAMzB;IAFA,0BAAwB;IACxB,yBAAsB;IAGvB,0DAkCC;CACD;;WAjDa,MAAM;eACN,MAAM;;0BARM,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=coordinates-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinates-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/coordinates-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @typedef {import('../components/date/question.js')} DateQuestion
3
+ */
4
+ /**
5
+ * @typedef {Object} DateValidationSettings
6
+ * @property {Boolean} ensureFuture
7
+ * @property {Boolean} ensurePast
8
+ */
9
+ /**
10
+ * enforces a user has entered a valid date period
11
+ * @class
12
+ */
13
+ export default class DatePeriodValidator extends BaseValidator {
14
+ /**
15
+ * creates an instance of a DateValidator
16
+ * @param {string} inputLabel - string representing the field as displayed on the UI as part of an error message
17
+ * @param {DateValidationSettings} [dateValidationSettings] - object containing rules to apply
18
+ * @param {Object} [errorMessages] - object containing custom error messages to show on validation failure
19
+ */
20
+ constructor(inputLabel: string, dateValidationSettings?: DateValidationSettings, errorMessages?: Object);
21
+ /** @type {DateValidationSettings} */
22
+ dateValidationSettings: DateValidationSettings;
23
+ emptyErrorMessage: any;
24
+ noDayErrorMessage: any;
25
+ noMonthErrorMessage: any;
26
+ noYearErrorMessage: any;
27
+ noDayMonthErrorMessage: any;
28
+ noDayYearErrorMessage: any;
29
+ noMonthYearErrorMessage: any;
30
+ invalidDateErrorMessage: any;
31
+ invalidMonthErrorMessage: any;
32
+ invalidYearErrorMessage: any;
33
+ futureDateErrorMessage: any;
34
+ pastDateErrorMessage: any;
35
+ /**
36
+ * validates the response body, checking the values sent for the date are valid
37
+ * @param {DateQuestion} questionObj
38
+ */
39
+ validate(questionObj: DateQuestion): import("express-validator").ValidationChain[];
40
+ rulesForNotEmptyInput({ dayInput, monthInput, yearInput }: {
41
+ dayInput: any;
42
+ monthInput: any;
43
+ yearInput: any;
44
+ }): import("express-validator").ValidationChain[];
45
+ rulesForValidInput({ dayInput, monthInput, yearInput }: {
46
+ dayInput: any;
47
+ monthInput: any;
48
+ yearInput: any;
49
+ }): import("express-validator").ValidationChain[];
50
+ rulesForDateIsInFuture({ dayInput, monthInput, yearInput }: {
51
+ dayInput: any;
52
+ monthInput: any;
53
+ yearInput: any;
54
+ }): import("express-validator").ValidationChain[];
55
+ #private;
56
+ }
57
+ export type DateQuestion = typeof import("../components/date/question.js");
58
+ export type DateValidationSettings = {
59
+ ensureFuture: boolean;
60
+ ensurePast: boolean;
61
+ };
62
+ import BaseValidator from './base-validator.js';
63
+ //# sourceMappingURL=date-period-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-period-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-period-validator.js"],"names":[],"mappings":"AAQA;;GAEG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH;IAIC;;;;;OAKG;IACH,wBAJW,MAAM,2BACN,sBAAsB,kBACtB,MAAM,EAgChB;IAvCD,qCAAqC;IACrC,wBADW,sBAAsB,CACV;IAoBtB,uBAAmG;IACnG,uBAAmG;IACnG,yBAAyG;IACzG,wBAAsG;IACtG,4BAAkH;IAClH,2BAA+G;IAC/G,6BACuF;IACvF,6BACuF;IACvF,8BACyF;IACzF,6BACuF;IACvF,4BAAkH;IAClH,0BAA4G;IAK7G;;;OAGG;IACH,sBAFW,YAAY,iDAsBtB;IAED;;;;sDAuCC;IAED;;;;sDAwBC;IAED;;;;sDAuBC;;CA6BD;;;;;;0BA5MyB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=date-period-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-period-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/date-period-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @typedef {import('./question.js')} DateTimeQuestion
3
+ */
4
+ /**
5
+ * enforces a user has entered a valid date
6
+ * @class
7
+ */
8
+ export default class DateTimeValidator extends DateValidator {
9
+ /**
10
+ * creates an instance of a DateTimeValidator
11
+ * @param {string} timeInputLabel - string representing the time fields as displayed on the UI as part of an error message
12
+ * @param {string} [dateInputLabel] - string representing the date fields as displayed on the UI as part of an error message
13
+ * @param {DateValidationSettings} [dateValidationSettings] - object containing rules to apply
14
+ * @param {Object} [dateErrorMessages] - object containing custom date error messages to show on validation failure
15
+ */
16
+ constructor(timeInputLabel: string, dateInputLabel?: string, dateValidationSettings?: DateValidationSettings, dateErrorMessages?: Object);
17
+ timeInputLabel: string;
18
+ /**
19
+ * validates the response body, checking the values sent for the date are valid
20
+ * @param {DateTimeQuestion} questionObj
21
+ */
22
+ validate(questionObj: DateTimeQuestion): import("express-validator").ValidationChain[];
23
+ }
24
+ export type DateTimeQuestion = any;
25
+ import DateValidator from './date-validator.js';
26
+ //# sourceMappingURL=date-time-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-time-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-time-validator.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;;GAGG;AACH;IACC;;;;;;OAMG;IACH,4BALW,MAAM,mBACN,MAAM,2BACN,sBAAsB,sBACtB,MAAM,EAahB;IADA,uBAAoC;IAGrC;;;OAGG;IACH,sBAFW,gBAAgB,iDAsC1B;CACD;;0BAxEyB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=date-time-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-time-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/date-time-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @typedef {import('../components/date/question.js')} DateQuestion
3
+ */
4
+ /**
5
+ * @typedef {Object} DateValidationSettings
6
+ * @property {Boolean} ensureFuture
7
+ * @property {Boolean} ensurePast
8
+ */
9
+ /**
10
+ * enforces a user has entered a valid date
11
+ * @class
12
+ */
13
+ export default class DateValidator extends BaseValidator {
14
+ /**
15
+ * creates an instance of a DateValidator
16
+ * @param {string} inputLabel - string representing the field as displayed on the UI as part of an error message
17
+ * @param {DateValidationSettings} [dateValidationSettings] - object containing rules to apply
18
+ * @param {Object} [errorMessages] - object containing custom error messages to show on validation failure
19
+ */
20
+ constructor(inputLabel: string, dateValidationSettings?: DateValidationSettings, errorMessages?: Object);
21
+ /** @type {DateValidationSettings} */
22
+ dateValidationSettings: DateValidationSettings;
23
+ emptyErrorMessage: any;
24
+ noDayErrorMessage: any;
25
+ noMonthErrorMessage: any;
26
+ noYearErrorMessage: any;
27
+ noDayMonthErrorMessage: any;
28
+ noDayYearErrorMessage: any;
29
+ noMonthYearErrorMessage: any;
30
+ invalidDateErrorMessage: any;
31
+ invalidMonthErrorMessage: any;
32
+ invalidYearErrorMessage: any;
33
+ futureDateErrorMessage: any;
34
+ pastDateErrorMessage: any;
35
+ /**
36
+ * validates the response body, checking the values sent for the date are valid
37
+ * @param {DateQuestion} questionObj
38
+ */
39
+ validate(questionObj: DateQuestion): import("express-validator").ValidationChain[];
40
+ #private;
41
+ }
42
+ export type DateQuestion = typeof import("../components/date/question.js");
43
+ export type DateValidationSettings = {
44
+ ensureFuture: boolean;
45
+ ensurePast: boolean;
46
+ };
47
+ import BaseValidator from './base-validator.js';
48
+ //# sourceMappingURL=date-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-validator.js"],"names":[],"mappings":"AAQA;;GAEG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH;IAIC;;;;;OAKG;IACH,wBAJW,MAAM,2BACN,sBAAsB,kBACtB,MAAM,EAgChB;IAvCD,qCAAqC;IACrC,wBADW,sBAAsB,CACV;IAoBtB,uBAAmG;IACnG,uBAAmG;IACnG,yBAAyG;IACzG,wBAAsG;IACtG,4BAAkH;IAClH,2BAA+G;IAC/G,6BACuF;IACvF,6BACuF;IACvF,8BACyF;IACzF,6BACuF;IACvF,4BAAkH;IAClH,0BAA4G;IAK7G;;;OAGG;IACH,sBAFW,YAAY,iDAuGtB;;CA6BD;;;;;;0BAjMyB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=date-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/date-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export default class DocumentUploadValidator extends BaseValidator {
2
+ /**
3
+ * @param {string} fieldName
4
+ */
5
+ constructor(fieldName: string);
6
+ fieldName: string;
7
+ validate(): import("express-validator").ValidationChain[];
8
+ }
9
+ import BaseValidator from './base-validator.js';
10
+ //# sourceMappingURL=document-upload-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-upload-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/document-upload-validator.js"],"names":[],"mappings":"AAGA;IACC;;OAEG;IACH,uBAFW,MAAM,EAKhB;IADA,kBAA0B;IAG3B,0DAYC;CACD;0BAzByB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=document-upload-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-upload-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/document-upload-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @typedef {Object} EmailValidationOptions
3
+ * @property {boolean} [allowDisplayName] - Allow display names (e.g., "John Doe <john@example.com>")
4
+ * @property {boolean} [requireTld] - Require top-level domain
5
+ * @property {boolean} [allowUtf8LocalPart] - Allow UTF8 characters in local part
6
+ * @property {boolean} [allowIpDomain] - Allow IP addresses as domain
7
+ * @property {string} [errorMessage] - Custom error message
8
+ */
9
+ export default class EmailValidator extends BaseValidator {
10
+ /**
11
+ * @param {Object} params
12
+ * @param {EmailValidationOptions} [params.options] - Email validation options
13
+ * @param {string} [params.errorMessage] - Custom error message
14
+ * @param {string} [params.fieldName] - Field name to validate
15
+ */
16
+ constructor({ options, errorMessage, fieldName }?: {
17
+ options?: EmailValidationOptions | undefined;
18
+ errorMessage?: string | undefined;
19
+ fieldName?: string | undefined;
20
+ });
21
+ options: {
22
+ /**
23
+ * - Allow display names (e.g., "John Doe <john@example.com>")
24
+ */
25
+ allowDisplayName?: boolean | undefined;
26
+ /**
27
+ * - Require top-level domain
28
+ */
29
+ requireTld?: boolean | undefined;
30
+ /**
31
+ * - Allow UTF8 characters in local part
32
+ */
33
+ allowUtf8LocalPart?: boolean | undefined;
34
+ /**
35
+ * - Allow IP addresses as domain
36
+ */
37
+ allowIpDomain?: boolean | undefined;
38
+ /**
39
+ * - Custom error message
40
+ */
41
+ errorMessage?: string | undefined;
42
+ allow_display_name: boolean;
43
+ require_tld: boolean;
44
+ allow_utf8_local_part: boolean;
45
+ allow_ip_domain: boolean;
46
+ };
47
+ fieldName: string | undefined;
48
+ validate(questionObj: any): import("express-validator").ValidationChain;
49
+ }
50
+ export type EmailValidationOptions = {
51
+ /**
52
+ * - Allow display names (e.g., "John Doe <john@example.com>")
53
+ */
54
+ allowDisplayName?: boolean | undefined;
55
+ /**
56
+ * - Require top-level domain
57
+ */
58
+ requireTld?: boolean | undefined;
59
+ /**
60
+ * - Allow UTF8 characters in local part
61
+ */
62
+ allowUtf8LocalPart?: boolean | undefined;
63
+ /**
64
+ * - Allow IP addresses as domain
65
+ */
66
+ allowIpDomain?: boolean | undefined;
67
+ /**
68
+ * - Custom error message
69
+ */
70
+ errorMessage?: string | undefined;
71
+ };
72
+ import BaseValidator from './base-validator.js';
73
+ //# sourceMappingURL=email-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/email-validator.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH;IACC;;;;;OAKG;IACH,mDAJG;QAAwC,OAAO;QACvB,YAAY;QACZ,SAAS;KACnC,EAcA;IAVA;;;;;;;;;;;;;;;;;;;;;;;;;MAMC;IAGD,8BAA0B;IAG3B,wEAIC;CACD;;;;;;;;;;;;;;;;;;;;;;;0BAtCyB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=email-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/email-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @typedef {Object} Regex
3
+ * @property {String | RegExp} regex
4
+ * @property {String} regexMessage
5
+ */
6
+ /**
7
+ * @typedef {Object} MinLength
8
+ * @property {Number} minLength
9
+ * @property {String} minLengthMessage
10
+ */
11
+ /**
12
+ * @typedef {Object} MaxLength
13
+ * @property {Number} maxLength
14
+ * @property {String} maxLengthMessage
15
+ */
16
+ /**
17
+ * @typedef {Object} Field
18
+ * @property {string} fieldName
19
+ * @property {boolean} required
20
+ * @property {string} errorMessage
21
+ * @property {MinLength} [minLength]
22
+ * @property {MaxLength} [maxLength]
23
+ * @property {Regex} [regex]
24
+ */
25
+ export default class MultiFieldInputValidator extends BaseValidator {
26
+ /**
27
+ * @param {Object} params
28
+ * @param {Field[]} [params.fields]
29
+ * @param {string} [params.noInputsMessage]
30
+ */
31
+ constructor({ fields, noInputsMessage }?: {
32
+ fields?: Field[] | undefined;
33
+ noInputsMessage?: string | undefined;
34
+ });
35
+ fields: Field[];
36
+ noInputsMessage: string;
37
+ /**
38
+ * validates response body against question's required fields
39
+ */
40
+ validate(): import("express-validator").ValidationChain[];
41
+ isRequired(): boolean;
42
+ /**
43
+ * checks if a field is required
44
+ * @param {string} fieldName
45
+ * @returns {boolean}
46
+ */
47
+ inputFieldIsRequired(fieldName: string): boolean;
48
+ }
49
+ export type Regex = {
50
+ regex: string | RegExp;
51
+ regexMessage: string;
52
+ };
53
+ export type MinLength = {
54
+ minLength: number;
55
+ minLengthMessage: string;
56
+ };
57
+ export type MaxLength = {
58
+ maxLength: number;
59
+ maxLengthMessage: string;
60
+ };
61
+ export type Field = {
62
+ fieldName: string;
63
+ required: boolean;
64
+ errorMessage: string;
65
+ minLength?: MinLength | undefined;
66
+ maxLength?: MaxLength | undefined;
67
+ regex?: Regex | undefined;
68
+ };
69
+ import BaseValidator from './base-validator.js';
70
+ //# sourceMappingURL=multi-field-input-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-field-input-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/multi-field-input-validator.js"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH;IACC;;;;OAIG;IACH,0CAHG;QAAyB,MAAM;QACP,eAAe;KAAC,EAQ1C;IAFA,gBAAoB;IACpB,wBAAwE;IAGzE;;OAEG;IAEH,0DA8BC;IAED,sBAEC;IACD;;;;OAIG;IACH,gCAHW,MAAM,GACJ,OAAO,CAQnB;CACD;;WA3Fa,SAAS,MAAM;;;;;;;;;;;;eAkBf,MAAM;cACN,OAAO;kBACP,MAAM;;;;;0BAvBM,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=multi-field-input-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-field-input-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/multi-field-input-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @typedef {Object} MinValue
3
+ * @property {Number} min
4
+ * @property {String} minMessage
5
+ */
6
+ /**
7
+ * @typedef {Object} MaxValue
8
+ * @property {Number} max
9
+ * @property {String} maxMessage
10
+ */
11
+ export default class NumericValidator extends BaseValidator {
12
+ /**
13
+ * @param {Object} params
14
+ * @param {number} [params.min]
15
+ * @param {string} [params.minMessage]
16
+ * @param {number} [params.max]
17
+ * @param {string} [params.maxMessage]
18
+ * @param {RegExp} [params.regex]
19
+ * @param {string} [params.regexMessage]
20
+ * @param {string} [params.fieldName]
21
+ */
22
+ constructor({ min, minMessage, max, maxMessage, regex, regexMessage, fieldName }?: {
23
+ min?: number | undefined;
24
+ minMessage?: string | undefined;
25
+ max?: number | undefined;
26
+ maxMessage?: string | undefined;
27
+ regex?: RegExp | undefined;
28
+ regexMessage?: string | undefined;
29
+ fieldName?: string | undefined;
30
+ });
31
+ min: number | undefined;
32
+ minMessage: string;
33
+ max: number | undefined;
34
+ maxMessage: string;
35
+ regex: RegExp | undefined;
36
+ regexMessage: string;
37
+ fieldName: string | undefined;
38
+ validate(questionObj: any): import("express-validator").ValidationChain;
39
+ }
40
+ export type MinValue = {
41
+ min: number;
42
+ minMessage: string;
43
+ };
44
+ export type MaxValue = {
45
+ max: number;
46
+ maxMessage: string;
47
+ };
48
+ import BaseValidator from './base-validator.js';
49
+ //# sourceMappingURL=numeric-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/numeric-validator.js"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH;;;;GAIG;AAEH;IACC;;;;;;;;;OASG;IACH,mFARG;QAAwB,GAAG;QACH,UAAU;QACV,GAAG;QACH,UAAU;QACV,KAAK;QACL,YAAY;QACZ,SAAS;KAAC,EAWpC;IAPA,wBAAc;IACd,mBAAmE;IACnE,wBAAc;IACd,mBAAkE;IAClE,0BAAkB;IAClB,qBAA0D;IAC1D,8BAA0B;IAG3B,wEAgBC;CACD;;;;;;;;;0BArDyB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=numeric-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/numeric-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @typedef {import('../questions/question.js')} Question
3
+ */
4
+ /**
5
+ * enforces a field is not empty
6
+ * @class
7
+ */
8
+ export default class RequiredValidator extends BaseValidator {
9
+ /**
10
+ * creates an instance of a RequiredValidator
11
+ * @param {string} [errorMessage] - custom error message to show on validation failure
12
+ */
13
+ constructor(errorMessage?: string);
14
+ /**
15
+ * validates the response body, checking the questionObj's fieldname
16
+ * @param {Question} questionObj
17
+ */
18
+ validate(questionObj: Question): import("express-validator").ValidationChain;
19
+ }
20
+ export type Question = typeof import("../questions/question.js");
21
+ import BaseValidator from './base-validator.js';
22
+ //# sourceMappingURL=required-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/required-validator.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH;IAMC;;;OAGG;IACH,2BAFW,MAAM,EAQhB;IAED;;;OAGG;IACH,sBAFW,QAAQ,+CAIlB;CACD;;0BAnCyB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=required-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/required-validator.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Universal validator to ensure the answer to the current question is not the same as another question's answer
3
+ */
4
+ export default class SameAnswerValidator extends BaseValidator {
5
+ /**
6
+ * @param {string[]} fieldNamesToCompare - field name to compare against
7
+ * @param {string} [errorMessage]
8
+ */
9
+ constructor(fieldNamesToCompare: string[], errorMessage?: string);
10
+ fieldNamesToCompare: string[];
11
+ /**
12
+ * validates the questionToCompare and compares it to the answer in the journeyResponse
13
+ * @param questionObj
14
+ */
15
+ validate(questionObj: any): import("express-validator").ValidationChain;
16
+ }
17
+ import BaseValidator from './base-validator.js';
18
+ //# sourceMappingURL=same-answer-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"same-answer-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/same-answer-validator.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IACC;;;OAGG;IAEH,iCAJW,MAAM,EAAE,iBACR,MAAM,EAOhB;IAFA,8BAAoD;IAIrD;;;OAGG;IACH,wEAQC;CACD;0BA9ByB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=same-answer-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"same-answer-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/same-answer-validator.test.js"],"names":[],"mappings":""}