@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,35 +1,84 @@
1
1
  import { z } from "zod";
2
2
  export declare const CURRENT_SCHEMA_VERSION = "1.0";
3
- export declare const QuestionFormatsEnum: z.ZodEnum<["affiliationSearch", "boolean", "checkBoxes", "currency", "date", "dateRange", "email", "licenseSearch", "metadataStandardSearch", "multiselectBox", "number", "numberRange", "numberWithContext", "radioButtons", "repositorySearch", "researchOutputTable", "selectBox", "table", "text", "textArea", "url"]>;
3
+ export declare const QuestionFormatsEnum: z.ZodEnum<{
4
+ number: "number";
5
+ boolean: "boolean";
6
+ affiliationSearch: "affiliationSearch";
7
+ checkBoxes: "checkBoxes";
8
+ currency: "currency";
9
+ date: "date";
10
+ dateRange: "dateRange";
11
+ email: "email";
12
+ licenseSearch: "licenseSearch";
13
+ metadataStandardSearch: "metadataStandardSearch";
14
+ multiselectBox: "multiselectBox";
15
+ numberRange: "numberRange";
16
+ numberWithContext: "numberWithContext";
17
+ radioButtons: "radioButtons";
18
+ repositorySearch: "repositorySearch";
19
+ researchOutputTable: "researchOutputTable";
20
+ selectBox: "selectBox";
21
+ table: "table";
22
+ text: "text";
23
+ textArea: "textArea";
24
+ url: "url";
25
+ }>;
26
+ export declare const BaseMetaSchema: z.ZodObject<{
27
+ schemaVersion: z.ZodDefault<z.ZodString>;
28
+ title: z.ZodOptional<z.ZodString>;
29
+ usageDescription: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strip>;
31
+ export declare const DefaultMeta: {
32
+ schemaVersion: string;
33
+ title?: string | undefined;
34
+ usageDescription?: string | undefined;
35
+ };
36
+ export declare const BaseAttributesSchema: z.ZodObject<{
37
+ label: z.ZodOptional<z.ZodString>;
38
+ help: z.ZodOptional<z.ZodString>;
39
+ labelTranslationKey: z.ZodOptional<z.ZodString>;
40
+ }, z.core.$strip>;
41
+ export declare const DefaultAttributes: {
42
+ label?: string | undefined;
43
+ help?: string | undefined;
44
+ labelTranslationKey?: string | undefined;
45
+ };
4
46
  export declare const QuestionSchema: z.ZodObject<{
5
- type: z.ZodEnum<["affiliationSearch", "boolean", "checkBoxes", "currency", "date", "dateRange", "email", "licenseSearch", "metadataStandardSearch", "multiselectBox", "number", "numberRange", "numberWithContext", "radioButtons", "repositorySearch", "researchOutputTable", "selectBox", "table", "text", "textArea", "url"]>;
47
+ type: z.ZodEnum<{
48
+ number: "number";
49
+ boolean: "boolean";
50
+ affiliationSearch: "affiliationSearch";
51
+ checkBoxes: "checkBoxes";
52
+ currency: "currency";
53
+ date: "date";
54
+ dateRange: "dateRange";
55
+ email: "email";
56
+ licenseSearch: "licenseSearch";
57
+ metadataStandardSearch: "metadataStandardSearch";
58
+ multiselectBox: "multiselectBox";
59
+ numberRange: "numberRange";
60
+ numberWithContext: "numberWithContext";
61
+ radioButtons: "radioButtons";
62
+ repositorySearch: "repositorySearch";
63
+ researchOutputTable: "researchOutputTable";
64
+ selectBox: "selectBox";
65
+ table: "table";
66
+ text: "text";
67
+ textArea: "textArea";
68
+ url: "url";
69
+ }>;
6
70
  attributes: z.ZodObject<{
7
71
  label: z.ZodOptional<z.ZodString>;
8
72
  help: z.ZodOptional<z.ZodString>;
9
73
  labelTranslationKey: z.ZodOptional<z.ZodString>;
10
- }, "strip", z.ZodTypeAny, {
11
- label?: string | undefined;
12
- help?: string | undefined;
13
- labelTranslationKey?: string | undefined;
14
- }, {
15
- label?: string | undefined;
16
- help?: string | undefined;
17
- labelTranslationKey?: string | undefined;
18
- }>;
19
- meta: z.ZodDefault<z.ZodObject<{
74
+ }, z.core.$strip>;
75
+ meta: z.ZodObject<{
20
76
  schemaVersion: z.ZodDefault<z.ZodString>;
21
77
  title: z.ZodOptional<z.ZodString>;
22
78
  usageDescription: z.ZodOptional<z.ZodString>;
23
- }, "strip", z.ZodTypeAny, {
24
- schemaVersion: string;
25
- title?: string | undefined;
26
- usageDescription?: string | undefined;
27
- }, {
28
- schemaVersion?: string | undefined;
29
- title?: string | undefined;
30
- usageDescription?: string | undefined;
31
- }>>;
32
- }, "strip", z.ZodTypeAny, {
79
+ }, z.core.$strip>;
80
+ }, z.core.$strip>;
81
+ export declare const DefaultQuestionSchema: {
33
82
  type: "number" | "boolean" | "affiliationSearch" | "checkBoxes" | "currency" | "date" | "dateRange" | "email" | "licenseSearch" | "metadataStandardSearch" | "multiselectBox" | "numberRange" | "numberWithContext" | "radioButtons" | "repositorySearch" | "researchOutputTable" | "selectBox" | "table" | "text" | "textArea" | "url";
34
83
  attributes: {
35
84
  label?: string | undefined;
@@ -41,19 +90,7 @@ export declare const QuestionSchema: z.ZodObject<{
41
90
  title?: string | undefined;
42
91
  usageDescription?: string | undefined;
43
92
  };
44
- }, {
45
- type: "number" | "boolean" | "affiliationSearch" | "checkBoxes" | "currency" | "date" | "dateRange" | "email" | "licenseSearch" | "metadataStandardSearch" | "multiselectBox" | "numberRange" | "numberWithContext" | "radioButtons" | "repositorySearch" | "researchOutputTable" | "selectBox" | "table" | "text" | "textArea" | "url";
46
- attributes: {
47
- label?: string | undefined;
48
- help?: string | undefined;
49
- labelTranslationKey?: string | undefined;
50
- };
51
- meta?: {
52
- schemaVersion?: string | undefined;
53
- title?: string | undefined;
54
- usageDescription?: string | undefined;
55
- } | undefined;
56
- }>;
93
+ };
57
94
  export type QuestionType = z.infer<typeof QuestionFormatsEnum>;
