@dmptool/types 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/answers/__tests__/answers.spec.js +18 -17
  2. package/dist/answers/index.d.ts +50 -25
  3. package/dist/answers/index.js +19 -17
  4. package/dist/answers/{primitiveAnswers.d.ts → numberAnswers.d.ts} +1 -100
  5. package/dist/answers/numberAnswers.js +25 -0
  6. package/dist/answers/tableAnswers.d.ts +48 -48
  7. package/dist/answers/tableAnswers.js +9 -8
  8. package/dist/answers/textAnswers.d.ts +101 -0
  9. package/dist/answers/textAnswers.js +22 -0
  10. package/dist/questions/__tests__/dateQuestions.spec.js +20 -74
  11. package/dist/questions/__tests__/graphQLQuestions.spec.js +6 -0
  12. package/dist/questions/__tests__/numberQuestions.spec.js +156 -0
  13. package/dist/questions/__tests__/optionBasedQuestions.spec.js +41 -54
  14. package/dist/questions/__tests__/tableQuestion.spec.js +2 -0
  15. package/dist/questions/__tests__/textQuestions.spec.d.ts +1 -0
  16. package/dist/questions/__tests__/textQuestions.spec.js +120 -0
  17. package/dist/questions/dateQuestions.d.ts +159 -178
  18. package/dist/questions/dateQuestions.js +9 -15
  19. package/dist/questions/graphQLQuestions.d.ts +67 -38
  20. package/dist/questions/graphQLQuestions.js +3 -2
  21. package/dist/questions/index.d.ts +1616 -1356
  22. package/dist/questions/index.js +21 -19
  23. package/dist/questions/numberQuestions.d.ts +343 -0
  24. package/dist/questions/numberQuestions.js +34 -0
  25. package/dist/questions/optionBasedQuestions.d.ts +136 -158
  26. package/dist/questions/optionBasedQuestions.js +11 -20
  27. package/dist/questions/question.d.ts +29 -11
  28. package/dist/questions/question.js +10 -4
  29. package/dist/questions/tableQuestions.d.ts +2377 -2030
  30. package/dist/questions/tableQuestions.js +12 -10
  31. package/dist/questions/textQuestions.d.ts +261 -0
  32. package/dist/questions/textQuestions.js +42 -0
  33. package/dist/schemas/anyQuestion.schema.json +237 -239
  34. package/dist/schemas/anyTableColumnQuestion.schema.json +207 -217
  35. package/dist/schemas/booleanQuestion.schema.json +17 -12
  36. package/dist/schemas/checkboxesQuestion.schema.json +24 -27
  37. package/dist/schemas/currencyQuestion.schema.json +23 -18
  38. package/dist/schemas/dateQuestion.schema.json +21 -16
  39. package/dist/schemas/dateRangeQuestion.schema.json +31 -56
  40. package/dist/schemas/emailQuestion.schema.json +24 -19
  41. package/dist/schemas/filteredSearchQuestion.schema.json +18 -13
  42. package/dist/schemas/numberQuestion.schema.json +21 -16
  43. package/dist/schemas/numberRangeQuestion.schema.json +31 -56
  44. package/dist/schemas/radioButtonsQuestion.schema.json +24 -27
  45. package/dist/schemas/selectBoxQuestion.schema.json +27 -36
  46. package/dist/schemas/tableQuestion.schema.json +233 -235
  47. package/dist/schemas/textAreaQuestion.schema.json +22 -16
  48. package/dist/schemas/textQuestion.schema.json +21 -16
  49. package/dist/schemas/typeaheadSearchQuestion.schema.json +15 -4
  50. package/dist/schemas/urlQuestion.schema.json +21 -16
  51. package/package.json +1 -1
  52. package/dist/answers/primitiveAnswers.js +0 -41
  53. package/dist/questions/__tests__/primitiveQuestions.spec.js +0 -281
  54. package/dist/questions/primitiveQuestions.d.ts +0 -554
  55. package/dist/questions/primitiveQuestions.js +0 -86
  56. /package/dist/questions/__tests__/{primitiveQuestions.spec.d.ts → numberQuestions.spec.d.ts} +0 -0
@@ -737,17 +737,17 @@ export declare const TableColumnAnswerSchema: z.ZodObject<{
737
737
  };
738
738
  answer: number;
