%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
import {SchemaObject} from "../types" type MetaSchema = (root: boolean) => SchemaObject const shared: MetaSchema = (root) => { const sch: SchemaObject = { nullable: {type: "boolean"}, metadata: { optionalProperties: { union: {elements: {ref: "schema"}}, }, additionalProperties: true, }, } if (root) sch.definitions = {values: {ref: "schema"}} return sch } const emptyForm: MetaSchema = (root) => ({ optionalProperties: shared(root), }) const refForm: MetaSchema = (root) => ({ properties: { ref: {type: "string"}, }, optionalProperties: shared(root), }) const typeForm: MetaSchema = (root) => ({ properties: { type: { enum: [ "boolean", "timestamp", "string", "float32", "float64", "int8", "uint8", "int16", "uint16", "int32", "uint32", ], }, }, optionalProperties: shared(root), }) const enumForm: MetaSchema = (root) => ({ properties: { enum: {elements: {type: "string"}}, }, optionalProperties: shared(root), }) const elementsForm: MetaSchema = (root) => ({ properties: { elements: {ref: "schema"}, }, optionalProperties: shared(root), }) const propertiesForm: MetaSchema = (root) => ({ properties: { properties: {values: {ref: "schema"}}, }, optionalProperties: { optionalProperties: {values: {ref: "schema"}}, additionalProperties: {type: "boolean"}, ...shared(root), }, }) const optionalPropertiesForm: MetaSchema = (root) => ({ properties: { optionalProperties: {values: {ref: "schema"}}, }, optionalProperties: { additionalProperties: {type: "boolean"}, ...shared(root), }, }) const discriminatorForm: MetaSchema = (root) => ({ properties: { discriminator: {type: "string"}, mapping: { values: { metadata: { union: [propertiesForm(false), optionalPropertiesForm(false)], }, }, }, }, optionalProperties: shared(root), }) const valuesForm: MetaSchema = (root) => ({ properties: { values: {ref: "schema"}, }, optionalProperties: shared(root), }) const schema: MetaSchema = (root) => ({ metadata: { union: [ emptyForm, refForm, typeForm, enumForm, elementsForm, propertiesForm, optionalPropertiesForm, discriminatorForm, valuesForm, ].map((s) => s(root)), }, }) const jtdMetaSchema: SchemaObject = { definitions: { schema: schema(false), }, ...schema(true), } export default jtdMetaSchema