58
95
  export interface QuestionFormatsUsageInterface {
59
96
  title: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QuestionFormatsUsage = exports.QuestionSchema = exports.QuestionFormatsEnum = exports.CURRENT_SCHEMA_VERSION = void 0;
3
+ exports.QuestionFormatsUsage = exports.DefaultQuestionSchema = exports.QuestionSchema = exports.DefaultAttributes = exports.BaseAttributesSchema = exports.DefaultMeta = exports.BaseMetaSchema = exports.QuestionFormatsEnum = exports.CURRENT_SCHEMA_VERSION = void 0;
4
4
  const zod_1 = require("zod");
5
5
  exports.CURRENT_SCHEMA_VERSION = '1.0'; // The current schema version
6
6
  // The available question formats
@@ -27,21 +27,30 @@ exports.QuestionFormatsEnum = zod_1.z.enum([
27
27
  'textArea',
28
28
  'url'
29
29
  ]);
30
- const DefaultMetaSchema = zod_1.z.object({
30
+ exports.BaseMetaSchema = zod_1.z.object({
31
31
  schemaVersion: zod_1.z.string().default(exports.CURRENT_SCHEMA_VERSION), // The schema version
32
32
  title: zod_1.z.string().optional(), // The title of the question type
33
33
  usageDescription: zod_1.z.string().optional(), // A description of when to use the question type
34
34
  });
35
- const DefaultAttributesSchema = zod_1.z.object({
35
+ // Calling Zod's `parse` on a schema creates an object that uses all the defaults defined,
36
+ // so, for example with this schema we get `{ schemaVersion: "1.0" }`
37
+ exports.DefaultMeta = exports.BaseMetaSchema.parse({});
38
+ exports.BaseAttributesSchema = zod_1.z.object({
36
39
  label: zod_1.z.string().optional(), // UI label for the field
37
40
  help: zod_1.z.string().optional(), // Help/tooltip text for the field
38
41
  labelTranslationKey: zod_1.z.string().optional() // The local translation key for the label
39
42
  });
43
+ exports.DefaultAttributes = exports.BaseAttributesSchema.parse({});
40
44
  // Base abstract type for all questions
41
45
  exports.QuestionSchema = zod_1.z.object({
42
46
  type: exports.QuestionFormatsEnum, // The type of question
43
- attributes: DefaultAttributesSchema, // Field attributes
44
- meta: DefaultMetaSchema.default({}), // Meta information for the field
47
+ attributes: exports.BaseAttributesSchema, // Field attributes
48
+ meta: exports.BaseMetaSchema, // Information for the field
49
+ });
50
+ exports.DefaultQuestionSchema = exports.QuestionSchema.parse({
51
+ type: 'textArea',
52
+ attributes: exports.DefaultAttributes,
53
+ meta: exports.DefaultMeta
45
54
  });
46
55
  exports.QuestionFormatsUsage = {
47
56
  affiliationSearch: {