@dmptool/types 1.0.8 → 1.1.1

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 (60) hide show
  1. package/README.md +2 -0
  2. package/dist/answers/__tests__/answers.spec.js +18 -17
  3. package/dist/answers/index.d.ts +80 -55
  4. package/dist/answers/index.js +19 -17
  5. package/dist/answers/numberAnswers.d.ts +91 -0
  6. package/dist/answers/numberAnswers.js +21 -0
  7. package/dist/answers/optionBasedAnswers.d.ts +25 -0
  8. package/dist/answers/optionBasedAnswers.js +5 -1
  9. package/dist/answers/tableAnswers.d.ts +108 -108
  10. package/dist/answers/tableAnswers.js +9 -8
  11. package/dist/answers/textAnswers.d.ts +101 -0
  12. package/dist/answers/textAnswers.js +22 -0
  13. package/dist/questions/__tests__/dateQuestions.spec.js +20 -74
  14. package/dist/questions/__tests__/graphQLQuestions.spec.js +6 -0
  15. package/dist/questions/__tests__/numberQuestions.spec.js +108 -0
  16. package/dist/questions/__tests__/optionBasedQuestions.spec.js +91 -54
  17. package/dist/questions/__tests__/tableQuestion.spec.js +2 -0
  18. package/dist/questions/__tests__/textQuestions.spec.d.ts +1 -0
  19. package/dist/questions/__tests__/textQuestions.spec.js +120 -0
  20. package/dist/questions/dateQuestions.d.ts +159 -178
  21. package/dist/questions/dateQuestions.js +9 -15
  22. package/dist/questions/graphQLQuestions.d.ts +67 -38
  23. package/dist/questions/graphQLQuestions.js +3 -2
  24. package/dist/questions/index.d.ts +1800 -1379
  25. package/dist/questions/index.js +22 -19
  26. package/dist/questions/numberQuestions.d.ts +292 -0
  27. package/dist/questions/numberQuestions.js +28 -0
  28. package/dist/questions/optionBasedQuestions.d.ts +186 -157
  29. package/dist/questions/optionBasedQuestions.js +17 -20
  30. package/dist/questions/question.d.ts +29 -11
  31. package/dist/questions/question.js +10 -4
  32. package/dist/questions/tableQuestions.d.ts +2395 -2048
  33. package/dist/questions/tableQuestions.js +12 -10
  34. package/dist/questions/textQuestions.d.ts +261 -0
  35. package/dist/questions/textQuestions.js +42 -0
  36. package/dist/schemas/anyQuestion.schema.json +269 -238
  37. package/dist/schemas/anyTableColumnQuestion.schema.json +207 -216
  38. package/dist/schemas/booleanQuestion.schema.json +17 -11
  39. package/dist/schemas/checkboxesQuestion.schema.json +24 -27
  40. package/dist/schemas/currencyQuestion.schema.json +23 -18
  41. package/dist/schemas/dateQuestion.schema.json +21 -16
  42. package/dist/schemas/dateRangeQuestion.schema.json +31 -56
  43. package/dist/schemas/emailQuestion.schema.json +24 -19
  44. package/dist/schemas/filteredSearchQuestion.schema.json +18 -13
  45. package/dist/schemas/numberQuestion.schema.json +21 -16
  46. package/dist/schemas/numberRangeQuestion.schema.json +31 -56
  47. package/dist/schemas/radioButtonsQuestion.schema.json +24 -27
  48. package/dist/schemas/selectBoxQuestion.schema.json +27 -36
  49. package/dist/schemas/tableQuestion.schema.json +233 -234
  50. package/dist/schemas/textAreaQuestion.schema.json +22 -16
  51. package/dist/schemas/textQuestion.schema.json +21 -16
  52. package/dist/schemas/typeaheadSearchQuestion.schema.json +15 -4
  53. package/dist/schemas/urlQuestion.schema.json +21 -16
  54. package/package.json +1 -1
  55. package/dist/answers/primitiveAnswers.d.ts +0 -216
  56. package/dist/answers/primitiveAnswers.js +0 -41
  57. package/dist/questions/__tests__/primitiveQuestions.spec.js +0 -281
  58. package/dist/questions/primitiveQuestions.d.ts +0 -555
  59. package/dist/questions/primitiveQuestions.js +0 -86
  60. /package/dist/questions/__tests__/{primitiveQuestions.spec.d.ts → numberQuestions.spec.d.ts} +0 -0
