@planning-inspectorate/dynamic-forms 3.3.3 → 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.
- package/.azure/pipelines/azure-pipelines-pr.yml +4 -0
- package/.azure/pipelines/release.yml +4 -0
- package/.gitattributes +2 -0
- package/README.md +20 -9
- package/package.json +13 -5
- package/src/components/address/question.js +1 -10
- package/src/components/boolean/question.js +1 -1
- package/src/components/checkbox/question.js +2 -6
- package/src/components/date/question.js +1 -8
- package/src/components/date-period/question.js +1 -8
- package/src/components/email/question.js +4 -4
- package/src/components/manage-list/question.test.js +4 -19
- package/src/components/multi-field-input/question.js +3 -3
- package/src/components/multi-field-input/question.test.js +1 -1
- package/src/components/number-entry/question.js +1 -5
- package/src/components/radio/question.js +1 -1
- package/src/components/select/question.js +1 -1
- package/src/components/single-line-input/question.js +0 -8
- package/src/components/text-entry/question.js +4 -4
- package/src/components/text-entry-redact/index.njk +15 -11
- package/src/components/text-entry-redact/question.js +6 -16
- package/src/components/unit-option-entry/question.js +4 -11
- package/src/components/utils/component-types.js +18 -0
- package/src/index.js +72 -25
- package/src/middleware/redirect-to-unanswered-question.test.js +1 -1
- package/src/questions/options-question.js +5 -12
- package/src/questions/question-types.d.ts +3 -3
- package/src/questions/question.js +6 -6
- package/src/questions/questions.js +1 -1
- package/test/check-your-answers.test.js +3 -8
- package/test/conditional-journey.test.js +431 -0
- package/test/questions.test.js +15 -28
- package/test/snapshots/secret-wish.html +15 -11
- package/test/utils/question-test-utils.js +52 -4
- package/test/utils/test-server.js +1 -0
- package/test/utils/utils.js +16 -1
- package/tsconfig.json +9 -1
- package/types/commitlint.config.d.ts +7 -0
- package/types/commitlint.config.d.ts.map +1 -0
- package/types/eslint.config.d.ts +95 -0
- package/types/eslint.config.d.ts.map +1 -0
- package/types/src/components/address/question.d.ts +31 -0
- package/types/src/components/address/question.d.ts.map +1 -0
- package/types/src/components/address/question.test.d.ts +2 -0
- package/types/src/components/address/question.test.d.ts.map +1 -0
- package/types/src/components/boolean/question.d.ts +47 -0
- package/types/src/components/boolean/question.d.ts.map +1 -0
- package/types/src/components/boolean/question.test.d.ts +2 -0
- package/types/src/components/boolean/question.test.d.ts.map +1 -0
- package/types/src/components/checkbox/question.d.ts +49 -0
- package/types/src/components/checkbox/question.d.ts.map +1 -0
- package/types/src/components/checkbox/question.test.d.ts +2 -0
- package/types/src/components/checkbox/question.test.d.ts.map +1 -0
- package/types/src/components/date/question.d.ts +22 -0
- package/types/src/components/date/question.d.ts.map +1 -0
- package/types/src/components/date/question.test.d.ts +2 -0
- package/types/src/components/date/question.test.d.ts.map +1 -0
- package/types/src/components/date-period/question.d.ts +29 -0
- package/types/src/components/date-period/question.d.ts.map +1 -0
- package/types/src/components/date-period/question.test.d.ts +2 -0
- package/types/src/components/date-period/question.test.d.ts.map +1 -0
- package/types/src/components/date-time/question.d.ts +24 -0
- package/types/src/components/date-time/question.d.ts.map +1 -0
- package/types/src/components/date-time/question.test.d.ts +2 -0
- package/types/src/components/date-time/question.test.d.ts.map +1 -0
- package/types/src/components/email/question.d.ts +30 -0
- package/types/src/components/email/question.d.ts.map +1 -0
- package/types/src/components/email/question.test.d.ts +2 -0
- package/types/src/components/email/question.test.d.ts.map +1 -0
- package/types/src/components/identifier/question.d.ts +15 -0
- package/types/src/components/identifier/question.d.ts.map +1 -0
- package/types/src/components/identifier/question.test.d.ts +2 -0
- package/types/src/components/identifier/question.test.d.ts.map +1 -0
- package/types/src/components/manage-list/manage-list-section.d.ts +16 -0
- package/types/src/components/manage-list/manage-list-section.d.ts.map +1 -0
- package/types/src/components/manage-list/manage-list-section.test.d.ts +2 -0
- package/types/src/components/manage-list/manage-list-section.test.d.ts.map +1 -0
- package/types/src/components/manage-list/question.d.ts +41 -0
- package/types/src/components/manage-list/question.d.ts.map +1 -0
- package/types/src/components/manage-list/question.test.d.ts +2 -0
- package/types/src/components/manage-list/question.test.d.ts.map +1 -0
- package/types/src/components/manage-list/utils.d.ts +18 -0
- package/types/src/components/manage-list/utils.d.ts.map +1 -0
- package/types/src/components/manage-list/utils.test.d.ts +2 -0
- package/types/src/components/manage-list/utils.test.d.ts.map +1 -0
- package/types/src/components/multi-field-input/question.d.ts +106 -0
- package/types/src/components/multi-field-input/question.d.ts.map +1 -0
- package/types/src/components/multi-field-input/question.test.d.ts +2 -0
- package/types/src/components/multi-field-input/question.test.d.ts.map +1 -0
- package/types/src/components/number-entry/question.d.ts +37 -0
- package/types/src/components/number-entry/question.d.ts.map +1 -0
- package/types/src/components/radio/question.d.ts +53 -0
- package/types/src/components/radio/question.d.ts.map +1 -0
- package/types/src/components/radio/question.test.d.ts +2 -0
- package/types/src/components/radio/question.test.d.ts.map +1 -0
- package/types/src/components/select/question.d.ts +51 -0
- package/types/src/components/select/question.d.ts.map +1 -0
- package/types/src/components/select/question.test.d.ts +2 -0
- package/types/src/components/select/question.test.d.ts.map +1 -0
- package/types/src/components/single-line-input/question.d.ts +18 -0
- package/types/src/components/single-line-input/question.d.ts.map +1 -0
- package/types/src/components/single-line-input/question.test.d.ts +2 -0
- package/types/src/components/single-line-input/question.test.d.ts.map +1 -0
- package/types/src/components/text-entry/question.d.ts +34 -0
- package/types/src/components/text-entry/question.d.ts.map +1 -0
- package/types/src/components/text-entry/question.test.d.ts +2 -0
- package/types/src/components/text-entry/question.test.d.ts.map +1 -0
- package/types/src/components/text-entry-redact/question.d.ts +42 -0
- package/types/src/components/text-entry-redact/question.d.ts.map +1 -0
- package/types/src/components/text-entry-redact/question.test.d.ts +2 -0
- package/types/src/components/text-entry-redact/question.test.d.ts.map +1 -0
- package/types/src/components/unit-option-entry/question.d.ts +83 -0
- package/types/src/components/unit-option-entry/question.d.ts.map +1 -0
- package/types/src/components/unit-option-entry/question.test.d.ts +2 -0
- package/types/src/components/unit-option-entry/question.test.d.ts.map +1 -0
- package/types/src/components/utils/component-types.d.ts +19 -0
- package/types/src/components/utils/component-types.d.ts.map +1 -0
- package/types/src/components/utils/persisted-number-answer.d.ts +2 -0
- package/types/src/components/utils/persisted-number-answer.d.ts.map +1 -0
- package/types/src/components/utils/question-has-answer.d.ts +17 -0
- package/types/src/components/utils/question-has-answer.d.ts.map +1 -0
- package/types/src/components/utils/question-has-answer.test.d.ts +2 -0
- package/types/src/components/utils/question-has-answer.test.d.ts.map +1 -0
- package/types/src/components/utils/question-utils.d.ts +15 -0
- package/types/src/components/utils/question-utils.d.ts.map +1 -0
- package/types/src/components/utils/question-utils.test.d.ts +2 -0
- package/types/src/components/utils/question-utils.test.d.ts.map +1 -0
- package/types/src/controller.d.ts +78 -0
- package/types/src/controller.d.ts.map +1 -0
- package/types/src/controller.test.d.ts +2 -0
- package/types/src/controller.test.d.ts.map +1 -0
- package/types/src/index.d.ts +54 -0
- package/types/src/index.d.ts.map +1 -0
- package/types/src/journey/journey-response.d.ts +32 -0
- package/types/src/journey/journey-response.d.ts.map +1 -0
- package/types/src/journey/journey-response.test.d.ts +2 -0
- package/types/src/journey/journey-response.test.d.ts.map +1 -0
- package/types/src/journey/journey.d.ts +144 -0
- package/types/src/journey/journey.d.ts.map +1 -0
- package/types/src/journey/journey.test.d.ts +2 -0
- package/types/src/journey/journey.test.d.ts.map +1 -0
- package/types/src/lib/address-utils.d.ts +6 -0
- package/types/src/lib/address-utils.d.ts.map +1 -0
- package/types/src/lib/address-utils.test.d.ts +2 -0
- package/types/src/lib/address-utils.test.d.ts.map +1 -0
- package/types/src/lib/address.d.ts +43 -0
- package/types/src/lib/address.d.ts.map +1 -0
- package/types/src/lib/address.test.d.ts +2 -0
- package/types/src/lib/address.test.d.ts.map +1 -0
- package/types/src/lib/date-utils.d.ts +60 -0
- package/types/src/lib/date-utils.d.ts.map +1 -0
- package/types/src/lib/date-utils.test.d.ts +2 -0
- package/types/src/lib/date-utils.test.d.ts.map +1 -0
- package/types/src/lib/session-answer-store.d.ts +84 -0
- package/types/src/lib/session-answer-store.d.ts.map +1 -0
- package/types/src/lib/session-answer-store.test.d.ts +2 -0
- package/types/src/lib/session-answer-store.test.d.ts.map +1 -0
- package/types/src/lib/utils.d.ts +19 -0
- package/types/src/lib/utils.d.ts.map +1 -0
- package/types/src/lib/utils.test.d.ts +2 -0
- package/types/src/lib/utils.test.d.ts.map +1 -0
- package/types/src/lib/uuid.d.ts +7 -0
- package/types/src/lib/uuid.d.ts.map +1 -0
- package/types/src/lib/uuid.test.d.ts +2 -0
- package/types/src/lib/uuid.test.d.ts.map +1 -0
- package/types/src/middleware/build-get-journey.d.ts +6 -0
- package/types/src/middleware/build-get-journey.d.ts.map +1 -0
- package/types/src/middleware/redirect-to-unanswered-question.d.ts +12 -0
- package/types/src/middleware/redirect-to-unanswered-question.d.ts.map +1 -0
- package/types/src/middleware/redirect-to-unanswered-question.test.d.ts +2 -0
- package/types/src/middleware/redirect-to-unanswered-question.test.d.ts.map +1 -0
- package/types/src/questions/create-questions.d.ts +21 -0
- package/types/src/questions/create-questions.d.ts.map +1 -0
- package/types/src/questions/options-question.d.ts +74 -0
- package/types/src/questions/options-question.d.ts.map +1 -0
- package/types/src/questions/options-question.test.d.ts +2 -0
- package/types/src/questions/options-question.test.d.ts.map +1 -0
- package/types/src/questions/question.d.ts +274 -0
- package/types/src/questions/question.d.ts.map +1 -0
- package/types/src/questions/question.test.d.ts +2 -0
- package/types/src/questions/question.test.d.ts.map +1 -0
- package/types/src/questions/questions.d.ts +3 -0
- package/types/src/questions/questions.d.ts.map +1 -0
- package/types/src/section.d.ts +107 -0
- package/types/src/section.d.ts.map +1 -0
- package/types/src/section.test.d.ts +2 -0
- package/types/src/section.test.d.ts.map +1 -0
- package/types/src/validator/address-validator.d.ts +41 -0
- package/types/src/validator/address-validator.d.ts.map +1 -0
- package/types/src/validator/address-validator.test.d.ts +2 -0
- package/types/src/validator/address-validator.test.d.ts.map +1 -0
- package/types/src/validator/base-validator.d.ts +11 -0
- package/types/src/validator/base-validator.d.ts.map +1 -0
- package/types/src/validator/base-validator.test.d.ts +2 -0
- package/types/src/validator/base-validator.test.d.ts.map +1 -0
- package/types/src/validator/conditional-required-validator.d.ts +24 -0
- package/types/src/validator/conditional-required-validator.d.ts.map +1 -0
- package/types/src/validator/conditional-required-validator.test.d.ts +2 -0
- package/types/src/validator/conditional-required-validator.test.d.ts.map +1 -0
- package/types/src/validator/confirmation-checkbox-validator.d.ts +27 -0
- package/types/src/validator/confirmation-checkbox-validator.d.ts.map +1 -0
- package/types/src/validator/confirmation-checkbox-validator.test.d.ts +2 -0
- package/types/src/validator/confirmation-checkbox-validator.test.d.ts.map +1 -0
- package/types/src/validator/coordinates-validator.d.ts +22 -0
- package/types/src/validator/coordinates-validator.d.ts.map +1 -0
- package/types/src/validator/coordinates-validator.test.d.ts +2 -0
- package/types/src/validator/coordinates-validator.test.d.ts.map +1 -0
- package/types/src/validator/date-period-validator.d.ts +63 -0
- package/types/src/validator/date-period-validator.d.ts.map +1 -0
- package/types/src/validator/date-period-validator.test.d.ts +2 -0
- package/types/src/validator/date-period-validator.test.d.ts.map +1 -0
- package/types/src/validator/date-time-validator.d.ts +26 -0
- package/types/src/validator/date-time-validator.d.ts.map +1 -0
- package/types/src/validator/date-time-validator.test.d.ts +2 -0
- package/types/src/validator/date-time-validator.test.d.ts.map +1 -0
- package/types/src/validator/date-validator.d.ts +48 -0
- package/types/src/validator/date-validator.d.ts.map +1 -0
- package/types/src/validator/date-validator.test.d.ts +2 -0
- package/types/src/validator/date-validator.test.d.ts.map +1 -0
- package/types/src/validator/document-upload-validator.d.ts +10 -0
- package/types/src/validator/document-upload-validator.d.ts.map +1 -0
- package/types/src/validator/document-upload-validator.test.d.ts +2 -0
- package/types/src/validator/document-upload-validator.test.d.ts.map +1 -0
- package/types/src/validator/email-validator.d.ts +73 -0
- package/types/src/validator/email-validator.d.ts.map +1 -0
- package/types/src/validator/email-validator.test.d.ts +2 -0
- package/types/src/validator/email-validator.test.d.ts.map +1 -0
- package/types/src/validator/multi-field-input-validator.d.ts +70 -0
- package/types/src/validator/multi-field-input-validator.d.ts.map +1 -0
- package/types/src/validator/multi-field-input-validator.test.d.ts +2 -0
- package/types/src/validator/multi-field-input-validator.test.d.ts.map +1 -0
- package/types/src/validator/numeric-validator.d.ts +49 -0
- package/types/src/validator/numeric-validator.d.ts.map +1 -0
- package/types/src/validator/numeric-validator.test.d.ts +2 -0
- package/types/src/validator/numeric-validator.test.d.ts.map +1 -0
- package/types/src/validator/required-validator.d.ts +22 -0
- package/types/src/validator/required-validator.d.ts.map +1 -0
- package/types/src/validator/required-validator.test.d.ts +2 -0
- package/types/src/validator/required-validator.test.d.ts.map +1 -0
- package/types/src/validator/same-answer-validator.d.ts +18 -0
- package/types/src/validator/same-answer-validator.d.ts.map +1 -0
- package/types/src/validator/same-answer-validator.test.d.ts +2 -0
- package/types/src/validator/same-answer-validator.test.d.ts.map +1 -0
- package/types/src/validator/string-validator.d.ts +58 -0
- package/types/src/validator/string-validator.d.ts.map +1 -0
- package/types/src/validator/string-validator.test.d.ts +2 -0
- package/types/src/validator/string-validator.test.d.ts.map +1 -0
- package/types/src/validator/unit-option-entry-validator.d.ts +40 -0
- package/types/src/validator/unit-option-entry-validator.d.ts.map +1 -0
- package/types/src/validator/unit-option-entry-validator.test.d.ts +2 -0
- package/types/src/validator/unit-option-entry-validator.test.d.ts.map +1 -0
- package/types/src/validator/valid-option-validator.d.ts +22 -0
- package/types/src/validator/valid-option-validator.d.ts.map +1 -0
- package/types/src/validator/valid-option-validator.test.d.ts +2 -0
- package/types/src/validator/valid-option-validator.test.d.ts.map +1 -0
- package/types/src/validator/validation-error-handler.d.ts +20 -0
- package/types/src/validator/validation-error-handler.d.ts.map +1 -0
- package/types/src/validator/validation-error-handler.test.d.ts +2 -0
- package/types/src/validator/validation-error-handler.test.d.ts.map +1 -0
- package/types/src/validator/validator.d.ts +5 -0
- package/types/src/validator/validator.d.ts.map +1 -0
- package/types/src/validator/validator.test.d.ts +2 -0
- package/types/src/validator/validator.test.d.ts.map +1 -0
- package/types/test/mock/journey.d.ts +3 -0
- package/types/test/mock/journey.d.ts.map +1 -0
- package/types/test/mock/uuid.d.ts +7 -0
- package/types/test/mock/uuid.d.ts.map +1 -0
- package/types/test/utils/nunjucks.d.ts +2 -0
- package/types/test/utils/nunjucks.d.ts.map +1 -0
- package/types/test/utils/utils.d.ts +32 -0
- package/types/test/utils/utils.d.ts.map +1 -0
- package/src/lib/address.d.ts +0 -7
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"same-answer-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/same-answer-validator.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} MinLength
|
|
3
|
+
* @property {Number} minLength
|
|
4
|
+
* @property {String} minLengthMessage
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {Object} MaxLength
|
|
8
|
+
* @property {Number} maxLength
|
|
9
|
+
* @property {String} maxLengthMessage
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {Object} Regex
|
|
13
|
+
* @property {String | RegExp} regex
|
|
14
|
+
* @property {String} regexMessage
|
|
15
|
+
*/
|
|
16
|
+
export default class StringValidator extends BaseValidator {
|
|
17
|
+
/**
|
|
18
|
+
* @param {Object} params
|
|
19
|
+
* @param {MinLength} [params.minLength]
|
|
20
|
+
* @param {MaxLength} [params.maxLength]
|
|
21
|
+
* @param {Regex} [params.regex]
|
|
22
|
+
* @param {string} [params.fieldName]
|
|
23
|
+
*/
|
|
24
|
+
constructor({ minLength, maxLength, regex, fieldName }?: {
|
|
25
|
+
minLength?: MinLength | undefined;
|
|
26
|
+
maxLength?: MaxLength | undefined;
|
|
27
|
+
regex?: Regex | undefined;
|
|
28
|
+
fieldName?: string | undefined;
|
|
29
|
+
});
|
|
30
|
+
minLength: {
|
|
31
|
+
minLength: number;
|
|
32
|
+
minLengthMessage: string;
|
|
33
|
+
};
|
|
34
|
+
maxLength: {
|
|
35
|
+
maxLength: number;
|
|
36
|
+
maxLengthMessage: string;
|
|
37
|
+
};
|
|
38
|
+
regex: {
|
|
39
|
+
regex: string;
|
|
40
|
+
regexMessage: string;
|
|
41
|
+
};
|
|
42
|
+
fieldName: string | undefined;
|
|
43
|
+
validate(questionObj: any): import("express-validator").ValidationChain;
|
|
44
|
+
}
|
|
45
|
+
export type MinLength = {
|
|
46
|
+
minLength: number;
|
|
47
|
+
minLengthMessage: string;
|
|
48
|
+
};
|
|
49
|
+
export type MaxLength = {
|
|
50
|
+
maxLength: number;
|
|
51
|
+
maxLengthMessage: string;
|
|
52
|
+
};
|
|
53
|
+
export type Regex = {
|
|
54
|
+
regex: string | RegExp;
|
|
55
|
+
regexMessage: string;
|
|
56
|
+
};
|
|
57
|
+
import BaseValidator from './base-validator.js';
|
|
58
|
+
//# sourceMappingURL=string-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/string-validator.js"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;IAcC;;;;;;OAMG;IACH,yDALG;QAA2B,SAAS;QACT,SAAS;QACb,KAAK;QACJ,SAAS;KAAC,EAmBpC;IArCD;;;MAGE;IACF;;;MAGE;IACF;;;MAGE;IAyBD,8BAA0B;IAG3B,wEAkBC;CACD;;;;;;;;;;WA/Da,SAAS,MAAM;;;0BAfH,qBAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/string-validator.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
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 UnitOptionEntryValidator extends BaseValidator {
|
|
9
|
+
/**
|
|
10
|
+
* @param {Object} params
|
|
11
|
+
* @param {string} [params.errorMessage]
|
|
12
|
+
* @param {string} [params.unit]
|
|
13
|
+
* @param {number} [params.min]
|
|
14
|
+
* @param {number} [params.max]
|
|
15
|
+
* @param {Regex} [params.regex]
|
|
16
|
+
* @param {string} [params.regexMessage]
|
|
17
|
+
*/
|
|
18
|
+
constructor({ errorMessage, unit, min, max, regex, regexMessage }?: {
|
|
19
|
+
errorMessage?: string | undefined;
|
|
20
|
+
unit?: string | undefined;
|
|
21
|
+
min?: number | undefined;
|
|
22
|
+
max?: number | undefined;
|
|
23
|
+
regex?: any;
|
|
24
|
+
regexMessage?: string | undefined;
|
|
25
|
+
});
|
|
26
|
+
unit: string;
|
|
27
|
+
min: number | undefined;
|
|
28
|
+
max: number | undefined;
|
|
29
|
+
regex: any;
|
|
30
|
+
regexMessage: string;
|
|
31
|
+
/**
|
|
32
|
+
* validates the response body, checking the questionObj's fieldname
|
|
33
|
+
* @param {Question} questionObj
|
|
34
|
+
*/
|
|
35
|
+
validate(questionObj: Question): any;
|
|
36
|
+
isValueIncluded(questionObj: any, value: any): import("express-validator").ValidationChain;
|
|
37
|
+
}
|
|
38
|
+
export type Question = typeof import("../questions/question.js");
|
|
39
|
+
import BaseValidator from './base-validator.js';
|
|
40
|
+
//# sourceMappingURL=unit-option-entry-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit-option-entry-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/unit-option-entry-validator.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH;IACC;;;;;;;;OAQG;IAEH,oEARG;QAAwB,YAAY;QACZ,IAAI;QACJ,GAAG;QACH,GAAG;QACJ,KAAK;QACJ,YAAY;KAAC,EAWvC;IALA,aAA2B;IAC3B,wBAAc;IACd,wBAAc;IACd,WAAkB;IAClB,qBAA0D;IAG3D;;;OAGG;IACH,sBAFW,QAAQ,OA4ClB;IAED,2FAKC;CACD;;0BArFyB,qBAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit-option-entry-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/unit-option-entry-validator.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import('../questions/options-question.js')} OptionsQuestion
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* enforces a field is within the question's predefined list of options
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
export default class ValidOptionValidator 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 value sent for the questionObj's fieldname is within the predefined list of options
|
|
16
|
+
* @param {OptionsQuestion} questionObj
|
|
17
|
+
*/
|
|
18
|
+
validate(questionObj: OptionsQuestion): import("express-validator").ValidationChain;
|
|
19
|
+
}
|
|
20
|
+
export type OptionsQuestion = typeof import("../questions/options-question.js");
|
|
21
|
+
import BaseValidator from './base-validator.js';
|
|
22
|
+
//# sourceMappingURL=valid-option-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-option-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/valid-option-validator.js"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH;IACC;;;OAGG;IACH,2BAFW,MAAM,EAUhB;IAED;;;OAGG;IACH,sBAFW,eAAe,+CAUzB;CACD;;0BAtCyB,qBAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-option-validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/valid-option-validator.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {{text: string, href: string}[]} GovUkErrorList
|
|
3
|
+
* @typedef {Object<string, import('express-validator').ValidationError>} ExpressValidationErrors
|
|
4
|
+
* @typedef {(errors: ExpressValidationErrors) => GovUkErrorList} ToErrorSummary
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @type {ToErrorSummary}
|
|
8
|
+
*/
|
|
9
|
+
export const expressValidationErrorsToGovUkErrorList: ToErrorSummary;
|
|
10
|
+
export function buildValidationErrorHandler(validate?: import("express-validator").ResultFactory<import("express-validator").ValidationError>, toErrorSummary?: ToErrorSummary): any;
|
|
11
|
+
export const validationErrorHandler: any;
|
|
12
|
+
export type GovUkErrorList = {
|
|
13
|
+
text: string;
|
|
14
|
+
href: string;
|
|
15
|
+
}[];
|
|
16
|
+
export type ExpressValidationErrors = {
|
|
17
|
+
[x: string]: import("express-validator").ValidationError;
|
|
18
|
+
};
|
|
19
|
+
export type ToErrorSummary = (errors: ExpressValidationErrors) => GovUkErrorList;
|
|
20
|
+
//# sourceMappingURL=validation-error-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error-handler.d.ts","sourceRoot":"","sources":["../../../src/validator/validation-error-handler.js"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH;;GAEG;AACH,sDAFU,cAAc,CAkBtB;AAQK,uDAJI,OAAO,mBAAmB,EAAE,aAAa,CAAC,OAAO,mBAAmB,EAAE,eAAe,CAAC,mBACtF,cAAc,OA4BxB;AAED,yCAAoE;6BA3DvD;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,EAAE;;;;6BAE9B,CAAC,MAAM,EAAE,uBAAuB,KAAK,cAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error-handler.test.d.ts","sourceRoot":"","sources":["../../../src/validator/validation-error-handler.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/validator/validator.js"],"names":[],"mappings":"AA4BA,oDACe,QAAG,EAAE,QAAG,EAAE,SAAI,kBAM5B;;AAjCD,wCAAwC;AACxC,4BAqBE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.test.d.ts","sourceRoot":"","sources":["../../../src/validator/validator.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey.d.ts","sourceRoot":"","sources":["../../../test/mock/journey.js"],"names":[],"mappings":"AAEA,uCAcC;wBAhBuB,yBAAyB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../../test/mock/uuid.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,oCAHW,OAAO,WAAW,EAAE,WAAW,SAC/B,MAAM,QAOhB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nunjucks.d.ts","sourceRoot":"","sources":["../../../test/utils/nunjucks.js"],"names":[],"mappings":"AAKA,gDAcC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export function testDir(): string;
|
|
2
|
+
export function snapshotsDir(): string;
|
|
3
|
+
/**
|
|
4
|
+
* @param {import('node:test').TestContext} ctx
|
|
5
|
+
* @param {string} content
|
|
6
|
+
* @param {string} name
|
|
7
|
+
*/
|
|
8
|
+
export function assertSnapshot(ctx: import("node:test").TestContext, content: string, name: string): void;
|
|
9
|
+
/**
|
|
10
|
+
* @returns {import('pino').BaseLogger}
|
|
11
|
+
*/
|
|
12
|
+
export function mockLogger(): any;
|
|
13
|
+
/**
|
|
14
|
+
* escapes all RegExp meta-characters in a string
|
|
15
|
+
* @param {string} s
|
|
16
|
+
* @returns {string}
|
|
17
|
+
*/
|
|
18
|
+
export function escapeForRegExp(s: string): string;
|
|
19
|
+
export function mockReq(): {
|
|
20
|
+
log: any;
|
|
21
|
+
params: {};
|
|
22
|
+
body: {};
|
|
23
|
+
originalUrl: string;
|
|
24
|
+
};
|
|
25
|
+
export function mockRes(): {
|
|
26
|
+
locals: {};
|
|
27
|
+
redirect: import("node:test").Mock<(...args: any[]) => undefined>;
|
|
28
|
+
status: import("node:test").Mock<(...args: any[]) => undefined>;
|
|
29
|
+
render: import("node:test").Mock<(...args: any[]) => undefined>;
|
|
30
|
+
send: import("node:test").Mock<(...args: any[]) => undefined>;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../test/utils/utils.js"],"names":[],"mappings":"AAGA,kCAEC;AAED,uCAEC;AAED;;;;GAIG;AACH,oCAJW,OAAO,WAAW,EAAE,WAAW,WAC/B,MAAM,QACN,MAAM,QAUhB;AAED;;GAEG;AACH,kCAWC;AAsBD;;;;GAIG;AACH,mCAHW,MAAM,GACJ,MAAM,CAIlB;AA3BM;;;;;EAKL;AACK;;;;;;EAYN"}
|