739
739
  } | {
740
- type: "email";
740
+ type: "number";
741
741
  meta: {
742
742
  schemaVersion: "1.0";
743
743
  };
744
- answer: string;
744
+ answer: number;
745
745
  } | {
746
- type: "number";
746
+ type: "email";
747
747
  meta: {
748
748
  schemaVersion: "1.0";
749
749
  };
750
- answer: number;
750
+ answer: string;
751
751
  } | {
752
752
  type: "text";
753
753
  meta: {
@@ -827,17 +827,17 @@ export declare const TableColumnAnswerSchema: z.ZodObject<{
827
827
  };
828
828
  answer: number;
829
829
  } | {
830
- type: "email";
830
+ type: "number";
831
831
  meta: {
832
832
  schemaVersion: "1.0";
833
833
  };
834
- answer: string;
834
+ answer: number;
835
835
  } | {
836
- type: "number";
836
+ type: "email";
837
837
  meta: {
838
838
  schemaVersion: "1.0";
839
839
  };
840
- answer: number;
840
+ answer: string;
841
841
  } | {
842
842
  type: "text";
843
843
  meta: {
@@ -1259,17 +1259,17 @@ export declare const TableRowAnswerSchema: z.ZodObject<{
1259
1259
  };
1260
1260
  answer: number;
1261
1261
  } | {
1262
- type: "email";
1262
+ type: "number";
1263
1263
  meta: {
1264
1264
  schemaVersion: "1.0";
1265
1265
  };
1266
- answer: string;
1266
+ answer: number;
1267
1267
  } | {
1268
- type: "number";
1268
+ type: "email";
1269
1269
  meta: {
1270
1270
  schemaVersion: "1.0";
1271
1271
  };
1272
- answer: number;
1272
+ answer: string;
1273
1273
  } | {
1274
1274
  type: "text";
1275
1275
  meta: {
@@ -1349,17 +1349,17 @@ export declare const TableRowAnswerSchema: z.ZodObject<{
1349
1349
  };
1350
1350
  answer: number;
1351
1351
  } | {
1352
- type: "email";
1352
+ type: "number";
1353
1353
  meta: {
1354
1354
  schemaVersion: "1.0";
1355
1355
  };
1356
- answer: string;
1356
+ answer: number;
1357
1357
  } | {
1358
- type: "number";
1358
+ type: "email";
1359
1359
  meta: {
1360
1360
  schemaVersion: "1.0";
1361
1361
  };
1362
- answer: number;
1362
+ answer: string;
1363
1363
  } | {
1364
1364
  type: "text";
1365
1365
  meta: {
@@ -1441,17 +1441,17 @@ export declare const TableRowAnswerSchema: z.ZodObject<{
1441
1441
  };
1442
1442
  answer: number;
1443
1443
  } | {
1444
- type: "email";
1444
+ type: "number";
1445
1445
  meta: {
1446
1446
  schemaVersion: "1.0";
1447
1447
  };
1448
- answer: string;
1448
+ answer: number;
1449
1449
  } | {
1450
- type: "number";
1450
+ type: "email";
1451
1451
  meta: {
1452
1452
  schemaVersion: "1.0";
1453
1453
  };
1454
- answer: number;
1454
+ answer: string;
1455
1455
  } | {
1456
1456
  type: "text";
1457
1457
  meta: {
@@ -1533,17 +1533,17 @@ export declare const TableRowAnswerSchema: z.ZodObject<{
1533
1533
  };
1534
1534
  answer: number;
1535
1535
  } | {
1536
- type: "email";
1536
+ type: "number";
1537
1537
  meta: {
1538
1538
  schemaVersion: "1.0";
1539
1539
  };
1540
- answer: string;
1540
+ answer: number;
1541
1541
  } | {
1542
- type: "number";
1542
+ type: "email";
1543
1543
  meta: {
1544
1544
  schemaVersion: "1.0";
1545
1545
  };
1546
- answer: number;
1546
+ answer: string;
1547
1547
  } | {
1548
1548
  type: "text";
1549
1549
  meta: {
@@ -1976,17 +1976,17 @@ export declare const TableAnswerSchema: z.ZodObject<{
1976
1976
  };
1977
1977
  answer: number;
1978
1978
  } | {
1979
- type: "email";
1979
+ type: "number";
1980
1980
  meta: {
1981
1981
  schemaVersion: "1.0";
1982
1982
  };
1983
- answer: string;
1983
+ answer: number;
1984
1984
  } | {
1985
- type: "number";
1985
+ type: "email";
1986
1986
  meta: {
1987
1987
  schemaVersion: "1.0";
1988
1988
  };
1989
- answer: number;
1989
+ answer: string;
1990
1990
  } | {
1991
1991
  type: "text";
1992
1992
  meta: {
@@ -2066,17 +2066,17 @@ export declare const TableAnswerSchema: z.ZodObject<{
2066
2066
  };
2067
2067
  answer: number;
2068
2068
  } | {
2069
- type: "email";
2069
+ type: "number";
2070
2070
  meta: {
2071
2071
  schemaVersion: "1.0";
2072
2072
  };
2073
- answer: string;
2073
+ answer: number;
2074
2074
  } | {
2075
- type: "number";
2075
+ type: "email";
2076
2076
  meta: {
2077
2077
  schemaVersion: "1.0";
2078
2078
  };
2079
- answer: number;
2079
+ answer: string;
2080
2080
  } | {
2081
2081
  type: "text";
2082
2082
  meta: {
@@ -2158,17 +2158,17 @@ export declare const TableAnswerSchema: z.ZodObject<{
2158
2158
  };
2159
2159
  answer: number;
2160
2160
  } | {
2161
- type: "email";
2161
+ type: "number";
2162
2162
  meta: {
2163
2163
  schemaVersion: "1.0";
2164
2164
  };
2165
- answer: string;
2165
+ answer: number;
2166
2166
  } | {
2167
- type: "number";
2167
+ type: "email";
2168
2168
  meta: {
2169
2169
  schemaVersion: "1.0";
2170
2170
  };
2171
- answer: number;
2171
+ answer: string;
2172
2172
  } | {
2173
2173
  type: "text";
2174
2174
  meta: {
@@ -2250,17 +2250,17 @@ export declare const TableAnswerSchema: z.ZodObject<{
2250
2250
  };
2251
2251
  answer: number;
2252
2252
  } | {
2253
- type: "email";
2253
+ type: "number";
2254
2254
  meta: {
2255
2255
  schemaVersion: "1.0";
2256
2256
  };
2257
- answer: string;
2257
+ answer: number;
2258
2258
  } | {
2259
- type: "number";
2259
+ type: "email";
2260
2260
  meta: {
2261
2261
  schemaVersion: "1.0";
2262
2262
  };
2263
- answer: number;
2263
+ answer: string;
2264
2264
  } | {
2265
2265
  type: "text";
2266
2266
  meta: {
@@ -2348,17 +2348,17 @@ export declare const TableAnswerSchema: z.ZodObject<{
2348
2348
  };
2349
2349
  answer: number;
2350
2350
  } | {
2351
- type: "email";
2351
+ type: "number";
2352
2352
  meta: {
2353
2353
  schemaVersion: "1.0";
2354
2354
  };
2355
- answer: string;
2355
+ answer: number;
2356
2356
  } | {
2357
- type: "number";
2357
+ type: "email";
2358
2358
  meta: {
2359
2359
  schemaVersion: "1.0";
2360
2360
  };
2361
- answer: number;
2361
+ answer: string;
2362
2362
  } | {
2363
2363
  type: "text";
2364
2364
  meta: {
@@ -2446,17 +2446,17 @@ export declare const TableAnswerSchema: z.ZodObject<{
2446
2446
  };
2447
2447
  answer: number;
2448
2448
  } | {
2449
- type: "email";
2449
+ type: "number";
2450
2450
  meta: {
2451
2451
  schemaVersion: "1.0";
2452
2452
  };
2453
- answer: string;
2453
+ answer: number;
2454
2454
  } | {
2455
- type: "number";
2455
+ type: "email";
2456
2456
  meta: {
2457
2457
  schemaVersion: "1.0";
2458
2458
  };
2459
- answer: number;
2459
+ answer: string;
2460
2460
  } | {
2461
2461
  type: "text";
2462
2462
  meta: {
@@ -6,23 +6,24 @@ const answer_1 = require("./answer");
6
6
  const optionBasedAnswers_1 = require("./optionBasedAnswers");
7
7
  const dateAnswers_1 = require("./dateAnswers");
8
8
  const graphQLAnswers_1 = require("./graphQLAnswers");
9
- const primitiveAnswers_1 = require("./primitiveAnswers");
9
+ const numberAnswers_1 = require("./numberAnswers");
10
+ const textAnswers_1 = require("./textAnswers");
10
11
  // Answers to Table Column Question Types (note that TableAnswer is not included here because we don't allow nested tables)
11
12
  exports.AnyTableColumnAnswerSchema = zod_1.z.discriminatedUnion('type', [
12
- primitiveAnswers_1.BooleanAnswerSchema,
13
+ numberAnswers_1.BooleanAnswerSchema,
13
14
  optionBasedAnswers_1.CheckboxesAnswerSchema,
14
- primitiveAnswers_1.CurrencyAnswerSchema,
15
+ numberAnswers_1.CurrencyAnswerSchema,
15
16
  dateAnswers_1.DateAnswerSchema,
16
17
  dateAnswers_1.DateRangeAnswerSchema,
17
- primitiveAnswers_1.EmailAnswerSchema,
18
+ textAnswers_1.EmailAnswerSchema,
18
19
  graphQLAnswers_1.FilteredSearchAnswerSchema,
19
- primitiveAnswers_1.NumberAnswerSchema,
20
+ numberAnswers_1.NumberAnswerSchema,
20
21
  optionBasedAnswers_1.RadioButtonsAnswerSchema,
21
22
  optionBasedAnswers_1.SelectBoxAnswerSchema,
22
- primitiveAnswers_1.TextAnswerSchema,
23
- primitiveAnswers_1.TextAreaAnswerSchema,
23
+ textAnswers_1.TextAnswerSchema,
24
+ textAnswers_1.TextAreaAnswerSchema,
24
25
  graphQLAnswers_1.TypeaheadSearchAnswerSchema,
25
- primitiveAnswers_1.URLAnswerSchema
26
+ textAnswers_1.URLAnswerSchema
26
27
  ]);
27
28
  exports.TableColumnAnswerSchema = zod_1.z.object({
28
29
  heading: zod_1.z.string(), // The heading of the column
@@ -0,0 +1,101 @@
1
+ import { z } from 'zod';
2
+ export declare const EmailAnswerSchema: 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<"email">;
12
+ answer: z.ZodString;
13
+ }, "strip", z.ZodTypeAny, {
14
+ type: "email";
15
+ meta: {
16
+ schemaVersion: "1.0";
17
+ };
18
+ answer: string;
19
+ }, {
20
+ type: "email";
21
+ meta: {
22
+ schemaVersion: "1.0";
23
+ };
24
+ answer: string;
25
+ }>;
26
+ export declare const TextAnswerSchema: 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<"text">;
36
+ answer: z.ZodString;
37
+ }, "strip", z.ZodTypeAny, {
38
+ type: "text";
39
+ meta: {
40
+ schemaVersion: "1.0";
41
+ };
42
+ answer: string;
43
+ }, {
44
+ type: "text";
45
+ meta: {
46
+ schemaVersion: "1.0";
47
+ };
48
+ answer: string;
49
+ }>;
50
+ export declare const TextAreaAnswerSchema: 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<"textArea">;
60
+ answer: z.ZodString;
61
+ }, "strip", z.ZodTypeAny, {
62
+ type: "textArea";
63
+ meta: {
64
+ schemaVersion: "1.0";
65
+ };
66
+ answer: string;
67
+ }, {
68
+ type: "textArea";
69
+ meta: {
70
+ schemaVersion: "1.0";
71
+ };
72
+ answer: string;
73
+ }>;
74
+ export declare const URLAnswerSchema: z.ZodObject<{
75
+ meta: z.ZodObject<{
76
+ schemaVersion: z.ZodLiteral<"1.0">;
77
+ }, "strip", z.ZodTypeAny, {
78
+ schemaVersion: "1.0";
79
+ }, {
80
+ schemaVersion: "1.0";
81
+ }>;
82
+ } & {
83
+ type: z.ZodLiteral<"url">;
84
+ answer: z.ZodString;
85
+ }, "strip", z.ZodTypeAny, {
86
+ type: "url";
87
+ meta: {
88
+ schemaVersion: "1.0";
89
+ };
90
+ answer: string;
91
+ }, {
92
+ type: "url";
93
+ meta: {
94
+ schemaVersion: "1.0";
95
+ };
96
+ answer: string;
97
+ }>;
98
+ export type EmailAnswerType = z.infer<typeof EmailAnswerSchema>;
99
+ export type TextAnswerType = z.infer<typeof TextAnswerSchema>;
100
+ export type TextAreaAnswerType = z.infer<typeof TextAreaAnswerSchema>;
101
+ export type URLAnswerType = z.infer<typeof URLAnswerSchema>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.URLAnswerSchema = exports.TextAreaAnswerSchema = exports.TextAnswerSchema = exports.EmailAnswerSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const answer_1 = require("./answer");
6
+ // Answers to Text Based Question Types
7
+ exports.EmailAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
8
+ type: zod_1.z.literal('email'), // The type of question
9
+ answer: zod_1.z.string() // The answer to the question (string)
10
+ }));
11
+ exports.TextAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
12
+ type: zod_1.z.literal('text'), // The type of answer
13
+ answer: zod_1.z.string() // The answer to the question (string)
14
+ }));
15
+ exports.TextAreaAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
16
+ type: zod_1.z.literal('textArea'), // The type of answer
17
+ answer: zod_1.z.string() // The answer to the question (string)
18
+ }));
19
+ exports.URLAnswerSchema = answer_1.AnswerSchema.merge(zod_1.z.object({
20
+ type: zod_1.z.literal('url'), // The type of answer
21
+ answer: zod_1.z.string() // The answer to the question (string)
22
+ }));
@@ -6,6 +6,8 @@ describe("DateQuestion", () => {
6
6
  const validDate = {
7
7
  type: "date",
8
8
  attributes: {
9
+ label: "Date",
10
+ help: "Enter a date",
9
11
  max: "2023-12-31",
10
12
  min: "2023-01-01",
11
13
  step: 1,
@@ -47,28 +49,18 @@ describe("DateRangeQuestion", () => {
47
49
  type: "dateRange",
48
50
  columns: {
49
51
  start: {
50
- type: "date",
51
- attributes: {
52
- label: "Start Date",
53
- max: "2023-12-31",
54
- min: "2023-01-01",
55
- step: 1,
56
- },
57
- meta: {
58
- schemaVersion: "1.0"
59
- }
52
+ label: "Start Date",
53
+ help: "Enter a date",
54
+ max: "2023-12-31",
55
+ min: "2023-01-01",
56
+ step: 1,
60
57
  },
61
58
  end: {
62
- type: "date",
63
- attributes: {
64
- label: "End Date",
65
- max: "2023-12-31",
66
- min: "2023-01-01",
67
- step: 1,
68
- },
69
- meta: {
70
- schemaVersion: "1.0"
71
- }
59
+ label: "End Date",
60
+ help: "Enter a date",
61
+ max: "2023-12-31",
62
+ min: "2023-01-01",
63
+ step: 1,
72
64
  },
73
65
  },
74
66
  meta: {
@@ -82,62 +74,16 @@ describe("DateRangeQuestion", () => {
82
74
  type: "dateRange",
83
75
  columns: {
84
76
  start: {
85
- type: "date",
86
- attributes: {
87
- label: "Start Date",
88
- max: "2023-12-31",
89
- min: "2023-01-01",
90
- step: 1,
91
- },
92
- meta: {
93
- schemaVersion: "1.0"
94
- }
77
+ label: "Start Date",
78
+ max: "2023-12-31",
79
+ min: "2023-01-01",
80
+ step: 1,
95
81
  },
96
82
  end: {
97
- type: "date",
98
- attributes: {
99
- label: 123, // Invalid type for label
100
- max: "2023-12-31",
101
- min: "2023-01-01",
102
- step: 1,
103
- },
104
- meta: {
105
- schemaVersion: "1.0"
106
- }
107
- },
108
- },
109
- meta: {
110
- schemaVersion: "1.0"
111
- }
112
- };
113
- expect(() => dateQuestions_1.DateRangeQuestionSchema.parse(invalidDateRange)).toThrow();
114
- });
115
- it("should require labels for start and end dates", () => {
116
- const invalidDateRange = {
117
- type: "dateRange",
118
- columns: {
119
- start: {
120
- type: "date",
121
- attributes: {
122
- max: "2023-12-31",
123
- min: "2023-01-01",
124
- step: 1,
125
- },
126
- meta: {
127
- schemaVersion: "1.0"
128
- }
129
- },
130
- end: {
131
- type: "date",
132
- attributes: {
133
- label: "End Date",
134
- max: "2023-12-31",
135
- min: "2023-01-01",
136
- step: 1,
137
- },
138
- meta: {
139
- schemaVersion: "1.0"
140
- }
83
+ label: 123, // Invalid type for label
84
+ max: "2023-12-31",
85
+ min: "2023-01-01",
86
+ step: 1,
141
87
  },
142
88
  },
143
89
  meta: {
@@ -19,6 +19,8 @@ const graphQLQuestions_1 = require("../graphQLQuestions");
19
19
  ],
20
20
  },
21
21
  attributes: {
22
+ label: "Search",
23
+ help: "Search for a user",
22
24
  multiple: true,
23
25
  },
24
26
  meta: {
@@ -53,6 +55,10 @@ const graphQLQuestions_1 = require("../graphQLQuestions");
53
55
  (0, globals_1.it)("should validate a correct TypeaheadSearchQuestion object", () => {
54
56
  const validData = {
55
57
  type: "typeaheadSearch",
58
+ attributes: {
59
+ label: "Search",
60
+ help: "Search for a user",
61
+ },
56
62
  graphQL: {
57
63
  displayFields: [
58
64
  { propertyName: "title", label: "Title" },