package/README.md CHANGED
@@ -76,6 +76,8 @@ Once added, you can then import the Types and Zod shemas like this:
76
76
  const boolQ: BooleanQuestionType = {
77
77
  type: "boolean",
78
78
  attributes: {
79
+ label: "Yes or No",
80
+ help: "Are you sure?",
79
81
  checked: true
80
82
  },
81
83
  meta: {
@@ -4,16 +4,17 @@ const globals_1 = require("@jest/globals");
4
4
  const dateAnswers_1 = require("../dateAnswers");
5
5
  const graphQLAnswers_1 = require("../graphQLAnswers");
6
6
  const optionBasedAnswers_1 = require("../optionBasedAnswers");
7
- const primitiveAnswers_1 = require("../primitiveAnswers");
7
+ const numberAnswers_1 = require("../numberAnswers");
8
+ const textAnswers_1 = require("../textAnswers");
8
9
  const tableAnswers_1 = require("../tableAnswers");
9
10
  const __1 = require("..");
10
11
  const questions_1 = require("../../questions");
11
12
  (0, globals_1.describe)('Answer Type Validations', () => {
12
13
  (0, globals_1.it)('should validate BooleanAnswer', () => {
13
14
  const validData = { type: 'boolean', answer: true, meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
14
- (0, globals_1.expect)(() => primitiveAnswers_1.BooleanAnswerSchema.parse(validData)).not.toThrow();
15
+ (0, globals_1.expect)(() => optionBasedAnswers_1.BooleanAnswerSchema.parse(validData)).not.toThrow();
15
16
  const invalidData = { type: 'boolean', answer: 'true' };
16
- (0, globals_1.expect)(() => primitiveAnswers_1.BooleanAnswerSchema.parse(invalidData)).toThrow();
17
+ (0, globals_1.expect)(() => optionBasedAnswers_1.BooleanAnswerSchema.parse(invalidData)).toThrow();
17
18
  });
18
19
  (0, globals_1.it)('should validate CheckboxesAnswer', () => {
19
20
  const validData = { type: 'checkBoxes', answer: ['option1', 'option2'], meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
@@ -23,9 +24,9 @@ const questions_1 = require("../../questions");
23
24
  });
24
25
  (0, globals_1.it)('should validate CurrencyAnswer', () => {
25
26
  const validData = { type: 'currency', answer: 100.5, meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
26
- (0, globals_1.expect)(() => primitiveAnswers_1.CurrencyAnswerSchema.parse(validData)).not.toThrow();
27
+ (0, globals_1.expect)(() => numberAnswers_1.CurrencyAnswerSchema.parse(validData)).not.toThrow();
27
28
  const invalidData = { type: 'currency', answer: '100.5', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
28
- (0, globals_1.expect)(() => primitiveAnswers_1.CurrencyAnswerSchema.parse(invalidData)).toThrow();
29
+ (0, globals_1.expect)(() => numberAnswers_1.CurrencyAnswerSchema.parse(invalidData)).toThrow();
29
30
  });
30
31
  (0, globals_1.it)('should validate DateAnswer', () => {
31
32
  const validData = { type: 'date', answer: '2023-10-01', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
@@ -49,9 +50,9 @@ const questions_1 = require("../../questions");
49
50
  });
50
51
  (0, globals_1.it)('should validate EmailAnswer', () => {
51
52
  const validData = { type: 'email', answer: 'test@example.com', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
52
- (0, globals_1.expect)(() => primitiveAnswers_1.EmailAnswerSchema.parse(validData)).not.toThrow();
53
+ (0, globals_1.expect)(() => textAnswers_1.EmailAnswerSchema.parse(validData)).not.toThrow();
53
54
  const invalidData = { type: 'email', answer: 12345 };
54
- (0, globals_1.expect)(() => primitiveAnswers_1.EmailAnswerSchema.parse(invalidData)).toThrow();
55
+ (0, globals_1.expect)(() => textAnswers_1.EmailAnswerSchema.parse(invalidData)).toThrow();
55
56
  });
56
57
  (0, globals_1.it)('should validate FilteredSearchAnswer', () => {
57
58
  const validData = { type: 'filteredSearch', answer: ['item1', 'item2'], meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
@@ -61,9 +62,9 @@ const questions_1 = require("../../questions");
61
62
  });
62
63
  (0, globals_1.it)('should validate NumberAnswer', () => {
63
64
  const validData = { type: 'number', answer: 42, meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
64
- (0, globals_1.expect)(() => primitiveAnswers_1.NumberAnswerSchema.parse(validData)).not.toThrow();
65
+ (0, globals_1.expect)(() => numberAnswers_1.NumberAnswerSchema.parse(validData)).not.toThrow();
65
66
  const invalidData = { type: 'number', answer: '42', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
66
- (0, globals_1.expect)(() => primitiveAnswers_1.NumberAnswerSchema.parse(invalidData)).toThrow();
67
+ (0, globals_1.expect)(() => numberAnswers_1.NumberAnswerSchema.parse(invalidData)).toThrow();
67
68
  });
68
69
  (0, globals_1.it)('should validate NumberRangeAnswer', () => {
69
70
  const validData = {
@@ -71,13 +72,13 @@ const questions_1 = require("../../questions");
71
72
  answer: { start: 1, end: 10 },
72
73
  meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION }
73
74
  };
74
- (0, globals_1.expect)(() => primitiveAnswers_1.NumberRangeAnswerSchema.parse(validData)).not.toThrow();
75
+ (0, globals_1.expect)(() => numberAnswers_1.NumberRangeAnswerSchema.parse(validData)).not.toThrow();
75
76
  const invalidData = {
76
77
  type: 'numberRange',
77
78
  answer: { start: '1', end: 10 },
78
79
  meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION }
79
80
  };
80
- (0, globals_1.expect)(() => primitiveAnswers_1.NumberRangeAnswerSchema.parse(invalidData)).toThrow();
81
+ (0, globals_1.expect)(() => numberAnswers_1.NumberRangeAnswerSchema.parse(invalidData)).toThrow();
81
82
  });
82
83
  (0, globals_1.it)('should validate RadioButtonsAnswer', () => {
83
84
  const validData = { type: 'radioButtons', answer: 'option1', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
@@ -93,15 +94,15 @@ const questions_1 = require("../../questions");
93
94
  });
94
95
  (0, globals_1.it)('should validate TextAnswer', () => {
95
96
  const validData = { type: 'text', answer: 'Some text', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
96
- (0, globals_1.expect)(() => primitiveAnswers_1.TextAnswerSchema.parse(validData)).not.toThrow();
97
+ (0, globals_1.expect)(() => textAnswers_1.TextAnswerSchema.parse(validData)).not.toThrow();
97
98
  const invalidData = { type: 'text', answer: 12345, meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
98
- (0, globals_1.expect)(() => primitiveAnswers_1.TextAnswerSchema.parse(invalidData)).toThrow();
99
+ (0, globals_1.expect)(() => textAnswers_1.TextAnswerSchema.parse(invalidData)).toThrow();
99
100
  });
100
101
  (0, globals_1.it)('should validate TextAreaAnswer', () => {
101
102
  const validData = { type: 'textArea', answer: 'Some long text', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
102
- (0, globals_1.expect)(() => primitiveAnswers_1.TextAreaAnswerSchema.parse(validData)).not.toThrow();
103
+ (0, globals_1.expect)(() => textAnswers_1.TextAreaAnswerSchema.parse(validData)).not.toThrow();
103
104
  const invalidData = { type: 'textArea', answer: 12345, meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
104
- (0, globals_1.expect)(() => primitiveAnswers_1.TextAreaAnswerSchema.parse(invalidData)).toThrow();
105
+ (0, globals_1.expect)(() => textAnswers_1.TextAreaAnswerSchema.parse(invalidData)).toThrow();
105
106
  });
106
107
  (0, globals_1.it)('should validate TypeaheadSearchAnswer', () => {
107
108
  const validData = { type: 'typeaheadSearch', answer: 'Search term', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
@@ -111,9 +112,9 @@ const questions_1 = require("../../questions");
111
112
  });
112
113
  (0, globals_1.it)('should validate URLAnswer', () => {
113
114
  const validData = { type: 'url', answer: 'https://example.com', meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
114
- (0, globals_1.expect)(() => primitiveAnswers_1.URLAnswerSchema.parse(validData)).not.toThrow();
115
+ (0, globals_1.expect)(() => textAnswers_1.URLAnswerSchema.parse(validData)).not.toThrow();
115
116
  const invalidData = { type: 'url', answer: 12345, meta: { schemaVersion: questions_1.CURRENT_SCHEMA_VERSION } };
116
- (0, globals_1.expect)(() => primitiveAnswers_1.URLAnswerSchema.parse(invalidData)).toThrow();
117
+ (0, globals_1.expect)(() => textAnswers_1.URLAnswerSchema.parse(invalidData)).toThrow();
117
118
  });
118
119
  (0, globals_1.it)('should validate TableAnswer', () => {
119
120
  const validData = {
@@ -1,11 +1,18 @@
1
1
  import { z } from 'zod';
2
+ import { DateAnswerType, DateRangeAnswerType } from './dateAnswers';
3
+ import { FilteredSearchAnswerType, TypeaheadSearchAnswerType } from './graphQLAnswers';
4
+ import { BooleanAnswerType, CheckboxesAnswerType, RadioButtonsAnswerType, SelectBoxAnswerType } from './optionBasedAnswers';
5
+ import { CurrencyAnswerType, NumberAnswerType, NumberRangeAnswerType } from './numberAnswers';
6
+ import { TableAnswerType } from './tableAnswers';
7
+ import { EmailAnswerType, TextAnswerType, TextAreaAnswerType, URLAnswerType } from './textAnswers';
2
8
  import { QuestionTypesEnum } from '../questions';
3
9
  export * from './answer';
4
10
  export * from './dateAnswers';
5
11
  export * from './graphQLAnswers';
12
+ export * from './numberAnswers';
6
13
  export * from './optionBasedAnswers';
7
- export * from './primitiveAnswers';
8
14
  export * from './tableAnswers';
15
+ export * from './textAnswers';
9
16
  export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
10
17
  meta: z.ZodObject<{
11
18
  schemaVersion: z.ZodLiteral<"1.0">;
@@ -631,6 +638,12 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
631
638
  schemaVersion: "1.0";
632
639
  };
633
640
  answer: string;
641
+ } | {
642
+ type: "boolean";
643
+ meta: {
644
+ schemaVersion: "1.0";
645
+ };
646
+ answer: boolean;
634
647
  } | {
635
648
  type: "checkBoxes";
636
649
  meta: {
@@ -650,13 +663,13 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
650
663
  };
651
664
  answer: string[];
652
665
  } | {
653
- type: "boolean";
666
+ type: "currency";
654
667
  meta: {
655
668
  schemaVersion: "1.0";
656
669
  };
657
- answer: boolean;
670
+ answer: number;
658
671
  } | {
659
- type: "currency";
672
+ type: "number";
660
673
  meta: {
661
674
  schemaVersion: "1.0";
662
675
  };
@@ -667,12 +680,6 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
667
680
  schemaVersion: "1.0";
668
681
  };
669
682
  answer: string;
670
- } | {
671
- type: "number";
672
- meta: {
673
- schemaVersion: "1.0";
674
- };
675
- answer: number;
676
683
  } | {
677
684
  type: "text";
678
685
  meta: {
@@ -721,6 +728,12 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
721
728
  schemaVersion: "1.0";
722
729
  };
723
730
  answer: string;
731
+ } | {
732
+ type: "boolean";
733
+ meta: {
734
+ schemaVersion: "1.0";
735
+ };
736
+ answer: boolean;
724
737
  } | {
725
738
  type: "checkBoxes";
726
739
  meta: {
@@ -740,13 +753,13 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
740
753
  };
741
754
  answer: string[];
742
755
  } | {
743
- type: "boolean";
756
+ type: "currency";
744
757
  meta: {
745
758
  schemaVersion: "1.0";
746
759
  };
747
- answer: boolean;
760
+ answer: number;
748
761
  } | {
749
- type: "currency";
762
+ type: "number";
750
763
  meta: {
751
764
  schemaVersion: "1.0";
752
765
  };
@@ -757,12 +770,6 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
757
770
  schemaVersion: "1.0";
758
771
  };
759
772
  answer: string;
760
- } | {
761
- type: "number";
762
- meta: {
763
- schemaVersion: "1.0";
764
- };
765
- answer: number;
766
773
  } | {
767
774
  type: "text";
768
775
  meta: {
@@ -813,6 +820,12 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
813
820
  schemaVersion: "1.0";
814
821
  };
815
822
  answer: string;
823
+ } | {
824
+ type: "boolean";
825
+ meta: {
826
+ schemaVersion: "1.0";
827
+ };
828
+ answer: boolean;
816
829
  } | {
817
830
  type: "checkBoxes";
818
831
  meta: {
@@ -832,13 +845,13 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
832
845
  };
833
846
  answer: string[];
834
847
  } | {
835
- type: "boolean";
848
+ type: "currency";
836
849
  meta: {
837
850
  schemaVersion: "1.0";
838
851
  };
839
- answer: boolean;
852
+ answer: number;
840
853
  } | {
841
- type: "currency";
854
+ type: "number";
842
855
  meta: {
843
856
  schemaVersion: "1.0";
844
857
  };
@@ -849,12 +862,6 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
849
862
  schemaVersion: "1.0";
850
863
  };
851
864
  answer: string;
852
- } | {
853
- type: "number";
854
- meta: {
855
- schemaVersion: "1.0";
856
- };
857
- answer: number;
858
865
  } | {
859
866
  type: "text";
860
867
  meta: {
@@ -905,6 +912,12 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
905
912
  schemaVersion: "1.0";
906
913
  };
907
914
  answer: string;
915
+ } | {
916
+ type: "boolean";
917
+ meta: {
918
+ schemaVersion: "1.0";
919
+ };
920
+ answer: boolean;
908
921
  } | {
909
922
  type: "checkBoxes";
910
923
  meta: {
@@ -924,13 +937,13 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
924
937
  };
925
938
  answer: string[];
926
939
  } | {
927
- type: "boolean";
940
+ type: "currency";
928
941
  meta: {
929
942
  schemaVersion: "1.0";
930
943
  };
931
- answer: boolean;
944
+ answer: number;
932
945
  } | {
933
- type: "currency";
946
+ type: "number";
934
947
  meta: {
935
948
  schemaVersion: "1.0";
936
949
  };
@@ -941,12 +954,6 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
941
954
  schemaVersion: "1.0";
942
955
  };
943
956
  answer: string;
944
- } | {
945
- type: "number";
946
- meta: {
947
- schemaVersion: "1.0";
948
- };
949
- answer: number;
950
957
  } | {
951
958
  type: "text";
952
959
  meta: {
@@ -1003,6 +1010,12 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
1003
1010
  schemaVersion: "1.0";
1004
1011
  };
1005
1012
  answer: string;
1013
+ } | {
1014
+ type: "boolean";
1015
+ meta: {
1016
+ schemaVersion: "1.0";
1017
+ };
1018
+ answer: boolean;
1006
1019
  } | {
1007
1020
  type: "checkBoxes";
1008
1021
  meta: {
@@ -1022,13 +1035,13 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
1022
1035
  };
1023
1036
  answer: string[];
1024
1037
  } | {
1025
- type: "boolean";
1038
+ type: "currency";
1026
1039
  meta: {
1027
1040
  schemaVersion: "1.0";
1028
1041
  };
1029
- answer: boolean;
1042
+ answer: number;
1030
1043
  } | {
1031
- type: "currency";
1044
+ type: "number";
1032
1045
  meta: {
1033
1046
  schemaVersion: "1.0";
1034
1047
  };
@@ -1039,12 +1052,6 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
1039
1052
  schemaVersion: "1.0";
1040
1053
  };
1041
1054
  answer: string;
1042
- } | {
1043
- type: "number";
1044
- meta: {
1045
- schemaVersion: "1.0";
1046
- };
1047
- answer: number;
1048
1055
  } | {
1049
1056
  type: "text";
1050
1057
  meta: {
@@ -1101,6 +1108,12 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
1101
1108
  schemaVersion: "1.0";
1102
1109
  };
1103
1110
  answer: string;
1111
+ } | {
1112
+ type: "boolean";
1113
+ meta: {
1114
+ schemaVersion: "1.0";
1115
+ };
1116
+ answer: boolean;
1104
1117
  } | {
1105
1118
  type: "checkBoxes";
1106
1119
  meta: {
@@ -1120,13 +1133,13 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
1120
1133
  };
1121
1134
  answer: string[];
1122
1135
  } | {
1123
- type: "boolean";
1136
+ type: "currency";
1124
1137
  meta: {
1125
1138
  schemaVersion: "1.0";
1126
1139
  };
1127
- answer: boolean;
1140
+ answer: number;
1128
1141
  } | {
1129
- type: "currency";
1142
+ type: "number";
1130
1143
  meta: {
1131
1144
  schemaVersion: "1.0";
1132
1145
  };
@@ -1137,12 +1150,6 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
1137
1150
  schemaVersion: "1.0";
1138
1151
  };
1139
1152
  answer: string;
1140
- } | {
1141
- type: "number";
1142
- meta: {
1143
- schemaVersion: "1.0";
1144
- };
1145
- answer: number;
1146
1153
  } | {
1147
1154
  type: "text";
1148
1155
  meta: {
@@ -1259,3 +1266,21 @@ export declare const AnyAnswerSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
1259
1266
  }>]>;
1260
1267
  export declare const AnswerSchemaMap: Record<z.infer<typeof QuestionTypesEnum>, z.ZodTypeAny>;
1261
1268
  export type AnyAnswerType = z.infer<typeof AnyAnswerSchema>;
1269
+ export interface AnswerTypeMap {
1270
+ boolean: BooleanAnswerType;
1271
+ checkBoxes: CheckboxesAnswerType;
1272
+ currency: CurrencyAnswerType;
1273
+ date: DateAnswerType;
1274
+ dateRange: DateRangeAnswerType;
1275
+ email: EmailAnswerType;
1276
+ filteredSearch: FilteredSearchAnswerType;
1277
+ number: NumberAnswerType;
1278
+ numberRange: NumberRangeAnswerType;
1279
+ radioButtons: RadioButtonsAnswerType;
1280
+ selectBox: SelectBoxAnswerType;
1281
+ table: TableAnswerType;
1282
+ text: TextAnswerType;
1283
+ textArea: TextAreaAnswerType;
1284
+ typeaheadSearch: TypeaheadSearchAnswerType;
1285
+ url: URLAnswerType;
1286
+ }
@@ -19,49 +19,51 @@ const zod_1 = require("zod");
19
19
  const dateAnswers_1 = require("./dateAnswers");
20
20
  const graphQLAnswers_1 = require("./graphQLAnswers");
21
21
  const optionBasedAnswers_1 = require("./optionBasedAnswers");
22
- const primitiveAnswers_1 = require("./primitiveAnswers");
22
+ const numberAnswers_1 = require("./numberAnswers");
23
23
  const tableAnswers_1 = require("./tableAnswers");
24
+ const textAnswers_1 = require("./textAnswers");
24
25
  // reexport everything
25
26
  __exportStar(require("./answer"), exports);
26
27
  __exportStar(require("./dateAnswers"), exports);
27
28
  __exportStar(require("./graphQLAnswers"), exports);
29
+ __exportStar(require("./numberAnswers"), exports);
28
30
  __exportStar(require("./optionBasedAnswers"), exports);
29
- __exportStar(require("./primitiveAnswers"), exports);
30
31
  __exportStar(require("./tableAnswers"), exports);
32
+ __exportStar(require("./textAnswers"), exports);
31
33
  // Union of all possible answers
32
34
  exports.AnyAnswerSchema = zod_1.z.discriminatedUnion('type', [
33
- primitiveAnswers_1.BooleanAnswerSchema,
35
+ optionBasedAnswers_1.BooleanAnswerSchema,
34
36
  optionBasedAnswers_1.CheckboxesAnswerSchema,
35
- primitiveAnswers_1.CurrencyAnswerSchema,
37
+ numberAnswers_1.CurrencyAnswerSchema,
36
38
  dateAnswers_1.DateAnswerSchema,
37
39
  dateAnswers_1.DateRangeAnswerSchema,
38
- primitiveAnswers_1.EmailAnswerSchema,
40
+ textAnswers_1.EmailAnswerSchema,
39
41
  graphQLAnswers_1.FilteredSearchAnswerSchema,
40
- primitiveAnswers_1.NumberAnswerSchema,
42
+ numberAnswers_1.NumberAnswerSchema,
41
43
  optionBasedAnswers_1.RadioButtonsAnswerSchema,
42
44
  optionBasedAnswers_1.SelectBoxAnswerSchema,
43
45
  tableAnswers_1.TableAnswerSchema,
44
- primitiveAnswers_1.TextAnswerSchema,
45
- primitiveAnswers_1.TextAreaAnswerSchema,
46
+ textAnswers_1.TextAnswerSchema,
47
+ textAnswers_1.TextAreaAnswerSchema,
46
48
  graphQLAnswers_1.TypeaheadSearchAnswerSchema,
47
- primitiveAnswers_1.URLAnswerSchema
49
+ textAnswers_1.URLAnswerSchema
48
50
  ]);
49
51
  // Export a mapping between question types and their corresponding answer schemas
50
52
  exports.AnswerSchemaMap = {
51
- boolean: primitiveAnswers_1.BooleanAnswerSchema,
53
+ boolean: optionBasedAnswers_1.BooleanAnswerSchema,
52
54
  checkBoxes: optionBasedAnswers_1.CheckboxesAnswerSchema,
53
- currency: primitiveAnswers_1.CurrencyAnswerSchema,
55
+ currency: numberAnswers_1.CurrencyAnswerSchema,
54
56
  date: dateAnswers_1.DateAnswerSchema,
55
57
  dateRange: dateAnswers_1.DateRangeAnswerSchema,
56
- email: primitiveAnswers_1.EmailAnswerSchema,
58
+ email: textAnswers_1.EmailAnswerSchema,
57
59
  filteredSearch: graphQLAnswers_1.FilteredSearchAnswerSchema,
58
- number: primitiveAnswers_1.NumberAnswerSchema,
59
- numberRange: primitiveAnswers_1.NumberRangeAnswerSchema,
60
+ number: numberAnswers_1.NumberAnswerSchema,
61
+ numberRange: numberAnswers_1.NumberRangeAnswerSchema,
60
62
  radioButtons: optionBasedAnswers_1.RadioButtonsAnswerSchema,
61
63
  selectBox: optionBasedAnswers_1.SelectBoxAnswerSchema,
62
64
  table: tableAnswers_1.TableAnswerSchema,
63
- text: primitiveAnswers_1.TextAnswerSchema,
64
- textArea: primitiveAnswers_1.TextAreaAnswerSchema,
65
+ text: textAnswers_1.TextAnswerSchema,
66
+ textArea: textAnswers_1.TextAreaAnswerSchema,
65
67
  typeaheadSearch: graphQLAnswers_1.TypeaheadSearchAnswerSchema,
66
- url: primitiveAnswers_1.URLAnswerSchema
68
+ url: textAnswers_1.URLAnswerSchema
67
69
  };
@@ -0,0 +1,91 @@
1
+ import { z } from 'zod';
2
+ export declare const CurrencyAnswerSchema: z.ZodObject<{
3
+ meta: z.ZodObject<{
4
+ schemaVersion: z.ZodLiteral<"1.0">;
5
+ }, "strip", z.ZodTypeAny, {
6
+ schemaVersion: "1.0";
7
+ }, {
8
+ schemaVersion: "1.0";
9
+ }>;
10
+ } & {
11
+ type: z.ZodLiteral<"currency">;
12
+ answer: z.ZodNumber;
13
+ }, "strip", z.ZodTypeAny, {
14
+ type: "currency";
15
+ meta: {
16
+ schemaVersion: "1.0";
17
+ };
18
+ answer: number;
19
+ }, {
20
+ type: "currency";
21
+ meta: {
22
+ schemaVersion: "1.0";
23
+ };
24
+ answer: number;
25
+ }>;
26
+ export declare const NumberAnswerSchema: z.ZodObject<{
27
+ meta: z.ZodObject<{
28
+ schemaVersion: z.ZodLiteral<"1.0">;
29
+ }, "strip", z.ZodTypeAny, {
30
+ schemaVersion: "1.0";
31
+ }, {
32
+ schemaVersion: "1.0";
33
+ }>;
34
+ } & {
35
+ type: z.ZodLiteral<"number">;
36
+ answer: z.ZodNumber;
37
+ }, "strip", z.ZodTypeAny, {
38
+ type: "number";
39
+ meta: {
40
+ schemaVersion: "1.0";
41
+ };
42
+ answer: number;
43
+ }, {
44
+ type: "number";
45
+ meta: {
46
+ schemaVersion: "1.0";
47
+ };
48
+ answer: number;
49
+ }>;
50
+ export declare const NumberRangeAnswerSchema: z.ZodObject<{
51
+ meta: z.ZodObject<{
52
+ schemaVersion: z.ZodLiteral<"1.0">;
53
+ }, "strip", z.ZodTypeAny, {
54
+ schemaVersion: "1.0";
55
+ }, {
56
+ schemaVersion: "1.0";
57
+ }>;
58
+ } & {
59
+ type: z.ZodLiteral<"numberRange">;
60
+ answer: z.ZodObject<{
61
+ start: z.ZodNumber;
62
+ end: z.ZodNumber;
63
+ }, "strip", z.ZodTypeAny, {
64
+ start: number;
65
+ end: number;
66
+ }, {
67
+ start: number;
68
+ end: number;
69
+ }>;
70
+ }, "strip", z.ZodTypeAny, {
71
+ type: "numberRange";
72
+ meta: {
73
+ schemaVersion: "1.0";
74
+ };
75
+ answer: {
76
+ start: number;
77
+ end: number;
78
+ };
79
+ }, {
80
+ type: "numberRange";
81
+ meta: {
82
+ schemaVersion: "1.0";
83
+ };
84
+ answer: {
85
+ start: number;
86
+ end: number;
87
+ };
88
+ }>;
89
+ export type CurrencyAnswerType = z.infer<typeof CurrencyAnswerSchema>;
90
+ export type NumberAnswerType = z.infer<typeof NumberAnswerSchema>;
91
+ export type NumberRangeAnswerType = z.infer<typeof NumberRangeAnswerSchema>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NumberRangeAnswerSchema = exports.NumberAnswerSchema = exports.CurrencyAnswerSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const answer_1 = require("./answer");
6
+ // Answers to Number Question Types
7
+ exports.CurrencyAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
8
+ type: zod_1.z.literal('currency'), // The type of answer
9
+ answer: zod_1.z.number() // The answer to the question (number)
10
+ }));
11
+ exports.NumberAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
12
+ type: zod_1.z.literal('number'), // The type of answer
13
+ answer: zod_1.z.number() // The answer to the question (number)
14
+ }));
15
+ exports.NumberRangeAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
16
+ type: zod_1.z.literal('numberRange'), // The type of answer
17
+ answer: zod_1.z.object({
18
+ start: zod_1.z.number(), // The start number (number)
19
+ end: zod_1.z.number() // The end number (number)
20
+ })
21
+ }));
@@ -1,4 +1,28 @@
1
1
  import { z } from 'zod';
2
+ export declare const BooleanAnswerSchema: z.ZodObject<{
3
+ meta: z.ZodObject<{
4
+ schemaVersion: z.ZodLiteral<"1.0">;
5
+ }, "strip", z.ZodTypeAny, {
6
+ schemaVersion: "1.0";
7
+ }, {
8
+ schemaVersion: "1.0";
9
+ }>;
10
+ } & {
11
+ type: z.ZodLiteral<"boolean">;
12
+ answer: z.ZodBoolean;
13
+ }, "strip", z.ZodTypeAny, {
14
+ type: "boolean";
15
+ meta: {
16
+ schemaVersion: "1.0";
17
+ };
18
+ answer: boolean;
19
+ }, {
20
+ type: "boolean";
21
+ meta: {
22
+ schemaVersion: "1.0";
23
+ };
24
+ answer: boolean;
25
+ }>;
2
26
  export declare const CheckboxesAnswerSchema: z.ZodObject<{
3
27
  meta: z.ZodObject<{
4
28
  schemaVersion: z.ZodLiteral<"1.0">;
@@ -71,6 +95,7 @@ export declare const SelectBoxAnswerSchema: z.ZodObject<{
71
95
  };
72
96
  answer: string[];
73
97
  }>;
98
+ export type BooleanAnswerType = z.infer<typeof BooleanAnswerSchema>;
74
99
  export type CheckboxesAnswerType = z.infer<typeof CheckboxesAnswerSchema>;
75
100
  export type RadioButtonsAnswerType = z.infer<typeof RadioButtonsAnswerSchema>;
76
101
  export type SelectBoxAnswerType = z.infer<typeof SelectBoxAnswerSchema>;
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SelectBoxAnswerSchema = exports.RadioButtonsAnswerSchema = exports.CheckboxesAnswerSchema = void 0;
3
+ exports.SelectBoxAnswerSchema = exports.RadioButtonsAnswerSchema = exports.CheckboxesAnswerSchema = exports.BooleanAnswerSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const answer_1 = require("./answer");
6
6
  // Answers to Option Based Question Types
7
+ exports.BooleanAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
8
+ type: zod_1.z.literal('boolean'), // The type of answer
9
+ answer: zod_1.z.boolean() // The answer to the question (true/false)
10
+ }));
7
11
  exports.CheckboxesAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
8
12
  type: zod_1.z.literal('checkBoxes'), // The type of answer
9
13
  answer: zod_1.z.array(zod_1.z.string()) // The answer to the question (array of strings)