@dmptool/types 1.2.6 → 2.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 (103) hide show
  1. package/README.md +1 -1
  2. package/dist/answers/__tests__/defaults.spec.js +216 -0
  3. package/dist/answers/answer.d.ts +29 -14
  4. package/dist/answers/answer.js +11 -5
  5. package/dist/answers/dateAnswers.d.ts +20 -47
  6. package/dist/answers/dateAnswers.js +20 -10
  7. package/dist/answers/graphQLAnswers.d.ts +48 -120
  8. package/dist/answers/graphQLAnswers.js +46 -21
  9. package/dist/answers/index.d.ts +155 -1439
  10. package/dist/answers/index.js +26 -1
  11. package/dist/answers/numberAnswers.d.ts +38 -92
  12. package/dist/answers/numberAnswers.js +38 -19
  13. package/dist/answers/optionBasedAnswers.d.ts +42 -87
  14. package/dist/answers/optionBasedAnswers.js +37 -21
  15. package/dist/answers/tableAnswers.d.ts +348 -3032
  16. package/dist/answers/tableAnswers.js +25 -61
  17. package/dist/answers/textAnswers.d.ts +32 -68
  18. package/dist/answers/textAnswers.js +30 -17
  19. package/dist/dmp/__tests__/commonStandard.spec.d.ts +1 -0
  20. package/dist/dmp/__tests__/commonStandard.spec.js +210 -0
  21. package/dist/dmp/__tests__/extensions.spec.d.ts +1 -0
  22. package/dist/dmp/__tests__/extensions.spec.js +99 -0
  23. package/dist/dmp/extension.d.ts +1006 -0
  24. package/dist/dmp/extension.js +234 -0
  25. package/dist/dmp/index.d.ts +9 -0
  26. package/dist/dmp/index.js +23 -0
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.js +1 -0
  29. package/dist/questions/__tests__/dateQuestions.spec.js +3 -0
  30. package/dist/questions/__tests__/defaults.spec.d.ts +1 -0
  31. package/dist/questions/__tests__/defaults.spec.js +668 -0
  32. package/dist/questions/__tests__/optionBasedQuestions.spec.js +3 -2
  33. package/dist/questions/__tests__/tableQuestion.spec.js +22 -23
  34. package/dist/questions/__tests__/textQuestions.spec.js +32 -0
  35. package/dist/questions/dateQuestions.d.ts +45 -191
  36. package/dist/questions/dateQuestions.js +26 -23
  37. package/dist/questions/graphQLQuestions.d.ts +262 -556
  38. package/dist/questions/graphQLQuestions.js +225 -223
  39. package/dist/questions/index.d.ts +670 -7441
  40. package/dist/questions/index.js +26 -1
  41. package/dist/questions/numberQuestions.d.ts +85 -331
  42. package/dist/questions/numberQuestions.js +50 -36
  43. package/dist/questions/optionBasedQuestions.d.ts +83 -290
  44. package/dist/questions/optionBasedQuestions.js +58 -41
  45. package/dist/questions/question.d.ts +72 -35
  46. package/dist/questions/question.js +14 -5
  47. package/dist/questions/tableQuestions.d.ts +2228 -9599
  48. package/dist/questions/tableQuestions.js +185 -192
  49. package/dist/questions/textQuestions.d.ts +70 -226
  50. package/dist/questions/textQuestions.js +31 -31
  51. package/dist/schemas/affiliationSearchAnswer.schema.json +35 -33
  52. package/dist/schemas/affiliationSearchQuestion.schema.json +124 -122
  53. package/dist/schemas/anyAnswer.schema.json +1229 -408
  54. package/dist/schemas/anyQuestion.schema.json +4312 -2023
  55. package/dist/schemas/anyTableColumnAnswer.schema.json +535 -314
  56. package/dist/schemas/anyTableColumnQuestion.schema.json +1309 -874
  57. package/dist/schemas/booleanAnswer.schema.json +22 -23
  58. package/dist/schemas/booleanQuestion.schema.json +39 -43
  59. package/dist/schemas/checkboxesAnswer.schema.json +27 -28
  60. package/dist/schemas/checkboxesQuestion.schema.json +63 -62
  61. package/dist/schemas/currencyAnswer.schema.json +22 -23
  62. package/dist/schemas/currencyQuestion.schema.json +57 -54
  63. package/dist/schemas/dateAnswer.schema.json +22 -23
  64. package/dist/schemas/dateQuestion.schema.json +50 -49
  65. package/dist/schemas/dateRangeAnswer.schema.json +35 -33
  66. package/dist/schemas/dateRangeQuestion.schema.json +87 -78
  67. package/dist/schemas/dmp.schema.json +2070 -0
  68. package/dist/schemas/dmpExtension.schema.json +1874 -0
  69. package/dist/schemas/emailAnswer.schema.json +22 -23
  70. package/dist/schemas/emailQuestion.schema.json +55 -53
  71. package/dist/schemas/licenseSearchAnswer.schema.json +40 -38
  72. package/dist/schemas/licenseSearchQuestion.schema.json +122 -146
  73. package/dist/schemas/metadataStandardSearchAnswer.schema.json +40 -38
  74. package/dist/schemas/metadataStandardSearchQuestion.schema.json +123 -156
  75. package/dist/schemas/multiselectBoxAnswer.schema.json +27 -28
  76. package/dist/schemas/multiselectBoxQuestion.schema.json +70 -71
  77. package/dist/schemas/numberAnswer.schema.json +22 -23
  78. package/dist/schemas/numberQuestion.schema.json +52 -50
  79. package/dist/schemas/numberRangeAnswer.schema.json +35 -33
  80. package/dist/schemas/numberRangeQuestion.schema.json +91 -60
  81. package/dist/schemas/numberWithContextAnswer.schema.json +35 -33
  82. package/dist/schemas/numberWithContextQuestion.schema.json +81 -70
  83. package/dist/schemas/radioButtonsAnswer.schema.json +22 -23
  84. package/dist/schemas/radioButtonsQuestion.schema.json +63 -62
  85. package/dist/schemas/repositorySearchAnswer.schema.json +40 -38
  86. package/dist/schemas/repositorySearchQuestion.schema.json +122 -162
  87. package/dist/schemas/researchOutputTableAnswer.schema.json +16622 -411
  88. package/dist/schemas/researchOutputTableQuestion.schema.json +114 -1157
  89. package/dist/schemas/selectBoxAnswer.schema.json +22 -23
  90. package/dist/schemas/selectBoxQuestion.schema.json +70 -71
  91. package/dist/schemas/tableAnswer.schema.json +581 -360
  92. package/dist/schemas/tableQuestion.schema.json +1388 -942
  93. package/dist/schemas/textAnswer.schema.json +22 -23
  94. package/dist/schemas/textAreaAnswer.schema.json +22 -23
  95. package/dist/schemas/textAreaQuestion.schema.json +65 -57
  96. package/dist/schemas/textQuestion.schema.json +50 -49
  97. package/dist/schemas/urlAnswer.schema.json +22 -23
  98. package/dist/schemas/urlQuestion.schema.json +50 -49
  99. package/package.json +6 -4
  100. package/dist/answers/__tests__/usage.spec.js +0 -178
  101. package/dist/questions/__tests__/usage.spec.d.ts +0 -8
  102. package/dist/questions/__tests__/usage.spec.js +0 -473
  103. /package/dist/answers/__tests__/{usage.spec.d.ts → defaults.spec.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResearchOutputTableQuestionSchema = exports.ResearchOutputTableColumnPreferenceSchema = exports.TableQuestionSchema = exports.TableColumn = exports.AnyTableColumnQuestionSchema = void 0;
3
+ exports.ResearchOutputTableQuestionJSONSchema = exports.TableQuestionJSONSchema = exports.AnyTableColumnQuestionJSONSchema = exports.DefaultResearchOutputTableQuestion = exports.ResearchOutputTableQuestionSchema = exports.DefaultResearchOutputCustomColumn = exports.ResearchOutputCustomColumnSchema = exports.DefaultTableQuestion = exports.TableQuestionSchema = exports.DefaultTableColumn = exports.TableColumnSchema = exports.AnyTableColumnQuestionSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const numberQuestions_1 = require("./numberQuestions");
6
6
  const textQuestions_1 = require("./textQuestions");
@@ -8,7 +8,6 @@ const dateQuestions_1 = require("./dateQuestions");
8
8
  const optionBasedQuestions_1 = require("./optionBasedQuestions");
9
9
  const graphQLQuestions_1 = require("./graphQLQuestions");
10
10
  const question_1 = require("./question");
11
- const BaseAttributes = question_1.QuestionSchema.shape.attributes;
12
11
  // Union types for all questions and answers (tables cannot be nested so no TableQuestion here!)
13
12
  exports.AnyTableColumnQuestionSchema = zod_1.z.discriminatedUnion('type', [
14
13
  graphQLQuestions_1.AffiliationSearchQuestionSchema,
@@ -27,195 +26,183 @@ exports.AnyTableColumnQuestionSchema = zod_1.z.discriminatedUnion('type', [
27
26
  optionBasedQuestions_1.SelectBoxQuestionSchema,
28
27
  textQuestions_1.TextAreaQuestionSchema,
29
28
  textQuestions_1.TextQuestionSchema,
30
- textQuestions_1.URLQuestionSchema
29
+ textQuestions_1.URLQuestionSchema,
31
30
  ]);
32
- exports.TableColumn = zod_1.z.object({
31
+ const TableAttributesSchema = question_1.BaseAttributesSchema.extend({
32
+ canAddRows: zod_1.z.boolean().default(true),
33
+ canRemoveRows: zod_1.z.boolean().default(true),
34
+ initialRows: zod_1.z.number().default(1),
35
+ maxRows: zod_1.z.number().optional(), // The maximum number of rows (no default)
36
+ minRows: zod_1.z.number().optional() // The minimum number of rows (no default)
37
+ });
38
+ const DefaultTableAttributes = TableAttributesSchema.parse({});
39
+ exports.TableColumnSchema = zod_1.z.object({
33
40
  heading: zod_1.z.string().default('Column A'), // The heading of the column
41
+ help: zod_1.z.string().optional(), // Help text for the column
34
42
  required: zod_1.z.boolean().default(false), // Whether the column is required
35
43
  enabled: zod_1.z.boolean().default(true), // Whether the column is enabled
36
- content: exports.AnyTableColumnQuestionSchema.default({ type: 'textArea' }), // The question for the column
37
- meta: zod_1.z.object({
38
- schemaVersion: zod_1.z.string().default(question_1.CURRENT_SCHEMA_VERSION), // The schema version
39
- labelTranslationKey: zod_1.z.string().optional(),
40
- }).default({})
44
+ content: exports.AnyTableColumnQuestionSchema
45
+ });
46
+ exports.DefaultTableColumn = exports.TableColumnSchema.parse({
47
+ heading: 'Column A',
48
+ help: 'Enter the value for column A',
49
+ required: false,
50
+ enabled: true,
51
+ content: {
52
+ type: 'textArea',
53
+ attributes: { label: '' },
54
+ meta: { schema: question_1.CURRENT_SCHEMA_VERSION }
55
+ }
41
56
  });
42
57
  // Table question
43
- exports.TableQuestionSchema = question_1.QuestionSchema.merge(zod_1.z.object({
44
- type: zod_1.z.literal('table'),
45
- columns: zod_1.z.array(exports.TableColumn).default([{}]), // The columns of the table
46
- attributes: BaseAttributes.merge(zod_1.z.object({
47
- canAddRows: zod_1.z.boolean().default(true),
48
- canRemoveRows: zod_1.z.boolean().default(true),
49
- initialRows: zod_1.z.number().default(1),
50
- maxRows: zod_1.z.number().optional(), // The maximum number of rows (no default)
51
- minRows: zod_1.z.number().optional() // The minimum number of rows (no default)
52
- })).default({})
53
- }));
54
- exports.ResearchOutputTableColumnPreferenceSchema = zod_1.z.object({
58
+ exports.TableQuestionSchema = zod_1.z.object(Object.assign(Object.assign({}, question_1.QuestionSchema.shape), { type: zod_1.z.literal('table'), columns: zod_1.z.array(exports.TableColumnSchema), attributes: TableAttributesSchema.optional() }));
59
+ exports.DefaultTableQuestion = exports.TableQuestionSchema.parse({
60
+ type: 'table',
61
+ attributes: DefaultTableAttributes,
62
+ meta: question_1.DefaultMeta,
63
+ columns: [exports.DefaultTableColumn]
64
+ });
65
+ const ResearchOutputTableColumnPreferenceSchema = zod_1.z.object({
55
66
  label: zod_1.z.string().default(''), // The label of the preference option
56
67
  value: zod_1.z.string().default('') // The value of the preference option
57
68
  });
58
- const ResearchOutputTitleColumnSchema = exports.TableColumn.extend({
59
- heading: zod_1.z.string().default('Title'),
60
- required: zod_1.z.literal(true),
61
- content: textQuestions_1.TextQuestionSchema.extend({
62
- attributes: zod_1.z.object({
63
- help: zod_1.z.string().default('Enter the title of this research output'),
64
- labelTranslationKey: zod_1.z.string().default('researchOutput.title.heading')
65
- }).default({})
66
- }).default({ type: 'text' })
67
- });
68
- const ResearchOutputDescriptionColumnSchema = exports.TableColumn.extend({
69
- heading: zod_1.z.string().default('Description'),
70
- content: textQuestions_1.TextAreaQuestionSchema.extend({
71
- attributes: zod_1.z.object({
72
- help: zod_1.z.string().default('Provide a brief description of this research output'),
73
- labelTranslationKey: zod_1.z.string().default('researchOutput.description.heading')
74
- }).default({})
75
- }).default({ type: 'textArea' })
76
- });
77
- const ResearchOutputOutputTypeColumnSchema = exports.TableColumn.extend({
78
- heading: zod_1.z.string().default('Output Type'),
79
- required: zod_1.z.literal(true),
80
- content: optionBasedQuestions_1.SelectBoxQuestionSchema.extend({
81
- attributes: zod_1.z.object({
82
- multiple: zod_1.z.literal(false),
83
- help: zod_1.z.string().default('Select the type that best describes this research output'),
84
- labelTranslationKey: zod_1.z.string().default('researchOutput.outputType.heading')
85
- }).default({ multiple: false }),
86
- }).default({ type: 'selectBox' })
87
- });
88
- const ResearchOutputDataFlagsColumnSchema = exports.TableColumn.extend({
89
- heading: zod_1.z.string().default('Data Flags'),
90
- enabled: zod_1.z.boolean().default(false),
91
- content: optionBasedQuestions_1.CheckboxesQuestionSchema.extend({
92
- attributes: zod_1.z.object({
93
- help: zod_1.z.string().default('Select any data flags that apply to this research output'),
94
- labelTranslationKey: zod_1.z.string().default('researchOutput.dataFlags.heading')
95
- }).default({}),
96
- options: zod_1.z.array(zod_1.z.object({
97
- label: zod_1.z.string(),
98
- value: zod_1.z.string()
99
- })).default([
100
- { label: 'May contain sensitive data?', value: 'sensitive' },
101
- { label: 'May contain personally identifiable information?', value: 'personal' },
102
- ])
103
- }).default({ type: 'checkBoxes' })
104
- });
105
- const ResearchOutputAccessLevelColumnSchema = exports.TableColumn.extend({
106
- heading: zod_1.z.string().default('Initial Access Level'),
107
- enabled: zod_1.z.boolean().default(false),
108
- content: optionBasedQuestions_1.SelectBoxQuestionSchema.extend({
109
- attributes: zod_1.z.object({
110
- multiple: zod_1.z.literal(false),
111
- help: zod_1.z.string().default('The initial access level for the research output'),
112
- labelTranslationKey: zod_1.z.string().default('researchOutput.accessLevel.heading')
113
- }).default({ multiple: false }),
114
- options: zod_1.z.array(zod_1.z.object({
115
- label: zod_1.z.string(),
116
- value: zod_1.z.string()
117
- })).default([
118
- { label: 'Unrestricted Access', value: 'open' },
119
- { label: 'Controlled Access', value: 'restricted' },
120
- { label: 'Other', value: 'closed' },
121
- ])
122
- }).default({ type: 'selectBox' })
123
- });
124
- const ResearchOutputReleaseDateColumnSchema = exports.TableColumn.extend({
125
- heading: zod_1.z.string().default('Anticipated Release Date'),
126
- enabled: zod_1.z.boolean().default(false),
127
- content: dateQuestions_1.DateQuestionSchema.extend({
128
- attributes: zod_1.z.object({
129
- help: zod_1.z.string().default('The anticipated release date for the research output'),
130
- labelTranslationKey: zod_1.z.string().default('researchOutput.releaseDate.heading')
131
- }).default({})
132
- }).default({ type: 'date' })
133
- });
134
- const ResearchOutputByteSizeColumnSchema = exports.TableColumn.extend({
135
- heading: zod_1.z.string().default('Byte Size'),
136
- enabled: zod_1.z.boolean().default(false),
137
- content: numberQuestions_1.NumberWithContextQuestionSchema.extend({
138
- attributes: zod_1.z.object({
139
- min: zod_1.z.number().default(0),
140
- help: zod_1.z.string().default('The size of the research output in bytes'),
141
- labelTranslationKey: zod_1.z.string().default('researchOutput.byteSize.heading'),
142
- context: zod_1.z.array(zod_1.z.object({
143
- label: zod_1.z.string().default('MB (megabytes)'),
144
- value: zod_1.z.string().default('mb')
145
- })).default([
146
- { label: 'bytes', value: 'bytes' },
147
- { label: 'KB (kilobytes)', value: 'kb' },
148
- { label: 'MB (megabytes)', value: 'mb' },
149
- { label: 'GB (gigabytes)', value: 'gb' },
150
- { label: 'TB (terabytes)', value: 'tb' },
151
- { label: 'PB (petabytes)', value: 'pb' }
152
- ])
153
- }).default({})
154
- }).default({ type: 'numberWithContext' })
155
- });
156
- const ResearchOutputRepositoryColumnSchema = exports.TableColumn.extend({
157
- heading: zod_1.z.string().default('Repository'),
158
- enabled: zod_1.z.boolean().default(false),
159
- content: graphQLQuestions_1.RepositorySearchQuestionSchema.default({ type: 'repositorySearch' }),
160
- preferences: zod_1.z.array(exports.ResearchOutputTableColumnPreferenceSchema).default([]),
161
- attributes: zod_1.z.object({
162
- help: zod_1.z.string().default('Select repositor(ies) you would prefer users to deposit in'),
163
- labelTranslationKey: zod_1.z.string().default('researchOutput.repository.heading')
164
- }).default({})
165
- });
166
- const ResearchOutputMetadataStandardColumnSchema = exports.TableColumn.extend({
167
- heading: zod_1.z.string().default('Metadata Standard'),
168
- enabled: zod_1.z.boolean().default(false),
169
- content: graphQLQuestions_1.MetadataStandardSearchQuestionSchema.default({ type: 'metadataStandardSearch' }),
170
- preferences: zod_1.z.array(exports.ResearchOutputTableColumnPreferenceSchema).default([]),
171
- attributes: zod_1.z.object({
172
- help: zod_1.z.string().default('Select metadata standard(s) you would prefer users to use'),
173
- labelTranslationKey: zod_1.z.string().default('researchOutput.metadataStandard.heading')
174
- }).default({})
175
- });
176
- const ResearchOutputLicenseColumnSchema = exports.TableColumn.extend({
177
- heading: zod_1.z.string().default('License'),
178
- enabled: zod_1.z.boolean().default(false),
179
- content: graphQLQuestions_1.LicenseSearchQuestionSchema.default({ type: 'licenseSearch' }),
180
- preferences: zod_1.z.array(exports.ResearchOutputTableColumnPreferenceSchema).default([]),
181
- attributes: zod_1.z.object({
182
- help: zod_1.z.string().default('Select license(s) you would prefer users to apply to the research output'),
183
- labelTranslationKey: zod_1.z.string().default('researchOutput.license.heading')
184
- }).default({})
185
- });
186
- const ResearchOutputCustomColumnSchema = exports.TableColumn.extend({
187
- heading: zod_1.z.string().default('Custom Column'),
188
- enabled: zod_1.z.boolean().default(false),
189
- content: textQuestions_1.TextQuestionSchema.extend({
190
- attributes: zod_1.z.object({
191
- help: zod_1.z.string().default('Explanation of what we expect the user to enter.'),
192
- maxLength: zod_1.z.number().default(255),
193
- defaultValue: zod_1.z.string().optional(),
194
- }).default({})
195
- }).default({ type: 'text' })
196
- });
197
- const defaultTitleColumn = ResearchOutputTitleColumnSchema.parse({
69
+ const ResearchOutputTitleColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Title'), help: zod_1.z.string().default('Enter the title of this research output'), required: zod_1.z.boolean().default(true), content: textQuestions_1.TextQuestionSchema }));
70
+ // Blank out the label and help text as these are set at the column level
71
+ const DefaultResearchOutputTitleContent = Object.assign(Object.assign({}, textQuestions_1.DefaultTextQuestion), { label: '', help: '' });
72
+ const DefaultResearchOutputTitleColumn = ResearchOutputTitleColumnSchema.parse({
73
+ heading: 'Title',
198
74
  required: true,
199
- content: { type: 'text' }
75
+ content: DefaultResearchOutputTitleContent
76
+ });
77
+ const ResearchOutputDescriptionColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Description'), help: zod_1.z.string().default('Enter a brief description of this research output'), content: textQuestions_1.TextAreaQuestionSchema }));
78
+ // Blank out the label and help text as these are set at the column level
79
+ const DefaultResearchOutputDescriptionContent = Object.assign(Object.assign({}, textQuestions_1.DefaultTextAreaQuestion), { label: '', help: '' });
80
+ const DefaultResearchOutputDescriptionColumn = ResearchOutputDescriptionColumnSchema.parse({
81
+ heading: 'Description',
82
+ enabled: false,
83
+ content: DefaultResearchOutputDescriptionContent
84
+ });
85
+ const DefaultResearchOutputTypeOptions = [
86
+ { label: 'Dataset', value: 'dataset' },
87
+ { label: 'Software', value: 'software' },
88
+ { label: 'Other', value: 'other' },
89
+ ];
90
+ const DefaultResearchOutputTypeContent = optionBasedQuestions_1.SelectBoxQuestionSchema.parse({
91
+ type: 'selectBox',
92
+ attributes: optionBasedQuestions_1.DefaultSelectBoxQuestion.attributes,
93
+ meta: question_1.DefaultMeta,
94
+ options: DefaultResearchOutputTypeOptions
200
95
  });
201
- const defaultDescriptionColumn = ResearchOutputDescriptionColumnSchema.parse({});
202
- const defaultOutputTypeColumn = ResearchOutputOutputTypeColumnSchema.parse({
96
+ const ResearchOutputTypeColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Type'), help: zod_1.z.string().default('Select the type of this research output'), required: zod_1.z.boolean().default(true), content: optionBasedQuestions_1.SelectBoxQuestionSchema }));
97
+ const DefaultResearchOutputTypeColumn = ResearchOutputTypeColumnSchema.parse({
98
+ heading: 'Type',
203
99
  required: true,
204
- content: { type: 'selectBox' }
205
- });
206
- const defaultDataFlagsColumn = ResearchOutputDataFlagsColumnSchema.parse({});
207
- const defaultAccessLevelColumn = ResearchOutputAccessLevelColumnSchema.parse({});
208
- const defaultReleaseDateColumn = ResearchOutputReleaseDateColumnSchema.parse({});
209
- const defaultByteSizeColumn = ResearchOutputByteSizeColumnSchema.parse({});
210
- const defaultRepositoryColumn = ResearchOutputRepositoryColumnSchema.parse({});
211
- const defaultMetadataStandardColumn = ResearchOutputMetadataStandardColumnSchema.parse({});
212
- const defaultLicenseColumn = ResearchOutputLicenseColumnSchema.parse({});
213
- const defaultCustomColumn = ResearchOutputCustomColumnSchema.parse({});
100
+ content: DefaultResearchOutputTypeContent,
101
+ });
102
+ const DefaultResearchOutputDataFlagsOptions = [
103
+ { label: 'May contain sensitive data?', value: 'sensitive', checked: false },
104
+ { label: 'May contain personally identifiable information?', value: 'personal', checked: false },
105
+ ];
106
+ const DefaultResearchOutputDataFlagsContent = optionBasedQuestions_1.CheckboxesQuestionSchema.parse({
107
+ type: 'checkBoxes',
108
+ attributes: optionBasedQuestions_1.DefaultCheckboxesQuestion.attributes,
109
+ meta: question_1.DefaultMeta,
110
+ options: DefaultResearchOutputDataFlagsOptions
111
+ });
112
+ const ResearchOutputDataFlagsColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Data Flags'), help: zod_1.z.string().default('Mark all of the statements that are true about the dataset'), enabled: zod_1.z.boolean().default(false), content: optionBasedQuestions_1.CheckboxesQuestionSchema }));
113
+ const DefaultResearchOutputDataFlagsColumn = ResearchOutputDataFlagsColumnSchema.parse({
114
+ heading: 'Data Flags',
115
+ enabled: false,
116
+ content: DefaultResearchOutputDataFlagsContent
117
+ });
118
+ const DefaultResearchOutputAccessLevelOptions = [
119
+ { label: 'Open Access', value: 'open', selected: false },
120
+ { label: 'Restricted Access', value: 'restricted', selected: false },
121
+ { label: 'Other', value: 'closed', selected: false },
122
+ ];
123
+ const DefaultResearchOutputAccessLevelContent = optionBasedQuestions_1.RadioButtonsQuestionSchema.parse({
124
+ type: 'radioButtons',
125
+ attributes: optionBasedQuestions_1.DefaultRadioButtonsQuestion.attributes,
126
+ meta: question_1.DefaultMeta,
127
+ options: DefaultResearchOutputAccessLevelOptions
128
+ });
129
+ const ResearchOutputAccessLevelColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Access Level'), help: zod_1.z.string().default('Select the access level for this research output'), enabled: zod_1.z.boolean().default(false), content: optionBasedQuestions_1.RadioButtonsQuestionSchema }));
130
+ const DefaultResearchOutputAccessLevelColumn = ResearchOutputAccessLevelColumnSchema.parse({
131
+ heading: 'Access Level',
132
+ enabled: false,
133
+ content: DefaultResearchOutputAccessLevelContent
134
+ });
135
+ const ResearchOutputReleaseDateColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Anticipated Release Date'), help: zod_1.z.string().default('The anticipated release date for the research output'), enabled: zod_1.z.boolean().default(false), content: dateQuestions_1.DateQuestionSchema }));
136
+ const DefaultResearchOutputReleaseDateColumn = ResearchOutputReleaseDateColumnSchema.parse({
137
+ heading: 'Anticipated Release Date',
138
+ enabled: false,
139
+ content: dateQuestions_1.DefaultDateQuestion,
140
+ });
141
+ const DefaultResearchOutputByteSizeOptions = [
142
+ { label: 'bytes', value: 'bytes', selected: false },
143
+ { label: 'KB (kilobytes)', value: 'kb', selected: true },
144
+ { label: 'MB (megabytes)', value: 'mb', selected: false },
145
+ { label: 'GB (gigabytes)', value: 'gb', selected: false },
146
+ { label: 'TB (terabytes)', value: 'tb', selected: false },
147
+ { label: 'PB (petabytes)', value: 'pb', selected: false }
148
+ ];
149
+ const DefaultResearchOutputByteSizeContentAttributes = Object.assign(Object.assign({}, numberQuestions_1.DefaultNumberWithContextQuestion.attributes), { context: DefaultResearchOutputByteSizeOptions });
150
+ const DefaultResearchOutputByteSizeContent = numberQuestions_1.NumberWithContextQuestionSchema.parse({
151
+ type: 'numberWithContext',
152
+ attributes: DefaultResearchOutputByteSizeContentAttributes,
153
+ meta: question_1.DefaultMeta,
154
+ });
155
+ const ResearchOutputByteSizeColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Byte Size'), help: zod_1.z.string().default('The size of the research output in bytes'), enabled: zod_1.z.boolean().default(false), content: numberQuestions_1.NumberWithContextQuestionSchema }));
156
+ const DefaultResearchOutputByteSizeColumn = ResearchOutputByteSizeColumnSchema.parse({
157
+ heading: 'Byte Size',
158
+ enabled: false,
159
+ content: DefaultResearchOutputByteSizeContent
160
+ });
161
+ const ResearchOutputRepositoryColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Repository'), help: zod_1.z.string().default('Select repository(ies) you would prefer users to deposit in'), enabled: zod_1.z.boolean().default(false), content: graphQLQuestions_1.RepositorySearchQuestionSchema, preferences: zod_1.z.array(ResearchOutputTableColumnPreferenceSchema).default([]) }));
162
+ const DefaultResearchOutputRepositoryColumn = ResearchOutputRepositoryColumnSchema.parse({
163
+ heading: 'Repository(ies)',
164
+ enabled: false,
165
+ content: graphQLQuestions_1.DefaultRepositorySearchQuestion,
166
+ preferences: []
167
+ });
168
+ const ResearchOutputMetadataStandardColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Metadata Standard'), help: zod_1.z.string().default('Select metadata standard(s) you would prefer users to use'), enabled: zod_1.z.boolean().default(false), content: graphQLQuestions_1.MetadataStandardSearchQuestionSchema, preferences: zod_1.z.array(ResearchOutputTableColumnPreferenceSchema).default([]) }));
169
+ const DefaultResearchOutputMetadataStandardColumn = ResearchOutputMetadataStandardColumnSchema.parse({
170
+ heading: 'Metadata Standard(s)',
171
+ enabled: false,
172
+ content: graphQLQuestions_1.DefaultMetadataStandardSearchQuestion,
173
+ preferences: []
174
+ });
175
+ const ResearchOutputLicenseColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('License'), help: zod_1.z.string().default('Select the license you will apply to the research output'), enabled: zod_1.z.boolean().default(false), content: graphQLQuestions_1.LicenseSearchQuestionSchema, preferences: zod_1.z.array(ResearchOutputTableColumnPreferenceSchema).default([]) }));
176
+ const DefaultResearchOutputLicenseColumn = ResearchOutputLicenseColumnSchema.parse({
177
+ heading: 'License',
178
+ enabled: false,
179
+ content: graphQLQuestions_1.DefaultLicenseSearchQuestion,
180
+ preferences: []
181
+ });
182
+ const ResearchOutputCustomContentAttributesSchema = textQuestions_1.TextQuestionSchema.shape.attributes.extend({
183
+ label: zod_1.z.string().optional(),
184
+ help: zod_1.z.string().optional(),
185
+ maxLength: zod_1.z.number().optional(),
186
+ defaultValue: zod_1.z.string().optional(),
187
+ });
188
+ const DefaultResearchOutputCustomContentAttributes = ResearchOutputCustomContentAttributesSchema.parse({});
189
+ const ResearchOutputCustomContentSchema = zod_1.z.object(Object.assign(Object.assign({}, textQuestions_1.TextQuestionSchema.shape), { attributes: ResearchOutputCustomContentAttributesSchema }));
190
+ const DefaultResearchOutputCustomContent = ResearchOutputCustomContentSchema.parse({
191
+ type: 'text',
192
+ attributes: DefaultResearchOutputCustomContentAttributes,
193
+ meta: question_1.DefaultMeta
194
+ });
195
+ exports.ResearchOutputCustomColumnSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableColumnSchema.shape), { heading: zod_1.z.string().default('Custom Column'), help: zod_1.z.string().default('Explanation of what we expect the user to enter.'), enabled: zod_1.z.boolean().default(false), content: ResearchOutputCustomContentSchema }));
196
+ exports.DefaultResearchOutputCustomColumn = exports.ResearchOutputCustomColumnSchema.parse({
197
+ heading: 'Custom Column',
198
+ enabled: false,
199
+ content: DefaultResearchOutputCustomContent
200
+ });
214
201
  // Add this BEFORE ResearchOutputTableQuestionSchema
215
202
  const AnyResearchOutputColumnSchema = zod_1.z.union([
216
203
  ResearchOutputTitleColumnSchema,
217
204
  ResearchOutputDescriptionColumnSchema,
218
- ResearchOutputOutputTypeColumnSchema,
205
+ ResearchOutputTypeColumnSchema,
219
206
  ResearchOutputDataFlagsColumnSchema,
220
207
  ResearchOutputAccessLevelColumnSchema,
221
208
  ResearchOutputReleaseDateColumnSchema,
@@ -223,22 +210,28 @@ const AnyResearchOutputColumnSchema = zod_1.z.union([
223
210
  ResearchOutputRepositoryColumnSchema,
224
211
  ResearchOutputMetadataStandardColumnSchema,
225
212
  ResearchOutputLicenseColumnSchema,
226
- ResearchOutputCustomColumnSchema,
213
+ exports.ResearchOutputCustomColumnSchema
227
214
  ]);
228
215
  // Update ResearchOutputTableQuestionSchema
229
- exports.ResearchOutputTableQuestionSchema = exports.TableQuestionSchema.merge(zod_1.z.object({
230
- type: zod_1.z.literal('researchOutputTable'),
231
- columns: zod_1.z.array(AnyResearchOutputColumnSchema).default([
232
- defaultTitleColumn,
233
- defaultDescriptionColumn,
234
- defaultOutputTypeColumn,
235
- defaultDataFlagsColumn,
236
- defaultAccessLevelColumn,
237
- defaultReleaseDateColumn,
238
- defaultByteSizeColumn,
239
- defaultRepositoryColumn,
240
- defaultMetadataStandardColumn,
241
- defaultLicenseColumn,
242
- defaultCustomColumn
243
- ]),
244
- }));
216
+ exports.ResearchOutputTableQuestionSchema = zod_1.z.object(Object.assign(Object.assign({}, exports.TableQuestionSchema.shape), { type: zod_1.z.literal('researchOutputTable'), columns: zod_1.z.array(AnyResearchOutputColumnSchema) }));
217
+ exports.DefaultResearchOutputTableQuestion = exports.ResearchOutputTableQuestionSchema.parse({
218
+ type: 'researchOutputTable',
219
+ attributes: DefaultTableAttributes,
220
+ meta: question_1.DefaultMeta,
221
+ columns: [
222
+ DefaultResearchOutputTitleColumn,
223
+ DefaultResearchOutputDescriptionColumn,
224
+ DefaultResearchOutputTypeColumn,
225
+ DefaultResearchOutputDataFlagsColumn,
226
+ DefaultResearchOutputAccessLevelColumn,
227
+ DefaultResearchOutputReleaseDateColumn,
228
+ DefaultResearchOutputByteSizeColumn,
229
+ DefaultResearchOutputRepositoryColumn,
230
+ DefaultResearchOutputMetadataStandardColumn,
231
+ DefaultResearchOutputLicenseColumn,
232
+ exports.DefaultResearchOutputCustomColumn,
233
+ ]
234
+ });
235
+ exports.AnyTableColumnQuestionJSONSchema = zod_1.z.toJSONSchema(exports.AnyTableColumnQuestionSchema);
236
+ exports.TableQuestionJSONSchema = zod_1.z.toJSONSchema(exports.TableQuestionSchema);
237
+ exports.ResearchOutputTableQuestionJSONSchema = zod_1.z.toJSONSchema(exports.ResearchOutputTableQuestionSchema);