@conform-ed/contracts 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +2 -0
- package/.turbo/turbo-format.log +6 -0
- package/.turbo/turbo-lint.log +4 -0
- package/.turbo/turbo-test.log +196 -0
- package/.turbo/turbo-typecheck.log +2 -0
- package/README.md +52 -0
- package/caliper-v1_2-zod-templates.md +123 -0
- package/case-v1_1-zod-templates.md +290 -0
- package/cat-v1_0-zod-templates.md +73 -0
- package/cc-v1_3-zod-templates.md +531 -0
- package/cc-v1_4-zod-templates.md +247 -0
- package/clr-v2_0-zod-templates.md +117 -0
- package/cmi5-v1_0-zod-templates.md +9 -0
- package/lti-zod-templates.md +11 -0
- package/oneroster-v1_2-zod-templates.md +76 -0
- package/open-badges-v3_0-zod-templates.md +66 -0
- package/package.json +42 -0
- package/qti-v2_1-zod-templates.md +45 -0
- package/qti-v2_2-zod-templates.md +32 -0
- package/qti-v3_0_1-zod-templates.md +421 -0
- package/src/adapter.ts +83 -0
- package/src/caliper/v1_2/caliper_v1p2_bootcamp_schema.ts +781 -0
- package/src/caliper/v1_2/index.ts +37 -0
- package/src/caliper/v1_2/shared.ts +122 -0
- package/src/caliper/v1_2/textual_requirements.ts +219 -0
- package/src/case/v1_1/case_v1p1_cfassociation_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfassociationgrouping_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfassociationset_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfconceptset_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfdocument_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfdocumentset_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfitem_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfitemtypeset_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cflicense_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfpackage_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfrubric_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_cfsubjectset_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_imsx_statusinfo_jsonschema1.ts +1 -0
- package/src/case/v1_1/case_v1p1_openapi3_restbinding_schema.ts +113 -0
- package/src/case/v1_1/index.ts +95 -0
- package/src/case/v1_1/shared.ts +384 -0
- package/src/cat/v1_0/cat_v1p0_restbinding_operations_schema.ts +75 -0
- package/src/cat/v1_0/index.ts +124 -0
- package/src/cat/v1_0/shared.ts +345 -0
- package/src/clr/v2_0/clr_v2p0_achievementcredential_schema.ts +16 -0
- package/src/clr/v2_0/clr_v2p0_clrcredential_schema.ts +9 -0
- package/src/clr/v2_0/clr_v2p0_endorsementcredential_schema.ts +11 -0
- package/src/clr/v2_0/clr_v2p0_getclrcredentialsresponse_schema.ts +1 -0
- package/src/clr/v2_0/clr_v2p0_imsx_statusinfo_schema.ts +8 -0
- package/src/clr/v2_0/clr_v2p0_profile_schema.ts +9 -0
- package/src/clr/v2_0/index.ts +22 -0
- package/src/clr/v2_0/shared.ts +206 -0
- package/src/cmi5/index.ts +3 -0
- package/src/cmi5/v1_0/index.ts +134 -0
- package/src/common-cartridge/v1_3/ccv1p3_imsccauth_v1p3.ts +26 -0
- package/src/common-cartridge/v1_3/ccv1p3_imscp_v1p2_v1p0.ts +352 -0
- package/src/common-cartridge/v1_3/ccv1p3_imscsmd_v1p0.ts +35 -0
- package/src/common-cartridge/v1_3/ccv1p3_imsdt_v1p3.ts +33 -0
- package/src/common-cartridge/v1_3/ccv1p3_imswl_v1p3.ts +23 -0
- package/src/common-cartridge/v1_3/ccv1p3_lomccltilink_v1p0.ts +14 -0
- package/src/common-cartridge/v1_3/ccv1p3_lommanifest_v1p0.ts +14 -0
- package/src/common-cartridge/v1_3/ccv1p3_lomresource_v1p0.ts +14 -0
- package/src/common-cartridge/v1_3/ccv1p3_qtiasiv1p2p1_v1p0.ts +964 -0
- package/src/common-cartridge/v1_3/index.ts +41 -0
- package/src/common-cartridge/v1_3/lom-internal.ts +396 -0
- package/src/common-cartridge/v1_3/shared.ts +68 -0
- package/src/common-cartridge/v1_4/core/ccv1p4_imscp_v1p2_v1p0.ts +360 -0
- package/src/common-cartridge/v1_4/core/ccv1p4_lommanifest_v1p0.ts +14 -0
- package/src/common-cartridge/v1_4/core/ccv1p4_lomresource_v1p0.ts +14 -0
- package/src/common-cartridge/v1_4/extension/cc_extresource_assignmentv1p0_v1p0.ts +61 -0
- package/src/common-cartridge/v1_4/extension/ccv1p4_cpextensionv1p2_v1p0.ts +20 -0
- package/src/common-cartridge/v1_4/extension/ims_openvideov1p0_v1p0.ts +325 -0
- package/src/common-cartridge/v1_4/index.ts +104 -0
- package/src/common-cartridge/v1_4/k12/ccv1p4_imscp_v1p2_v1p0.ts +19 -0
- package/src/common-cartridge/v1_4/k12/ccv1p4_imscp_v1p2_v1p0_thin.ts +17 -0
- package/src/common-cartridge/v1_4/k12/ccv1p4_lommanifest_v1p0.ts +14 -0
- package/src/common-cartridge/v1_4/k12/ccv1p4_lomresource_v1p0.ts +14 -0
- package/src/common-cartridge/v1_4/lom-internal.ts +476 -0
- package/src/common-cartridge/v1_4/shared/ccv1p4_imsccauth_v1p4.ts +26 -0
- package/src/common-cartridge/v1_4/shared/ccv1p4_imscsmd_v1p1.ts +36 -0
- package/src/common-cartridge/v1_4/shared/ccv1p4_imsdt_v1p4.ts +33 -0
- package/src/common-cartridge/v1_4/shared/ccv1p4_imslticc_v1p4.ts +45 -0
- package/src/common-cartridge/v1_4/shared/ccv1p4_imswl_v1p4.ts +23 -0
- package/src/common-cartridge/v1_4/shared/ccv1p4_lomccltilink_v1p0.ts +14 -0
- package/src/common-cartridge/v1_4/shared/ccv1p4_qtiasiv1p2p1_v1p0.ts +964 -0
- package/src/common-cartridge/v1_4/shared/imsbasiclti_v1p0p1.ts +24 -0
- package/src/common-cartridge/v1_4/shared/imslticm_v1p0.ts +23 -0
- package/src/common-cartridge/v1_4/shared/imslticp_v1p0.ts +57 -0
- package/src/common-cartridge/v1_4/shared/lineitem_v1p0.ts +35 -0
- package/src/common-cartridge/v1_4/shared/resourcea11ymetadata-20210915.ts +110 -0
- package/src/common-cartridge/v1_4/shared.ts +68 -0
- package/src/common-cartridge/v1_4/thin/ccv1p4_imscp_v1p2_v1p0.ts +243 -0
- package/src/common-cartridge/v1_4/thin/ccv1p4_lommanifest_v1p0.ts +14 -0
- package/src/common-cartridge/v1_4/thin/ccv1p4_lomresource_v1p0.ts +14 -0
- package/src/common-cartridge/v1_4/vdex/imsmd_loose_v1p3p2.ts +13 -0
- package/src/common-cartridge/v1_4/vdex/imsvdex_v1p0.ts +124 -0
- package/src/config.ts +121 -0
- package/src/index.ts +32 -0
- package/src/lti/ags/v2_0/index.ts +97 -0
- package/src/lti/deep-linking/v2_0/index.ts +100 -0
- package/src/lti/index.ts +26 -0
- package/src/lti/nrps/v2_0/index.ts +69 -0
- package/src/lti/proctoring/v1_0/index.ts +131 -0
- package/src/lti/shared.ts +66 -0
- package/src/lti/v1_3/index.ts +84 -0
- package/src/oneroster/v1_2/index.ts +156 -0
- package/src/oneroster/v1_2/or_v1p2_csv_binding_schema.ts +427 -0
- package/src/oneroster/v1_2/or_v1p2_gradebook_restbinding_schema.ts +120 -0
- package/src/oneroster/v1_2/or_v1p2_gradebook_service_schema.ts +243 -0
- package/src/oneroster/v1_2/or_v1p2_resource_restbinding_schema.ts +24 -0
- package/src/oneroster/v1_2/or_v1p2_resource_service_schema.ts +47 -0
- package/src/oneroster/v1_2/or_v1p2_rostering_restbinding_schema.ts +84 -0
- package/src/oneroster/v1_2/or_v1p2_rostering_service_schema.ts +288 -0
- package/src/oneroster/v1_2/shared.ts +90 -0
- package/src/open-badges/v3_0/index.ts +20 -0
- package/src/open-badges/v3_0/ob_v3p0_achievementcredential_schema.ts +17 -0
- package/src/open-badges/v3_0/ob_v3p0_endorsementcredential_schema.ts +11 -0
- package/src/open-badges/v3_0/ob_v3p0_getopenbadgecredentialsresponse_schema.ts +1 -0
- package/src/open-badges/v3_0/ob_v3p0_imsx_statusinfo_schema.ts +8 -0
- package/src/open-badges/v3_0/ob_v3p0_profile_schema.ts +9 -0
- package/src/open-badges/v3_0/shared.ts +458 -0
- package/src/qti/v2-internal.ts +1683 -0
- package/src/qti/v2_1/apipv1p0_qtiextv2p1_v1p0.ts +3 -0
- package/src/qti/v2_1/imsqti_metadata_v2p1.ts +3 -0
- package/src/qti/v2_1/imsqti_result_v2p1.ts +3 -0
- package/src/qti/v2_1/imsqti_usagedata_v2p1.ts +3 -0
- package/src/qti/v2_1/imsqti_v2p1p2.ts +71 -0
- package/src/qti/v2_1/index.ts +53 -0
- package/src/qti/v2_1/qtiv2p1_imscpv1p2_v1p0.ts +3 -0
- package/src/qti/v2_1/schemas.ts +15 -0
- package/src/qti/v2_1/shared.ts +3 -0
- package/src/qti/v2_2/apipv1p0_qtiextv2p2_v1p0p1.ts +3 -0
- package/src/qti/v2_2/imsqti_metadata_v2p2.ts +3 -0
- package/src/qti/v2_2/imsqti_result_v2p2.ts +3 -0
- package/src/qti/v2_2/imsqti_usagedata_v2p2.ts +3 -0
- package/src/qti/v2_2/imsqti_v2p2p4.ts +76 -0
- package/src/qti/v2_2/imsqtiv2p2p4_html5_v1p0.ts +8 -0
- package/src/qti/v2_2/index.ts +59 -0
- package/src/qti/v2_2/qtiv2p2_csm_v2p2.ts +4 -0
- package/src/qti/v2_2/qtiv2p2_imscpv1p2_v1p0.ts +3 -0
- package/src/qti/v2_2/schemas.ts +19 -0
- package/src/qti/v2_2/shared.ts +3 -0
- package/src/qti/v3_0_1/assessment-internal.ts +1509 -0
- package/src/qti/v3_0_1/imsqti_asiv3p0p1_v1p0.ts +57 -0
- package/src/qti/v3_0_1/imsqti_itemv3p0p1_v1p0.ts +60 -0
- package/src/qti/v3_0_1/imsqti_metadatav3p0_v1p0.ts +73 -0
- package/src/qti/v3_0_1/imsqti_outcomev3p0p1_v1p0.ts +11 -0
- package/src/qti/v3_0_1/imsqti_responseprocessingv3p0p1_v1p0.ts +17 -0
- package/src/qti/v3_0_1/imsqti_resultv3p0_v1p0.ts +222 -0
- package/src/qti/v3_0_1/imsqti_sectionv3p0p1_v1p0.ts +15 -0
- package/src/qti/v3_0_1/imsqti_stimulusv3p0p1_v1p0.ts +15 -0
- package/src/qti/v3_0_1/imsqti_testv3p0p1_v1p0.ts +49 -0
- package/src/qti/v3_0_1/imsqti_usagedatav3p0_v1p0.ts +77 -0
- package/src/qti/v3_0_1/imsqtiv3p0_afa3p0pnp_v1p0.ts +269 -0
- package/src/qti/v3_0_1/index.ts +50 -0
- package/src/qti/v3_0_1/processing-internal.ts +667 -0
- package/src/qti/v3_0_1/shared.ts +146 -0
- package/src/qti/v3_0_1/variables-internal.ts +274 -0
- package/src/shared/imsx-status.ts +49 -0
- package/src/summary.ts +70 -0
- package/src/vc-data-model/v2_0/index.ts +27 -0
- package/src/vc-data-model/v2_0/shared.ts +206 -0
- package/src/xapi/index.ts +12 -0
- package/src/xapi/shared.ts +444 -0
- package/src/xapi/v1_0_3/index.ts +169 -0
- package/src/xapi/v2_0/index.ts +256 -0
- package/test/caliper-v1_2.test.ts +270 -0
- package/test/case-v1_1.test.ts +147 -0
- package/test/cat-v1_0.test.ts +338 -0
- package/test/cc-v1_4.test.ts +239 -0
- package/test/clr-v2_0.test.ts +225 -0
- package/test/cmi5-v1_0.test.ts +196 -0
- package/test/contracts.test.ts +125 -0
- package/test/fixtures/cmi5/extended-cmi5.xml +72 -0
- package/test/fixtures/cmi5/simple-cmi5.xml +26 -0
- package/test/lti.test.ts +146 -0
- package/test/oneroster-v1_2.test.ts +234 -0
- package/test/open-badges-v3_0.test.ts +144 -0
- package/test/qti-v2_1.test.ts +146 -0
- package/test/qti-v2_2.test.ts +154 -0
- package/test/qti-v3_0_1.test.ts +576 -0
- package/test/schema-examples.test.ts +101 -0
- package/test/vc-data-model-v2_0.test.ts +63 -0
- package/test/xapi.test.ts +384 -0
- package/tsconfig.json +7 -0
- package/vc-data-model-v2_0-zod-templates.md +43 -0
- package/xapi-zod-templates.md +95 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import { XmlExtensionNodeListSchema, addIssue, strictObject } from "./shared";
|
|
4
|
+
|
|
5
|
+
const QtiPnpExtensionStringSchema = z.string().min(1);
|
|
6
|
+
const QtiPnpHexColorSchema = z.string().regex(/^#?[A-Fa-f0-9]{3,8}$/u);
|
|
7
|
+
|
|
8
|
+
export const QtiPnpReplaceAccessModeSchema = strictObject({
|
|
9
|
+
replaceAccessModes: z
|
|
10
|
+
.array(
|
|
11
|
+
z.enum([
|
|
12
|
+
"auditory",
|
|
13
|
+
"color",
|
|
14
|
+
"item-size",
|
|
15
|
+
"olfactory",
|
|
16
|
+
"orientation",
|
|
17
|
+
"position",
|
|
18
|
+
"tactile",
|
|
19
|
+
"text-on-image",
|
|
20
|
+
"textual",
|
|
21
|
+
"visual",
|
|
22
|
+
]),
|
|
23
|
+
)
|
|
24
|
+
.optional(),
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export const QtiPnpLanguageModeSchema = strictObject({
|
|
28
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
29
|
+
xmlLang: z.string(),
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export const QtiPnpAdditionalTestingTimeSchema = strictObject({
|
|
33
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
34
|
+
timeMultiplier: z.number().optional(),
|
|
35
|
+
fixedMinutes: z.number().int().optional(),
|
|
36
|
+
unlimited: z.boolean().optional(),
|
|
37
|
+
}).superRefine((value, context) => {
|
|
38
|
+
const provided = [
|
|
39
|
+
value.timeMultiplier !== undefined,
|
|
40
|
+
value.fixedMinutes !== undefined,
|
|
41
|
+
value.unlimited === true,
|
|
42
|
+
].filter(Boolean).length;
|
|
43
|
+
|
|
44
|
+
if (provided > 1) {
|
|
45
|
+
addIssue(context, [], "Only one of timeMultiplier, fixedMinutes, or unlimited may be supplied.");
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
export const QtiPnpBrailleSchema = strictObject({
|
|
50
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
51
|
+
deliveryMode: z.enum(["refreshable", "embossed"]).optional(),
|
|
52
|
+
grade: z.enum(["1", "2", "3"]).optional(),
|
|
53
|
+
brailleType: QtiPnpExtensionStringSchema.optional(),
|
|
54
|
+
mathType: QtiPnpExtensionStringSchema.optional(),
|
|
55
|
+
xmlLang: z.string().optional(),
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
export const QtiPnpEnvironmentSchema = strictObject({
|
|
59
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
60
|
+
description: z.string().optional(),
|
|
61
|
+
medical: z.string().optional(),
|
|
62
|
+
software: z.string().optional(),
|
|
63
|
+
hardware: z.string().optional(),
|
|
64
|
+
breaks: z.boolean().optional(),
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
export const QtiPnpFeatureNameSchema = z.enum([
|
|
68
|
+
"linguistic-guidance",
|
|
69
|
+
"keyword-emphasis",
|
|
70
|
+
"keyword-translation",
|
|
71
|
+
"simplified-language-portions",
|
|
72
|
+
"simplified-graphics",
|
|
73
|
+
"item-translation",
|
|
74
|
+
"sign-language",
|
|
75
|
+
"encouragement",
|
|
76
|
+
"additional-testing-time",
|
|
77
|
+
"line-reader",
|
|
78
|
+
"invert-display-polarity",
|
|
79
|
+
"magnification",
|
|
80
|
+
"spoken",
|
|
81
|
+
"tactile",
|
|
82
|
+
"braille",
|
|
83
|
+
"answer-masking",
|
|
84
|
+
"keyboard-directions",
|
|
85
|
+
"additional-directions",
|
|
86
|
+
"long-description",
|
|
87
|
+
"captions",
|
|
88
|
+
"transcript",
|
|
89
|
+
"alternative-text",
|
|
90
|
+
"audio-description",
|
|
91
|
+
"high-contrast",
|
|
92
|
+
"input-requirements",
|
|
93
|
+
"language-of-interface",
|
|
94
|
+
"layout-single-column",
|
|
95
|
+
"text-appearance",
|
|
96
|
+
"calculator-on-screen",
|
|
97
|
+
"dictionary-on-screen",
|
|
98
|
+
"glossary-on-screen",
|
|
99
|
+
"thesaurus-on-screen",
|
|
100
|
+
"homophone-checker-on-screen",
|
|
101
|
+
"note-taking-on-screen",
|
|
102
|
+
"visual-organizer-on-screen",
|
|
103
|
+
"outliner-on-screen",
|
|
104
|
+
"peer-interaction-on-screen",
|
|
105
|
+
"spell-checker-on-screen",
|
|
106
|
+
]);
|
|
107
|
+
|
|
108
|
+
export const QtiPnpFeatureSetSchema = strictObject({
|
|
109
|
+
features: z.array(QtiPnpFeatureNameSchema).optional(),
|
|
110
|
+
extensions: XmlExtensionNodeListSchema.optional(),
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
export const QtiPnpFontFaceSchema = strictObject({
|
|
114
|
+
fontName: z.array(z.string()).optional(),
|
|
115
|
+
genericFontFace: z.enum(["serif", "sans serif", "monospaced", "cursive", "fantasy"]).optional(),
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
export const QtiPnpInvertDisplayPolaritySchema = strictObject({
|
|
119
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
120
|
+
foreground: QtiPnpHexColorSchema.optional(),
|
|
121
|
+
background: QtiPnpHexColorSchema.optional(),
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
export const QtiPnpLineReaderSchema = strictObject({
|
|
125
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
126
|
+
highlightColor: QtiPnpHexColorSchema.optional(),
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
export const QtiPnpLongDescriptionSchema = strictObject({
|
|
130
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
131
|
+
hideVisually: z.boolean().optional(),
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
export const QtiPnpZoomAmountSchema = strictObject({
|
|
135
|
+
zoomAmount: z.number().optional(),
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
export const QtiPnpMagnificationSchema = strictObject({
|
|
139
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
140
|
+
allContent: QtiPnpZoomAmountSchema.optional(),
|
|
141
|
+
text: QtiPnpZoomAmountSchema.optional(),
|
|
142
|
+
nonText: QtiPnpZoomAmountSchema.optional(),
|
|
143
|
+
}).superRefine((value, context) => {
|
|
144
|
+
if (value.allContent && (value.text || value.nonText)) {
|
|
145
|
+
addIssue(context, ["allContent"], "allContent cannot be combined with text/nonText magnification settings.");
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
export const QtiPnpSpokenSchema = strictObject({
|
|
150
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
151
|
+
readingType: z.enum(["screen-reader", "computer-read-aloud"]).optional(),
|
|
152
|
+
restrictionTypes: z.array(QtiPnpExtensionStringSchema).optional(),
|
|
153
|
+
speechRate: z.number().int().optional(),
|
|
154
|
+
pitch: z.number().optional(),
|
|
155
|
+
volume: z.number().optional(),
|
|
156
|
+
linkIndication: z.enum(["speak-link", "different-voice", "sound-effect", "none"]).optional(),
|
|
157
|
+
typingEcho: z.enum(["characters", "words", "characters-and-words", "none"]).optional(),
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
export const QtiPnpTextAppearanceSchema = strictObject({
|
|
161
|
+
...QtiPnpReplaceAccessModeSchema.shape,
|
|
162
|
+
backgroundColor: QtiPnpHexColorSchema.optional(),
|
|
163
|
+
fontColor: QtiPnpHexColorSchema.optional(),
|
|
164
|
+
fontSize: z.number().optional(),
|
|
165
|
+
fontFace: QtiPnpFontFaceSchema.optional(),
|
|
166
|
+
lineSpacing: z.number().optional(),
|
|
167
|
+
lineHeight: z.number().optional(),
|
|
168
|
+
letterSpacing: z.number().optional(),
|
|
169
|
+
uniformFontSizing: z.boolean().optional(),
|
|
170
|
+
wordSpacing: z.number().optional(),
|
|
171
|
+
wordWrapping: z.boolean().optional(),
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
export const QtiPnpCalculatorSchema = strictObject({
|
|
175
|
+
calculatorType: QtiPnpExtensionStringSchema.optional(),
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
export const QtiPnpPersonSourcedIdSchema = strictObject({
|
|
179
|
+
value: z.string(),
|
|
180
|
+
sourceSystem: z.string(),
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
export const QtiAccessForAllPnpSchema = strictObject({
|
|
184
|
+
hazardAvoidance: z.array(QtiPnpExtensionStringSchema).optional(),
|
|
185
|
+
inputRequirements: QtiPnpExtensionStringSchema.optional(),
|
|
186
|
+
languageOfInterface: z.array(QtiPnpLanguageModeSchema).optional(),
|
|
187
|
+
linguisticGuidance: QtiPnpReplaceAccessModeSchema.optional(),
|
|
188
|
+
keywordEmphasis: QtiPnpReplaceAccessModeSchema.optional(),
|
|
189
|
+
keywordTranslation: QtiPnpLanguageModeSchema.optional(),
|
|
190
|
+
simplifiedLanguagePortions: QtiPnpReplaceAccessModeSchema.optional(),
|
|
191
|
+
simplifiedGraphics: QtiPnpReplaceAccessModeSchema.optional(),
|
|
192
|
+
itemTranslation: QtiPnpLanguageModeSchema.optional(),
|
|
193
|
+
signLanguage: QtiPnpLanguageModeSchema.optional(),
|
|
194
|
+
encouragement: QtiPnpReplaceAccessModeSchema.optional(),
|
|
195
|
+
additionalTestingTime: QtiPnpAdditionalTestingTimeSchema.optional(),
|
|
196
|
+
lineReader: QtiPnpLineReaderSchema.optional(),
|
|
197
|
+
invertDisplayPolarity: QtiPnpInvertDisplayPolaritySchema.optional(),
|
|
198
|
+
magnification: QtiPnpMagnificationSchema.optional(),
|
|
199
|
+
spoken: QtiPnpSpokenSchema.optional(),
|
|
200
|
+
tactile: QtiPnpReplaceAccessModeSchema.optional(),
|
|
201
|
+
braille: QtiPnpBrailleSchema.optional(),
|
|
202
|
+
answerMasking: QtiPnpReplaceAccessModeSchema.optional(),
|
|
203
|
+
keyboardDirections: QtiPnpReplaceAccessModeSchema.optional(),
|
|
204
|
+
additionalDirections: QtiPnpReplaceAccessModeSchema.optional(),
|
|
205
|
+
longDescription: QtiPnpLongDescriptionSchema.optional(),
|
|
206
|
+
captions: QtiPnpReplaceAccessModeSchema.optional(),
|
|
207
|
+
environment: QtiPnpEnvironmentSchema.optional(),
|
|
208
|
+
transcript: QtiPnpReplaceAccessModeSchema.optional(),
|
|
209
|
+
alternativeText: QtiPnpReplaceAccessModeSchema.optional(),
|
|
210
|
+
audioDescription: QtiPnpReplaceAccessModeSchema.optional(),
|
|
211
|
+
highContrast: QtiPnpReplaceAccessModeSchema.optional(),
|
|
212
|
+
layoutSingleColumn: QtiPnpReplaceAccessModeSchema.optional(),
|
|
213
|
+
textAppearance: QtiPnpTextAppearanceSchema.optional(),
|
|
214
|
+
calculatorOnScreen: QtiPnpCalculatorSchema.optional(),
|
|
215
|
+
dictionaryOnScreen: z.boolean().optional(),
|
|
216
|
+
glossaryOnScreen: z.boolean().optional(),
|
|
217
|
+
thesaurusOnScreen: z.boolean().optional(),
|
|
218
|
+
homophoneCheckerOnScreen: z.boolean().optional(),
|
|
219
|
+
noteTakingOnScreen: z.boolean().optional(),
|
|
220
|
+
visualOrganizerOnScreen: z.boolean().optional(),
|
|
221
|
+
outlinerOnScreen: z.boolean().optional(),
|
|
222
|
+
peerInteractionOnScreen: z.boolean().optional(),
|
|
223
|
+
spellCheckerOnScreen: z.boolean().optional(),
|
|
224
|
+
activateAtInitializationSet: QtiPnpFeatureSetSchema.optional(),
|
|
225
|
+
activateAsOptionSet: QtiPnpFeatureSetSchema.optional(),
|
|
226
|
+
prohibitSet: QtiPnpFeatureSetSchema.optional(),
|
|
227
|
+
extensions: XmlExtensionNodeListSchema.optional(),
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
export const QtiAccessForAllPnpRecordSchema = strictObject({
|
|
231
|
+
personSourcedId: QtiPnpPersonSourcedIdSchema,
|
|
232
|
+
appointmentId: z.array(z.string()).optional(),
|
|
233
|
+
accessForAllPnp: QtiAccessForAllPnpSchema,
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
export const QtiAccessForAllPnpRecordsSchema = strictObject({
|
|
237
|
+
records: z.array(QtiAccessForAllPnpRecordSchema).min(1),
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
export const QtiAccessForAllPnpDocumentSchema = strictObject({
|
|
241
|
+
accessForAllPnp: QtiAccessForAllPnpSchema,
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
export const QtiAccessForAllPnpRecordsDocumentSchema = strictObject({
|
|
245
|
+
accessForAllPnpRecords: QtiAccessForAllPnpRecordsSchema,
|
|
246
|
+
});
|
|
247
|
+
// Inferred types from exported Zod validators.
|
|
248
|
+
export type QtiPnpReplaceAccessMode = z.infer<typeof QtiPnpReplaceAccessModeSchema>;
|
|
249
|
+
export type QtiPnpLanguageMode = z.infer<typeof QtiPnpLanguageModeSchema>;
|
|
250
|
+
export type QtiPnpAdditionalTestingTime = z.infer<typeof QtiPnpAdditionalTestingTimeSchema>;
|
|
251
|
+
export type QtiPnpBraille = z.infer<typeof QtiPnpBrailleSchema>;
|
|
252
|
+
export type QtiPnpEnvironment = z.infer<typeof QtiPnpEnvironmentSchema>;
|
|
253
|
+
export type QtiPnpFeatureName = z.infer<typeof QtiPnpFeatureNameSchema>;
|
|
254
|
+
export type QtiPnpFeatureSet = z.infer<typeof QtiPnpFeatureSetSchema>;
|
|
255
|
+
export type QtiPnpFontFace = z.infer<typeof QtiPnpFontFaceSchema>;
|
|
256
|
+
export type QtiPnpInvertDisplayPolarity = z.infer<typeof QtiPnpInvertDisplayPolaritySchema>;
|
|
257
|
+
export type QtiPnpLineReader = z.infer<typeof QtiPnpLineReaderSchema>;
|
|
258
|
+
export type QtiPnpLongDescription = z.infer<typeof QtiPnpLongDescriptionSchema>;
|
|
259
|
+
export type QtiPnpZoomAmount = z.infer<typeof QtiPnpZoomAmountSchema>;
|
|
260
|
+
export type QtiPnpMagnification = z.infer<typeof QtiPnpMagnificationSchema>;
|
|
261
|
+
export type QtiPnpSpoken = z.infer<typeof QtiPnpSpokenSchema>;
|
|
262
|
+
export type QtiPnpTextAppearance = z.infer<typeof QtiPnpTextAppearanceSchema>;
|
|
263
|
+
export type QtiPnpCalculator = z.infer<typeof QtiPnpCalculatorSchema>;
|
|
264
|
+
export type QtiPnpPersonSourcedId = z.infer<typeof QtiPnpPersonSourcedIdSchema>;
|
|
265
|
+
export type QtiAccessForAllPnp = z.infer<typeof QtiAccessForAllPnpSchema>;
|
|
266
|
+
export type QtiAccessForAllPnpRecord = z.infer<typeof QtiAccessForAllPnpRecordSchema>;
|
|
267
|
+
export type QtiAccessForAllPnpRecords = z.infer<typeof QtiAccessForAllPnpRecordsSchema>;
|
|
268
|
+
export type QtiAccessForAllPnpDocument = z.infer<typeof QtiAccessForAllPnpDocumentSchema>;
|
|
269
|
+
export type QtiAccessForAllPnpRecordsDocument = z.infer<typeof QtiAccessForAllPnpRecordsDocumentSchema>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export {
|
|
2
|
+
XmlExtensionNodeListSchema as QtiXmlExtensionNodeListSchema,
|
|
3
|
+
XmlExtensionNodeSchema as QtiXmlExtensionNodeSchema,
|
|
4
|
+
} from "./shared";
|
|
5
|
+
|
|
6
|
+
export * from "./imsqti_asiv3p0p1_v1p0";
|
|
7
|
+
export * from "./imsqti_itemv3p0p1_v1p0";
|
|
8
|
+
export * from "./imsqti_metadatav3p0_v1p0";
|
|
9
|
+
export * from "./imsqti_outcomev3p0p1_v1p0";
|
|
10
|
+
export * from "./imsqti_responseprocessingv3p0p1_v1p0";
|
|
11
|
+
export * from "./imsqti_resultv3p0_v1p0";
|
|
12
|
+
export * from "./imsqti_sectionv3p0p1_v1p0";
|
|
13
|
+
export * from "./imsqti_stimulusv3p0p1_v1p0";
|
|
14
|
+
export * from "./imsqti_testv3p0p1_v1p0";
|
|
15
|
+
export * from "./imsqti_usagedatav3p0_v1p0";
|
|
16
|
+
export * from "./imsqtiv3p0_afa3p0pnp_v1p0";
|
|
17
|
+
|
|
18
|
+
import { QtiAsiProfileDocumentSchema } from "./imsqti_asiv3p0p1_v1p0";
|
|
19
|
+
import { QtiAssessmentItemDocumentSchema, QtiItemProfileDocumentSchema } from "./imsqti_itemv3p0p1_v1p0";
|
|
20
|
+
import { QtiMetadataDocumentSchema } from "./imsqti_metadatav3p0_v1p0";
|
|
21
|
+
import { QtiOutcomeDeclarationDocumentSchema } from "./imsqti_outcomev3p0p1_v1p0";
|
|
22
|
+
import { QtiResponseProcessingDocumentSchema } from "./imsqti_responseprocessingv3p0p1_v1p0";
|
|
23
|
+
import { QtiAssessmentResultDocumentSchema } from "./imsqti_resultv3p0_v1p0";
|
|
24
|
+
import { QtiAssessmentSectionDocumentSchema } from "./imsqti_sectionv3p0p1_v1p0";
|
|
25
|
+
import { QtiAssessmentStimulusDocumentSchema } from "./imsqti_stimulusv3p0p1_v1p0";
|
|
26
|
+
import {
|
|
27
|
+
QtiAssessmentTestDocumentSchema,
|
|
28
|
+
QtiOutcomeProcessingDocumentSchema,
|
|
29
|
+
QtiTestProfileDocumentSchema,
|
|
30
|
+
} from "./imsqti_testv3p0p1_v1p0";
|
|
31
|
+
import { QtiUsageDataDocumentSchema } from "./imsqti_usagedatav3p0_v1p0";
|
|
32
|
+
import { QtiAccessForAllPnpDocumentSchema, QtiAccessForAllPnpRecordsDocumentSchema } from "./imsqtiv3p0_afa3p0pnp_v1p0";
|
|
33
|
+
|
|
34
|
+
export const Qti301DerivedZodTemplates = {
|
|
35
|
+
qtiAsiProfileDocument: QtiAsiProfileDocumentSchema,
|
|
36
|
+
qtiItemProfileDocument: QtiItemProfileDocumentSchema,
|
|
37
|
+
qtiTestProfileDocument: QtiTestProfileDocumentSchema,
|
|
38
|
+
qtiAssessmentItemDocument: QtiAssessmentItemDocumentSchema,
|
|
39
|
+
qtiAssessmentSectionDocument: QtiAssessmentSectionDocumentSchema,
|
|
40
|
+
qtiAssessmentStimulusDocument: QtiAssessmentStimulusDocumentSchema,
|
|
41
|
+
qtiAssessmentTestDocument: QtiAssessmentTestDocumentSchema,
|
|
42
|
+
qtiOutcomeDeclarationDocument: QtiOutcomeDeclarationDocumentSchema,
|
|
43
|
+
qtiOutcomeProcessingDocument: QtiOutcomeProcessingDocumentSchema,
|
|
44
|
+
qtiResponseProcessingDocument: QtiResponseProcessingDocumentSchema,
|
|
45
|
+
qtiMetadataDocument: QtiMetadataDocumentSchema,
|
|
46
|
+
qtiAssessmentResultDocument: QtiAssessmentResultDocumentSchema,
|
|
47
|
+
qtiUsageDataDocument: QtiUsageDataDocumentSchema,
|
|
48
|
+
qtiAccessForAllPnpDocument: QtiAccessForAllPnpDocumentSchema,
|
|
49
|
+
qtiAccessForAllPnpRecordsDocument: QtiAccessForAllPnpRecordsDocumentSchema,
|
|
50
|
+
} as const;
|