cedar-model-typescript-library 0.8.0 → 1.0.1
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/README.md +78 -2
- package/dist/README.md +20 -0
- package/dist/index.d.ts +269 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.js +2 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/license.txt +26 -0
- package/dist/org/metadatacenter/io/builder/CedarBuilders.d.ts +52 -0
- package/dist/org/metadatacenter/io/builder/CedarBuilders.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/ReaderUtil.d.ts +33 -0
- package/dist/org/metadatacenter/io/reader/ReaderUtil.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/json/CedarJsonReaders.d.ts +20 -0
- package/dist/org/metadatacenter/io/reader/json/CedarJsonReaders.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/json/JsonAbstractArtifactReader.d.ts +26 -0
- package/dist/org/metadatacenter/io/reader/json/JsonAbstractArtifactReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/json/JsonAbstractInstanceArtifactReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/json/JsonAbstractSchemaArtifactReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/json/JsonContainerArtifactReader.d.ts +45 -0
- package/dist/org/metadatacenter/io/reader/json/JsonContainerArtifactReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/json/JsonTemplateElementReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/json/JsonTemplateFieldReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/json/JsonTemplateInstanceReader.d.ts +108 -0
- package/dist/org/metadatacenter/io/reader/json/JsonTemplateInstanceReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/yaml/CedarYamlReaders.d.ts +32 -0
- package/dist/org/metadatacenter/io/reader/yaml/CedarYamlReaders.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlAbstractArtifactReader.d.ts +44 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlAbstractArtifactReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlContainerArtifactReader.d.ts +15 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlContainerArtifactReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateElementReader.d.ts +24 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateElementReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateFieldReader.d.ts +27 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateFieldReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateFieldTypeSpecificReader.d.ts +16 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateFieldTypeSpecificReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateInstanceReader.d.ts +41 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateInstanceReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateReader.d.ts +33 -0
- package/dist/org/metadatacenter/io/reader/yaml/YamlTemplateReader.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/WriterUtil.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/json/CedarJsonWriters.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/json/JsonTemplateElementWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/json/JsonTemplateInstanceWriter.d.ts +31 -0
- package/dist/org/metadatacenter/io/writer/json/JsonTemplateInstanceWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/json/JsonTemplateWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/CedarYamlWriters.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/SimpleYamlSerializer.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlAbstractArtifactWriter.d.ts +51 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlAbstractArtifactWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlAbstractContainerArtifactWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlPlainScalarPolicy.d.ts +4 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlPlainScalarPolicy.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlTemplateElementWriter.d.ts +12 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlTemplateElementWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlTemplateFieldWriterInternal.d.ts +23 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlTemplateFieldWriterInternal.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlTemplateInstanceWriter.d.ts +20 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlTemplateInstanceWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/io/writer/yaml/YamlTemplateWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/constants/CedarModel.d.ts +98 -0
- package/dist/org/metadatacenter/model/cedar/constants/CedarModel.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/constants/JsonSchema.d.ts +29 -0
- package/dist/org/metadatacenter/model/cedar/constants/JsonSchema.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/constants/YamlKeys.d.ts +86 -0
- package/dist/org/metadatacenter/model/cedar/constants/YamlKeys.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfo.d.ts +39 -0
- package/dist/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfo.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfoBuilder.d.ts +21 -0
- package/dist/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfoBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfo.d.ts +36 -0
- package/dist/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfo.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfoBuilder.d.ts +20 -0
- package/dist/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfoBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultiple.d.ts +32 -0
- package/dist/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultiple.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultipleBuilder.d.ts +19 -0
- package/dist/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultipleBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/deployment/ContainerArtifactChildrenInfo.d.ts +63 -0
- package/dist/org/metadatacenter/model/cedar/deployment/ContainerArtifactChildrenInfo.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/element/TemplateElementBuilder.d.ts +13 -0
- package/dist/org/metadatacenter/model/cedar/element/TemplateElementBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilder.d.ts +18 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilderImpl.d.ts +22 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilderImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/JsonFieldReaderControlledTerm.d.ts +21 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/JsonFieldReaderControlledTerm.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/YamlFieldReaderControlledTerm.d.ts +21 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/YamlFieldReaderControlledTerm.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractJsonControlledTermValueConstraintWriter.d.ts +12 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractJsonControlledTermValueConstraintWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractYamlControlledTermValueConstraintWriter.d.ts +16 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractYamlControlledTermValueConstraintWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermAbstractValueConstraint.d.ts +28 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermAbstractValueConstraint.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermDefaultValueBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermVersion.d.ts +20 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermVersion.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ValueConstraintRequirements.d.ts +40 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ValueConstraintRequirements.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermActionBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranch.d.ts +19 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranch.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranchBuilder.d.ts +26 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranchBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/JsonValueConstraintsBranchWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/YamlValueConstraintsBranchWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClass.d.ts +20 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClass.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClassBuilder.d.ts +27 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClassBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/JsonValueConstraintsClassWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/YamlValueConstraintsClassWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntology.d.ts +17 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntology.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntologyBuilder.d.ts +24 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntologyBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/JsonValueConstraintsOntologyWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/YamlValueConstraintsOntologyWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSet.d.ts +17 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSet.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSetBuilder.d.ts +25 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSetBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/JsonValueConstraintsValueSetWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/YamlValueConstraintsValueSetWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiField.d.ts +6 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldBuilder.d.ts +6 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldBuilderImpl.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldBuilderImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldImpl.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/JsonFieldReaderExtDoi.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/JsonFieldReaderExtDoi.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/JsonFieldWriterExtDoi.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/JsonFieldWriterExtDoi.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/YamlFieldReaderExtDoi.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/YamlFieldReaderExtDoi.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/YamlFieldWriterExtDoi.d.ts +7 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-doi/YamlFieldWriterExtDoi.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdField.d.ts +6 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldBuilder.d.ts +6 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldBuilderImpl.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldBuilderImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldImpl.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/JsonFieldReaderExtNihGrantId.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/JsonFieldReaderExtNihGrantId.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/JsonFieldWriterExtNihGrantId.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/JsonFieldWriterExtNihGrantId.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/YamlFieldReaderExtNihGrantId.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/YamlFieldReaderExtNihGrantId.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/YamlFieldWriterExtNihGrantId.d.ts +7 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/YamlFieldWriterExtNihGrantId.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedField.d.ts +6 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldBuilder.d.ts +6 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldBuilderImpl.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldBuilderImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldImpl.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/JsonFieldReaderExtPubmed.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/JsonFieldReaderExtPubmed.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/JsonFieldWriterExtPubmed.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/JsonFieldWriterExtPubmed.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/YamlFieldReaderExtPubmed.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/YamlFieldReaderExtPubmed.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/YamlFieldWriterExtPubmed.d.ts +7 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/YamlFieldWriterExtPubmed.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridField.d.ts +6 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldBuilder.d.ts +6 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldBuilderImpl.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldBuilderImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldImpl.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/JsonFieldReaderExtRrid.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/JsonFieldReaderExtRrid.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/JsonFieldWriterExtRrid.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/JsonFieldWriterExtRrid.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/YamlFieldReaderExtRrid.d.ts +10 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/YamlFieldReaderExtRrid.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/YamlFieldWriterExtRrid.d.ts +7 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/YamlFieldWriterExtRrid.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/list/JsonFieldReaderList.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListField.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldImpl.d.ts +18 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/JsonFieldReaderNumeric.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/JsonFieldWriterNumeric.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericDefaultValueValidator.d.ts +5 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericDefaultValueValidator.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilder.d.ts +13 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilderImpl.d.ts +22 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilderImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/ValueConstraintsNumericField.d.ts +12 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/ValueConstraintsNumericField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/YamlFieldReaderNumeric.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/numeric/YamlFieldWriterNumeric.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/JsonFieldReaderTemporal.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/JsonFieldWriterTemporal.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalDefaultValueValidator.d.ts +16 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalDefaultValueValidator.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilder.d.ts +14 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilderImpl.d.ts +22 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilderImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/ValueConstraintsTemporalField.d.ts +8 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/ValueConstraintsTemporalField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/YamlFieldReaderTemporal.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/dynamic/temporal/YamlFieldWriterTemporal.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/JsonStaticFieldWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/SizedStaticField.d.ts +17 -0
- package/dist/org/metadatacenter/model/cedar/field/static/SizedStaticField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/YamlStaticFieldWriter.d.ts +18 -0
- package/dist/org/metadatacenter/model/cedar/field/static/YamlStaticFieldWriter.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/JsonFieldReaderImage.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/JsonFieldWriterStaticImage.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/StaticImageField.d.ts +12 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/StaticImageField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilder.d.ts +9 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilder.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilderImpl.d.ts +15 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilderImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldImpl.d.ts +12 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldImpl.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/YamlFieldReaderImage.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/YamlFieldWriterStaticImage.d.ts +11 -0
- package/dist/org/metadatacenter/model/cedar/field/static/image/YamlFieldWriterStaticImage.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/field/static/youtube/YamlFieldWriterStaticYoutube.d.ts +11 -0
- package/dist/org/metadatacenter/model/cedar/field/static/youtube/YamlFieldWriterStaticYoutube.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/AttributeValueNamePolicy.d.ts +25 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/AttributeValueNamePolicy.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataAtomType.d.ts +26 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataAtomType.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueField.d.ts +17 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueField.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueFieldName.d.ts +13 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueFieldName.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataContainer.d.ts +50 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataContainer.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataControlledAtom.d.ts +30 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataControlledAtom.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataEmptyAtom.d.ts +23 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataEmptyAtom.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataLinkAtom.d.ts +44 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataLinkAtom.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataTypedAtom.d.ts +17 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceDataTypedAtom.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceInflater.d.ts +28 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceInflater.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceValidator.d.ts +96 -0
- package/dist/org/metadatacenter/model/cedar/template-instance/InstanceValidator.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/types/cedar-types/CedarFieldType.d.ts +71 -0
- package/dist/org/metadatacenter/model/cedar/types/cedar-types/CedarFieldType.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/types/wrapped-types/IsoDate.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/types/wrapped-types/PropertyIri.d.ts +18 -0
- package/dist/org/metadatacenter/model/cedar/types/wrapped-types/PropertyIri.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/types/wrapped-types/UiInputType.d.ts +58 -0
- package/dist/org/metadatacenter/model/cedar/types/wrapped-types/UiInputType.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/types/wrapped-types/YamlArtifactType.d.ts +75 -0
- package/dist/org/metadatacenter/model/cedar/types/wrapped-types/YamlArtifactType.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/util/compare/ComparisonError.d.ts +14 -0
- package/dist/org/metadatacenter/model/cedar/util/compare/ComparisonError.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/util/compare/JsonArtifactParsingResult.d.ts +36 -0
- package/dist/org/metadatacenter/model/cedar/util/compare/JsonArtifactParsingResult.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/util/compare/JsonObjectComparator.d.ts +47 -0
- package/dist/org/metadatacenter/model/cedar/util/compare/JsonObjectComparator.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/util/compare/YamlArtifactParsingResult.d.ts +28 -0
- package/dist/org/metadatacenter/model/cedar/util/compare/YamlArtifactParsingResult.d.ts.map +1 -0
- package/dist/org/metadatacenter/model/cedar/util/serialization/JsonTemplateElementContent.d.ts +25 -0
- package/dist/org/metadatacenter/model/cedar/util/serialization/JsonTemplateElementContent.d.ts.map +1 -0
- package/dist/package-lock.json +13 -0
- package/dist/package.json +19 -0
- package/license.txt +26 -0
- package/package.json +61 -7
- package/index.d.ts +0 -233
- package/index.d.ts.map +0 -1
- package/index.esm.js +0 -2
- package/index.esm.js.map +0 -1
- package/index.js +0 -2
- package/index.js.map +0 -1
- package/index.umd.js +0 -2
- package/index.umd.js.map +0 -1
- package/org/metadatacenter/io/builder/CedarBuilders.d.ts +0 -47
- package/org/metadatacenter/io/builder/CedarBuilders.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/ReaderUtil.d.ts +0 -25
- package/org/metadatacenter/io/reader/ReaderUtil.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/json/CedarJsonReaders.d.ts +0 -20
- package/org/metadatacenter/io/reader/json/CedarJsonReaders.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/json/JsonAbstractArtifactReader.d.ts +0 -14
- package/org/metadatacenter/io/reader/json/JsonAbstractArtifactReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/json/JsonAbstractInstanceArtifactReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/json/JsonAbstractSchemaArtifactReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/json/JsonContainerArtifactReader.d.ts +0 -29
- package/org/metadatacenter/io/reader/json/JsonContainerArtifactReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/json/JsonTemplateElementReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/json/JsonTemplateFieldReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/yaml/CedarYamlReaders.d.ts +0 -9
- package/org/metadatacenter/io/reader/yaml/CedarYamlReaders.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/yaml/YamlAbstractArtifactReader.d.ts +0 -14
- package/org/metadatacenter/io/reader/yaml/YamlAbstractArtifactReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/yaml/YamlContainerArtifactReader.d.ts +0 -15
- package/org/metadatacenter/io/reader/yaml/YamlContainerArtifactReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/yaml/YamlTemplateElementReader.d.ts +0 -19
- package/org/metadatacenter/io/reader/yaml/YamlTemplateElementReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/yaml/YamlTemplateFieldReader.d.ts +0 -22
- package/org/metadatacenter/io/reader/yaml/YamlTemplateFieldReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/yaml/YamlTemplateFieldTypeSpecificReader.d.ts +0 -11
- package/org/metadatacenter/io/reader/yaml/YamlTemplateFieldTypeSpecificReader.d.ts.map +0 -1
- package/org/metadatacenter/io/reader/yaml/YamlTemplateReader.d.ts +0 -21
- package/org/metadatacenter/io/reader/yaml/YamlTemplateReader.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/WriterUtil.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/json/CedarJsonWriters.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/json/JsonTemplateElementWriter.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/json/JsonTemplateInstanceWriter.d.ts +0 -21
- package/org/metadatacenter/io/writer/json/JsonTemplateInstanceWriter.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/json/JsonTemplateWriter.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/yaml/CedarYamlWriters.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/yaml/SimpleYamlSerializer.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/yaml/YamlAbstractArtifactWriter.d.ts +0 -31
- package/org/metadatacenter/io/writer/yaml/YamlAbstractArtifactWriter.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/yaml/YamlAbstractContainerArtifactWriter.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/yaml/YamlTemplateElementWriter.d.ts +0 -12
- package/org/metadatacenter/io/writer/yaml/YamlTemplateElementWriter.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/yaml/YamlTemplateFieldWriterInternal.d.ts +0 -22
- package/org/metadatacenter/io/writer/yaml/YamlTemplateFieldWriterInternal.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/yaml/YamlTemplateInstanceWriter.d.ts +0 -18
- package/org/metadatacenter/io/writer/yaml/YamlTemplateInstanceWriter.d.ts.map +0 -1
- package/org/metadatacenter/io/writer/yaml/YamlTemplateWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/constants/CedarModel.d.ts +0 -80
- package/org/metadatacenter/model/cedar/constants/CedarModel.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/constants/JsonSchema.d.ts +0 -32
- package/org/metadatacenter/model/cedar/constants/JsonSchema.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/constants/YamlKeys.d.ts +0 -80
- package/org/metadatacenter/model/cedar/constants/YamlKeys.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfo.d.ts +0 -22
- package/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfo.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfoBuilder.d.ts +0 -19
- package/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfoBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfo.d.ts +0 -25
- package/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfo.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfoBuilder.d.ts +0 -22
- package/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfoBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultiple.d.ts +0 -7
- package/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultiple.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultipleBuilder.d.ts +0 -8
- package/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultipleBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/deployment/ContainerArtifactChildrenInfo.d.ts +0 -26
- package/org/metadatacenter/model/cedar/deployment/ContainerArtifactChildrenInfo.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/element/TemplateElementBuilder.d.ts +0 -10
- package/org/metadatacenter/model/cedar/element/TemplateElementBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilder.d.ts +0 -16
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilderImpl.d.ts +0 -20
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilderImpl.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/JsonFieldReaderControlledTerm.d.ts +0 -16
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/JsonFieldReaderControlledTerm.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/YamlFieldReaderControlledTerm.d.ts +0 -10
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/YamlFieldReaderControlledTerm.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractJsonControlledTermValueConstraintWriter.d.ts +0 -7
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractJsonControlledTermValueConstraintWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractYamlControlledTermValueConstraintWriter.d.ts +0 -7
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractYamlControlledTermValueConstraintWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermAbstractValueConstraint.d.ts +0 -9
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermAbstractValueConstraint.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermDefaultValueBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermActionBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranch.d.ts +0 -18
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranch.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranchBuilder.d.ts +0 -16
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranchBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/JsonValueConstraintsBranchWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/YamlValueConstraintsBranchWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClass.d.ts +0 -19
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClass.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClassBuilder.d.ts +0 -17
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClassBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/JsonValueConstraintsClassWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/YamlValueConstraintsClassWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntology.d.ts +0 -16
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntology.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntologyBuilder.d.ts +0 -14
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntologyBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/JsonValueConstraintsOntologyWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/YamlValueConstraintsOntologyWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSet.d.ts +0 -16
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSet.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSetBuilder.d.ts +0 -14
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSetBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/JsonValueConstraintsValueSetWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/YamlValueConstraintsValueSetWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/list/JsonFieldReaderList.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListField.d.ts +0 -9
- package/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListField.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldImpl.d.ts +0 -11
- package/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldImpl.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/JsonFieldReaderNumeric.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/JsonFieldWriterNumeric.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilder.d.ts +0 -12
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilderImpl.d.ts +0 -20
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilderImpl.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/ValueConstraintsNumericField.d.ts +0 -11
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/ValueConstraintsNumericField.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/YamlFieldReaderNumeric.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/numeric/YamlFieldWriterNumeric.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/JsonFieldReaderTemporal.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/JsonFieldWriterTemporal.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilder.d.ts +0 -13
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilderImpl.d.ts +0 -20
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilderImpl.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/ValueConstraintsTemporalField.d.ts +0 -7
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/ValueConstraintsTemporalField.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/YamlFieldReaderTemporal.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/dynamic/temporal/YamlFieldWriterTemporal.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/JsonStaticFieldWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/YamlStaticFieldWriter.d.ts +0 -15
- package/org/metadatacenter/model/cedar/field/static/YamlStaticFieldWriter.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/image/JsonFieldReaderImage.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/image/JsonFieldWriterStaticImage.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/image/StaticImageField.d.ts +0 -8
- package/org/metadatacenter/model/cedar/field/static/image/StaticImageField.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilder.d.ts +0 -7
- package/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilder.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilderImpl.d.ts +0 -11
- package/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilderImpl.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldImpl.d.ts +0 -10
- package/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldImpl.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/image/YamlFieldReaderImage.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/image/YamlFieldWriterStaticImage.d.ts +0 -10
- package/org/metadatacenter/model/cedar/field/static/image/YamlFieldWriterStaticImage.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/field/static/youtube/YamlFieldWriterStaticYoutube.d.ts +0 -10
- package/org/metadatacenter/model/cedar/field/static/youtube/YamlFieldWriterStaticYoutube.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataAtomType.d.ts +0 -9
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataAtomType.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueField.d.ts +0 -17
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueField.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueFieldName.d.ts +0 -6
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueFieldName.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataContainer.d.ts +0 -21
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataContainer.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataControlledAtom.d.ts +0 -8
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataControlledAtom.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataEmptyAtom.d.ts +0 -3
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataEmptyAtom.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataLinkAtom.d.ts +0 -6
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataLinkAtom.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataTypedAtom.d.ts +0 -8
- package/org/metadatacenter/model/cedar/template-instance/InstanceDataTypedAtom.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/types/cedar-types/CedarFieldType.d.ts +0 -65
- package/org/metadatacenter/model/cedar/types/cedar-types/CedarFieldType.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/types/wrapped-types/IsoDate.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/types/wrapped-types/UiInputType.d.ts +0 -52
- package/org/metadatacenter/model/cedar/types/wrapped-types/UiInputType.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/types/wrapped-types/YamlArtifactType.d.ts +0 -69
- package/org/metadatacenter/model/cedar/types/wrapped-types/YamlArtifactType.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/util/compare/ComparisonError.d.ts +0 -15
- package/org/metadatacenter/model/cedar/util/compare/ComparisonError.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/util/compare/JsonArtifactParsingResult.d.ts +0 -15
- package/org/metadatacenter/model/cedar/util/compare/JsonArtifactParsingResult.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/util/compare/JsonObjectComparator.d.ts +0 -11
- package/org/metadatacenter/model/cedar/util/compare/JsonObjectComparator.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/util/compare/YamlArtifactParsingResult.d.ts +0 -15
- package/org/metadatacenter/model/cedar/util/compare/YamlArtifactParsingResult.d.ts.map +0 -1
- package/org/metadatacenter/model/cedar/util/serialization/JsonTemplateElementContent.d.ts +0 -9
- package/org/metadatacenter/model/cedar/util/serialization/JsonTemplateElementContent.d.ts.map +0 -1
- /package/{org → dist/org}/metadatacenter/behavior/JsonReaderBehavior.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/JsonReaderBehavior.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/JsonWriterBehavior.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/JsonWriterBehavior.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/ReaderWriterBehavior.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/ReaderWriterBehavior.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/YamlReaderBehavior.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/YamlReaderBehavior.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/YamlWriterBehavior.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/behavior/YamlWriterBehavior.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/CedarReaders.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/CedarReaders.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonAbstractInstanceArtifactReader.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonAbstractSchemaArtifactReader.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonArtifactReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonArtifactReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateElementReader.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateElementReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateElementReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateFieldReader.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateFieldReaderInternal.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateFieldReaderInternal.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateFieldReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateFieldReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateFieldTypeSpecificReader.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateFieldTypeSpecificReader.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateInstanceReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateInstanceReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateInstancetReader.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateInstancetReader.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateReader.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateReader.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/json/JsonTemplateReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlArtifactReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlArtifactReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlTemplateElementReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlTemplateElementReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlTemplateFieldReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlTemplateFieldReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlTemplateInstanceReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlTemplateInstanceReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlTemplateReaderResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/reader/yaml/YamlTemplateReaderResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/roundtrip/RoundTrip.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/roundtrip/RoundTrip.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/AbstractArtifactWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/AbstractArtifactWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/CedarWriters.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/CedarWriters.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/WriterUtil.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/CedarJsonWriters.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonAbstractArtifactWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonAbstractArtifactWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonAbstractContainerArtifactWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonAbstractContainerArtifactWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonAnnotationsWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonAnnotationsWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonAtomicWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonAtomicWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonTemplateElementWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonTemplateFieldWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonTemplateFieldWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonTemplateFieldWriterInternal.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonTemplateFieldWriterInternal.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/json/JsonTemplateWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/CedarYamlWriters.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/SimpleYamlSerializer.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/YamlAbstractContainerArtifactWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/YamlAnnotationsWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/YamlAnnotationsWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/YamlAtomicWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/YamlAtomicWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/YamlTemplateFieldWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/YamlTemplateFieldWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/io/writer/yaml/YamlTemplateWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractArtifacBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractArtifacBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractArtifact.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractArtifact.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractContainerArtifact.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractContainerArtifact.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractInstanceArtifact.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractInstanceArtifact.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractSchemaArtifact.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/AbstractSchemaArtifact.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/annotation/Annotation.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/annotation/Annotation.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/annotation/AnnotationAtId.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/annotation/AnnotationAtId.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/annotation/AnnotationAtValue.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/annotation/AnnotationAtValue.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/annotation/Annotations.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/annotation/Annotations.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/constants/NonStandardDatatype.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/constants/NonStandardDatatype.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/constants/TemplateProperty.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/constants/TemplateProperty.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/constants/XsdDatatype.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/constants/XsdDatatype.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/constants/YamlValues.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/constants/YamlValues.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfo.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfo.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysSingle.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysSingle.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysSingleBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysSingleBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoStatic.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoStatic.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoStaticBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/deployment/ChildDeploymentInfoStaticBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/element/TemplateElement.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/element/TemplateElement.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/ChoiceOptionEntity.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/ChoiceOptionEntity.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/JsonValueConstraintsWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/JsonValueConstraintsWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/TemplateField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/TemplateField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/TemplateFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/TemplateFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/UnknownTemplateField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/UnknownTemplateField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/ValueConstraints.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/ValueConstraints.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/YamlValueConstraintsWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/YamlValueConstraintsWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/JsonFieldReaderAttributeValue.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/JsonFieldReaderAttributeValue.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/JsonFieldWriterAttributeValue.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/JsonFieldWriterAttributeValue.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/YamlFieldReaderAttributeValue.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/YamlFieldReaderAttributeValue.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/YamlFieldWriterAttributeValue.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/attribute-value/YamlFieldWriterAttributeValue.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/BooleanField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/BooleanField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/BooleanFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/BooleanFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/BooleanFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/BooleanFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/BooleanFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/BooleanFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/JsonFieldReaderBoolean.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/JsonFieldReaderBoolean.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/JsonFieldWriterBoolean.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/JsonFieldWriterBoolean.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/ValueConstraintsBooleanField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/ValueConstraintsBooleanField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/YamlFieldReaderBoolean.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/YamlFieldReaderBoolean.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/YamlFieldWriterBoolean.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/boolean/YamlFieldWriterBoolean.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxOption.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxOption.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/JsonFieldReaderCheckbox.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/JsonFieldReaderCheckbox.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/JsonFieldWriterCheckbox.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/JsonFieldWriterCheckbox.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/ValueConstraintsCheckboxField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/ValueConstraintsCheckboxField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/YamlFieldReaderCheckbox.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/YamlFieldReaderCheckbox.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/YamlFieldWriterCheckbox.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/checkbox/YamlFieldWriterCheckbox.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/JsonFieldWriterControlledTerm.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/JsonFieldWriterControlledTerm.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/ValueConstraintsControlledTermField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/ValueConstraintsControlledTermField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/YamlFieldWriterControlledTerm.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/YamlFieldWriterControlledTerm.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermDefaultValue.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermDefaultValue.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermDefaultValueBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermAction.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermAction.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermActionBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/JsonValueConstraintsActionWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/JsonValueConstraintsActionWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/YamlValueConstraintsActionWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/YamlValueConstraintsActionWriter.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/JsonValueConstraintsBranchWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/YamlValueConstraintsBranchWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/JsonValueConstraintsClassWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/YamlValueConstraintsClassWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/JsonValueConstraintsOntologyWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/YamlValueConstraintsOntologyWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/JsonValueConstraintsValueSetWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/YamlValueConstraintsValueSetWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/EmailField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/EmailField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/EmailFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/EmailFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/EmailFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/EmailFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/EmailFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/EmailFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/JsonFieldReaderEmail.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/JsonFieldReaderEmail.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/JsonFieldWriterEmail.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/JsonFieldWriterEmail.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/YamlFieldReaderEmail.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/YamlFieldReaderEmail.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/YamlFieldWriterEmail.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/email/YamlFieldWriterEmail.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/JsonFieldReaderExtOrcid.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/JsonFieldReaderExtOrcid.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/JsonFieldWriterExtOrcid.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/JsonFieldWriterExtOrcid.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/YamlFieldReaderExtOrcid.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/YamlFieldReaderExtOrcid.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/YamlFieldWriterExtOrcid.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-orcid/YamlFieldWriterExtOrcid.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/JsonFieldReaderExtPfas.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/JsonFieldReaderExtPfas.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/JsonFieldWriterExtPfas.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/JsonFieldWriterExtPfas.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/YamlFieldReaderExtPfas.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/YamlFieldReaderExtPfas.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/YamlFieldWriterExtPfas.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-pfas/YamlFieldWriterExtPfas.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/JsonFieldReaderExtRor.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/JsonFieldReaderExtRor.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/JsonFieldWriterExtRor.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/JsonFieldWriterExtRor.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/YamlFieldReaderExtRor.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/YamlFieldReaderExtRor.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/YamlFieldWriterExtRor.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/ext-ror/YamlFieldWriterExtRor.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/JsonFieldReaderLink.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/JsonFieldReaderLink.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/JsonFieldWriterLink.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/JsonFieldWriterLink.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/LinkField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/LinkField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/LinkFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/LinkFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/LinkFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/LinkFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/LinkFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/LinkFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/YamlFieldReaderLink.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/YamlFieldReaderLink.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/YamlFieldWriterLink.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/link/YamlFieldWriterLink.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/JsonFieldReaderList.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/JsonFieldWriterList.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/JsonFieldWriterList.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListOption.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ListOption.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ValueConstraintsListField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/ValueConstraintsListField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/YamlFieldWriterList.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list/YamlFieldWriterList.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/YamlFieldReaderMultiSelectList.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/YamlFieldReaderMultiSelectList.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-single-choice/YamlFieldReaderSingleSelectList.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/list-single-choice/YamlFieldReaderSingleSelectList.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/numeric/JsonFieldReaderNumeric.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/numeric/JsonFieldWriterNumeric.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/numeric/NumericField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/numeric/NumericField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/numeric/YamlFieldReaderNumeric.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/numeric/YamlFieldWriterNumeric.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/JsonFieldReaderPhoneNumber.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/JsonFieldReaderPhoneNumber.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/JsonFieldWriterPhoneNumber.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/JsonFieldWriterPhoneNumber.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/YamlFieldReaderPhoneNumber.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/YamlFieldReaderPhoneNumber.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/YamlFieldWriterPhoneNumber.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/phone-number/YamlFieldWriterPhoneNumber.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/JsonFieldReaderRadio.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/JsonFieldReaderRadio.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/JsonFieldWriterRadio.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/JsonFieldWriterRadio.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioOption.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/RadioOption.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/ValueConstraintsRadioField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/ValueConstraintsRadioField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/YamlFieldReaderRadio.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/YamlFieldReaderRadio.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/YamlFieldWriterRadio.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/radio/YamlFieldWriterRadio.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/temporal/JsonFieldReaderTemporal.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/temporal/JsonFieldWriterTemporal.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/temporal/TemporalField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/temporal/TemporalField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/temporal/YamlFieldReaderTemporal.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/temporal/YamlFieldWriterTemporal.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/JsonFieldReaderTextArea.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/JsonFieldReaderTextArea.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/JsonFieldWriterTextArea.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/JsonFieldWriterTextArea.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/TextArea.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/TextArea.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/ValueConstraintsTextArea.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/ValueConstraintsTextArea.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/YamlFieldReaderTextArea.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/YamlFieldReaderTextArea.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/YamlFieldWriterTextArea.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textarea/YamlFieldWriterTextArea.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/JsonFieldReaderTextField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/JsonFieldReaderTextField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/JsonFieldWriterTextField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/JsonFieldWriterTextField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/TextField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/TextField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/ValueConstraintsTextField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/ValueConstraintsTextField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/YamlFieldReaderTextField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/YamlFieldReaderTextField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/YamlFieldWriterTextField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/dynamic/textfield/YamlFieldWriterTextField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/JsonStaticFieldWriter.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/image/JsonFieldReaderImage.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/image/JsonFieldWriterStaticImage.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/image/YamlFieldReaderImage.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/JsonFieldReaderPageBreak.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/JsonFieldReaderPageBreak.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/JsonFieldWriterStaticPageBreak.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/JsonFieldWriterStaticPageBreak.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/YamlFieldReaderPageBreak.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/YamlFieldReaderPageBreak.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/YamlFieldWriterStaticPageBreak.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/page-break/YamlFieldWriterStaticPageBreak.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/JsonFieldReaderRichText.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/JsonFieldReaderRichText.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/JsonFieldWriterStaticRichText.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/JsonFieldWriterStaticRichText.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/YamlFieldReaderRichText.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/YamlFieldReaderRichText.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/YamlFieldWriterStaticRichText.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/rich-text/YamlFieldWriterStaticRichText.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/JsonFieldReaderSectionBreak.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/JsonFieldReaderSectionBreak.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/JsonFieldWriterStaticSectionBreak.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/JsonFieldWriterStaticSectionBreak.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/YamlFieldReaderSectionBreak.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/YamlFieldReaderSectionBreak.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/YamlFieldWriterStaticSectionBreak.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/section-break/YamlFieldWriterStaticSectionBreak.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/JsonFieldReaderYoutube.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/JsonFieldReaderYoutube.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/JsonFieldWriterStaticYoutube.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/JsonFieldWriterStaticYoutube.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeField.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeField.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldBuilderImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldBuilderImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldImpl.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldImpl.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/YamlFieldReaderYoutube.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/field/static/youtube/YamlFieldReaderYoutube.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template/Template.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template/Template.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template/TemplateBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template/TemplateBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/InstanceDataAtomList.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/InstanceDataAtomList.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/InstanceDataAtomStringOrLinkType.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/InstanceDataAtomStringOrLinkType.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/InstanceDataEmptyNode.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/InstanceDataEmptyNode.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/InstanceDataStringAtom.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/InstanceDataStringAtom.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/TemplateInstance.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/TemplateInstance.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/TemplateInstanceBuilder.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/template-instance/TemplateInstanceBuilder.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/JsonNode.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/JsonNode.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/NullableNumber.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/NullableNumber.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/NullableString.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/NullableString.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/Primitive.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/Primitive.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/TemplateChild.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/basic-types/TemplateChild.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/bioportal-types/BioportalTermType.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/bioportal-types/BioportalTermType.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/cedar-types/CedarArtifactId.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/cedar-types/CedarArtifactId.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/cedar-types/CedarArtifactType.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/cedar-types/CedarArtifactType.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/cedar-types/CedarFieldCategory.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/cedar-types/CedarFieldCategory.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/cedar-types/CedarUser.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/cedar-types/CedarUser.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/helper-types/CompareFileFormat.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/helper-types/CompareFileFormat.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/helper-types/CompareFileSource.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/helper-types/CompareFileSource.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/AdditionalProperties.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/AdditionalProperties.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/ArtifactSchema.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/ArtifactSchema.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/BiboStatus.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/BiboStatus.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/Iri.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/Iri.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/IsoDate.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/JavascriptType.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/JavascriptType.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/Language.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/Language.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/NumberType.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/NumberType.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/PavVersion.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/PavVersion.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/SchemaVersion.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/SchemaVersion.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/SemVer.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/SemVer.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/TemporalGranularity.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/TemporalGranularity.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/TemporalType.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/TemporalType.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/TimeFormat.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/types/wrapped-types/TimeFormat.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/ComparableObject.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/ComparableObject.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/ComparisonErrorType.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/ComparisonErrorType.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/ComparisonResult.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/ComparisonResult.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/YamlComparisonErrorType.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/YamlComparisonErrorType.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/YamlObjectComparator.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/compare/YamlObjectComparator.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/path/JsonPath.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/path/JsonPath.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonContainerArtifactContent.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonContainerArtifactContent.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonTemplateContent.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonTemplateContent.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonTemplateFieldContentDynamic.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonTemplateFieldContentDynamic.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonTemplateFieldContentStatic.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonTemplateFieldContentStatic.d.ts.map +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonTemplateInstanceContent.d.ts +0 -0
- /package/{org → dist/org}/metadatacenter/model/cedar/util/serialization/JsonTemplateInstanceContent.d.ts.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.js","mappings":"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","sources":["webpack://CedarModelTypescriptLibrary/webpack/universalModuleDefinition","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/behavior/JsonReaderBehavior.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/behavior/JsonWriterBehavior.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/behavior/ReaderWriterBehavior.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/behavior/YamlReaderBehavior.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/behavior/YamlWriterBehavior.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/builder/CedarBuilders.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/CedarReaders.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/ReaderUtil.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/CedarJsonReaders.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonAbstractArtifactReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonAbstractInstanceArtifactReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonAbstractSchemaArtifactReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonArtifactReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonContainerArtifactReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateElementReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateElementReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateFieldReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateFieldReaderInternal.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateFieldReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateFieldTypeSpecificReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateInstanceReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateInstanceReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/json/JsonTemplateReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/CedarYamlReaders.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlAbstractArtifactReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlArtifactReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlContainerArtifactReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateElementReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateElementReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateFieldReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateFieldReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateFieldTypeSpecificReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateInstanceReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateInstanceReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateReader.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/reader/yaml/YamlTemplateReaderResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/roundtrip/RoundTrip.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/AbstractArtifactWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/CedarWriters.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/WriterUtil.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/CedarJsonWriters.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/JsonAbstractArtifactWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/JsonAbstractContainerArtifactWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/JsonAnnotationsWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/JsonAtomicWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/JsonTemplateElementWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/JsonTemplateFieldWriterInternal.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/JsonTemplateInstanceWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/json/JsonTemplateWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/CedarYamlWriters.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/SimpleYamlSerializer.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlAbstractArtifactWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlAbstractContainerArtifactWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlAnnotationsWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlAtomicWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlPlainScalarPolicy.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlTemplateElementWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlTemplateFieldWriterInternal.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlTemplateInstanceWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/io/writer/yaml/YamlTemplateWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/AbstractArtifacBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/AbstractArtifact.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/AbstractContainerArtifact.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/AbstractInstanceArtifact.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/AbstractSchemaArtifact.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/annotation/AnnotationAtId.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/annotation/AnnotationAtValue.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/annotation/Annotations.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/constants/CedarModel.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/constants/JsonSchema.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/constants/NonStandardDatatype.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/constants/TemplateProperty.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/constants/YamlKeys.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/constants/YamlValues.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfo.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfoBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfo.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfoBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfo.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultiple.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultipleBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysSingle.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysSingleBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoStatic.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoStaticBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/deployment/ContainerArtifactChildrenInfo.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/element/TemplateElement.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/element/TemplateElementBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/ChoiceOptionEntity.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/JsonValueConstraintsWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/TemplateField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/TemplateFieldBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/UnknownTemplateField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/ValueConstraints.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/YamlValueConstraintsWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/attribute-value/JsonFieldReaderAttributeValue.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/attribute-value/JsonFieldWriterAttributeValue.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/attribute-value/YamlFieldReaderAttributeValue.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/attribute-value/YamlFieldWriterAttributeValue.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxOption.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/checkbox/JsonFieldReaderCheckbox.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/checkbox/JsonFieldWriterCheckbox.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/checkbox/ValueConstraintsCheckboxField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/checkbox/YamlFieldReaderCheckbox.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/checkbox/YamlFieldWriterCheckbox.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/JsonFieldReaderControlledTerm.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/JsonFieldWriterControlledTerm.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/ValueConstraintsControlledTermField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/YamlFieldReaderControlledTerm.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/YamlFieldWriterControlledTerm.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractJsonControlledTermValueConstraintWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/AbstractYamlControlledTermValueConstraintWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermAbstractValueConstraint.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermDefaultValue.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermDefaultValueBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermVersion.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ValueConstraintRequirements.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermAction.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermActionBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/JsonValueConstraintsActionWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/YamlValueConstraintsActionWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranch.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranchBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/JsonValueConstraintsBranchWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/YamlValueConstraintsBranchWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClass.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClassBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/JsonValueConstraintsClassWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/YamlValueConstraintsClassWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntology.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntologyBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/JsonValueConstraintsOntologyWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/YamlValueConstraintsOntologyWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSet.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSetBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/JsonValueConstraintsValueSetWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/YamlValueConstraintsValueSetWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/email/EmailFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/email/EmailFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/email/JsonFieldReaderEmail.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/email/JsonFieldWriterEmail.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/email/YamlFieldReaderEmail.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/email/YamlFieldWriterEmail.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-doi/JsonFieldReaderExtDoi.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-doi/JsonFieldWriterExtDoi.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-doi/YamlFieldReaderExtDoi.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-doi/YamlFieldWriterExtDoi.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/JsonFieldReaderExtNihGrantId.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/JsonFieldWriterExtNihGrantId.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/YamlFieldReaderExtNihGrantId.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/YamlFieldWriterExtNihGrantId.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-orcid/JsonFieldReaderExtOrcid.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-orcid/JsonFieldWriterExtOrcid.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-orcid/YamlFieldReaderExtOrcid.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-orcid/YamlFieldWriterExtOrcid.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pfas/JsonFieldReaderExtPfas.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pfas/JsonFieldWriterExtPfas.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pfas/YamlFieldReaderExtPfas.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pfas/YamlFieldWriterExtPfas.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/JsonFieldReaderExtPubmed.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/JsonFieldWriterExtPubmed.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/YamlFieldReaderExtPubmed.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/YamlFieldWriterExtPubmed.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-ror/JsonFieldReaderExtRor.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-ror/JsonFieldWriterExtRor.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-ror/YamlFieldReaderExtRor.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-ror/YamlFieldWriterExtRor.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/JsonFieldReaderExtRrid.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/JsonFieldWriterExtRrid.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/YamlFieldReaderExtRrid.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/ext-rrid/YamlFieldWriterExtRrid.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/link/JsonFieldReaderLink.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/link/JsonFieldWriterLink.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/link/LinkFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/link/LinkFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/link/YamlFieldReaderLink.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/link/YamlFieldWriterLink.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/YamlFieldReaderMultiSelectList.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list-single-choice/YamlFieldReaderSingleSelectList.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list/JsonFieldReaderList.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list/JsonFieldWriterList.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list/ListFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list/ListFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list/ListOption.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list/ValueConstraintsListField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/list/YamlFieldWriterList.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/numeric/JsonFieldReaderNumeric.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/numeric/JsonFieldWriterNumeric.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericDefaultValueValidator.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/numeric/ValueConstraintsNumericField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/numeric/YamlFieldReaderNumeric.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/numeric/YamlFieldWriterNumeric.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/phone-number/JsonFieldReaderPhoneNumber.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/phone-number/JsonFieldWriterPhoneNumber.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/phone-number/YamlFieldReaderPhoneNumber.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/phone-number/YamlFieldWriterPhoneNumber.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/radio/JsonFieldReaderRadio.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/radio/JsonFieldWriterRadio.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/radio/RadioOption.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/radio/ValueConstraintsRadioField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/radio/YamlFieldReaderRadio.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/radio/YamlFieldWriterRadio.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/temporal/JsonFieldReaderTemporal.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/temporal/JsonFieldWriterTemporal.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalDefaultValueValidator.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/temporal/ValueConstraintsTemporalField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/temporal/YamlFieldReaderTemporal.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/temporal/YamlFieldWriterTemporal.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textarea/JsonFieldReaderTextArea.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textarea/JsonFieldWriterTextArea.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textarea/ValueConstraintsTextArea.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textarea/YamlFieldReaderTextArea.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textarea/YamlFieldWriterTextArea.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textfield/JsonFieldReaderTextField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textfield/JsonFieldWriterTextField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textfield/ValueConstraintsTextField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textfield/YamlFieldReaderTextField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/dynamic/textfield/YamlFieldWriterTextField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/JsonStaticFieldWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/SizedStaticField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/YamlStaticFieldWriter.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/image/JsonFieldReaderImage.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/image/JsonFieldWriterStaticImage.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/image/StaticImageFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/image/YamlFieldReaderImage.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/image/YamlFieldWriterStaticImage.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/page-break/JsonFieldReaderPageBreak.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/page-break/JsonFieldWriterStaticPageBreak.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/page-break/YamlFieldReaderPageBreak.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/page-break/YamlFieldWriterStaticPageBreak.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/rich-text/JsonFieldReaderRichText.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/rich-text/JsonFieldWriterStaticRichText.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/rich-text/YamlFieldReaderRichText.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/rich-text/YamlFieldWriterStaticRichText.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/section-break/JsonFieldReaderSectionBreak.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/section-break/JsonFieldWriterStaticSectionBreak.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/section-break/YamlFieldReaderSectionBreak.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/section-break/YamlFieldWriterStaticSectionBreak.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/youtube/JsonFieldReaderYoutube.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/youtube/JsonFieldWriterStaticYoutube.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldBuilderImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldImpl.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/youtube/YamlFieldReaderYoutube.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/field/static/youtube/YamlFieldWriterStaticYoutube.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/AttributeValueNamePolicy.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueField.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueFieldName.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataContainer.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataControlledAtom.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataEmptyAtom.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataEmptyNode.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataLinkAtom.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataStringAtom.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceDataTypedAtom.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceInflater.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/InstanceValidator.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/TemplateInstance.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template-instance/TemplateInstanceBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template/Template.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/template/TemplateBuilder.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/basic-types/JsonNode.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/bioportal-types/BioportalTermType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/cedar-types/CedarArtifactId.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/cedar-types/CedarArtifactType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/cedar-types/CedarFieldCategory.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/cedar-types/CedarFieldType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/cedar-types/CedarUser.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/AdditionalProperties.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/ArtifactSchema.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/BiboStatus.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/Iri.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/IsoDate.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/JavascriptType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/Language.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/NumberType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/PavVersion.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/PropertyIri.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/SchemaVersion.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/SemVer.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/TemporalGranularity.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/TemporalType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/TimeFormat.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/UiInputType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/types/wrapped-types/YamlArtifactType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/compare/ComparisonError.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/compare/ComparisonErrorType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/compare/ComparisonResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/compare/JsonArtifactParsingResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/compare/JsonObjectComparator.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/compare/YamlArtifactParsingResult.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/compare/YamlComparisonErrorType.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/compare/YamlObjectComparator.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/path/JsonPath.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/serialization/JsonContainerArtifactContent.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/serialization/JsonTemplateContent.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/serialization/JsonTemplateElementContent.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/serialization/JsonTemplateFieldContentDynamic.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/serialization/JsonTemplateFieldContentStatic.ts","webpack://CedarModelTypescriptLibrary/./src/org/metadatacenter/model/cedar/util/serialization/JsonTemplateInstanceContent.ts","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/identity.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/visit.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/doc/directives.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/doc/anchors.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/doc/applyReviver.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/toJS.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/Node.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/Alias.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/Scalar.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/doc/createNode.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/Collection.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/stringify/stringifyComment.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/stringify/foldFlowLines.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/stringify/stringifyString.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/stringify/stringify.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/log.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/addPairToJSMap.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/Pair.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/stringify/stringifyPair.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/stringify/stringifyCollection.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/YAMLMap.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/common/map.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/nodes/YAMLSeq.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/common/seq.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/common/string.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/common/null.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/core/bool.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/stringify/stringifyNumber.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/core/float.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/core/int.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/core/schema.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/json/schema.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/float.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/int.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/set.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/tags.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/schema/Schema.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/doc/Document.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/stringify/stringifyDocument.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/errors.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/resolve-props.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/util-contains-newline.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/util-flow-indent-check.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/util-map-includes.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/resolve-block-map.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/resolve-end.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/resolve-flow-collection.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/compose-collection.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/resolve-block-seq.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/resolve-block-scalar.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/compose-scalar.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/compose-node.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/composer.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/compose/compose-doc.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/parse/cst-scalar.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/parse/cst-stringify.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/parse/cst-visit.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/parse/cst.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/parse/lexer.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/parse/line-counter.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/parse/parser.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/dist/public-api.js","webpack://CedarModelTypescriptLibrary/./node_modules/yaml/browser/index.js","webpack://CedarModelTypescriptLibrary/webpack/bootstrap","webpack://CedarModelTypescriptLibrary/webpack/runtime/define property getters","webpack://CedarModelTypescriptLibrary/webpack/runtime/hasOwnProperty shorthand","webpack://CedarModelTypescriptLibrary/webpack/runtime/make namespace object","webpack://CedarModelTypescriptLibrary/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CedarModelTypescriptLibrary\"] = factory();\n\telse\n\t\troot[\"CedarModelTypescriptLibrary\"] = factory();\n})(this, () => {\nreturn ","import { ReaderWriterBehavior } from './ReaderWriterBehavior';\n\nexport const JsonReaderBehaviorValues = {\n STRICT: 'strict',\n FEBRUARY_2024: 'february-2024',\n} as const;\n\nexport type JsonReaderBehaviorValue = (typeof JsonReaderBehaviorValues)[keyof typeof JsonReaderBehaviorValues] | null;\n\nexport class JsonReaderBehavior extends ReaderWriterBehavior {\n private readonly value: JsonReaderBehaviorValue | null;\n\n private constructor(value: JsonReaderBehaviorValue, useWarningForKnownIssues: boolean) {\n super(useWarningForKnownIssues);\n this.value = value;\n }\n\n public getValue(): JsonReaderBehaviorValue {\n return this.value;\n }\n\n public static STRICT = new JsonReaderBehavior(JsonReaderBehaviorValues.STRICT, false);\n public static FEBRUARY_2024 = new JsonReaderBehavior(JsonReaderBehaviorValues.FEBRUARY_2024, true);\n}\n","import { ReaderWriterBehavior } from './ReaderWriterBehavior';\n\nexport const JsonWriterBehaviorValues = {\n STRICT: 'strict',\n FEBRUARY_2024: 'february-2024',\n} as const;\n\nexport type JsonWriterBehaviorValue = (typeof JsonWriterBehaviorValues)[keyof typeof JsonWriterBehaviorValues] | null;\n\nexport class JsonWriterBehavior extends ReaderWriterBehavior {\n private readonly value: JsonWriterBehaviorValue | null;\n private readonly _outputPages: boolean;\n private readonly _usePropertiesAtLanguage: boolean;\n private readonly _includeSkosNotationForLinksAndControlled: boolean;\n\n private constructor(\n value: JsonWriterBehaviorValue,\n outputPages: boolean,\n usePropertiesAtLanguage: boolean,\n includeSkosNotationForLinksAndControlled: boolean,\n useWarningForKnownIssues: boolean,\n ) {\n super(useWarningForKnownIssues);\n this.value = value;\n this._outputPages = outputPages;\n this._usePropertiesAtLanguage = usePropertiesAtLanguage;\n this._includeSkosNotationForLinksAndControlled = includeSkosNotationForLinksAndControlled;\n }\n\n public getValue(): JsonWriterBehaviorValue {\n return this.value;\n }\n\n public static STRICT = new JsonWriterBehavior(JsonWriterBehaviorValues.STRICT, false, true, true, false);\n public static FEBRUARY_2024 = new JsonWriterBehavior(JsonWriterBehaviorValues.FEBRUARY_2024, true, false, false, true);\n\n public outputPages() {\n return this._outputPages;\n }\n\n usePropertiesAtLanguage() {\n return this._usePropertiesAtLanguage;\n }\n\n includeSkosNotationForLinksAndControlled(): boolean {\n return this._includeSkosNotationForLinksAndControlled;\n }\n}\n","export abstract class ReaderWriterBehavior {\n private readonly _useWarningForKnownIssues: boolean;\n\n protected constructor(useWarningForKnownIssues: boolean) {\n this._useWarningForKnownIssues = useWarningForKnownIssues;\n }\n\n public useWarningForKnownIssues(): boolean {\n return this._useWarningForKnownIssues;\n }\n}\n","import { ReaderWriterBehavior } from './ReaderWriterBehavior';\n\nexport const YAMLReaderBehaviorValues = {\n STRICT: 'strict',\n} as const;\n\nexport type YAMLReaderBehaviorValue = (typeof YAMLReaderBehaviorValues)[keyof typeof YAMLReaderBehaviorValues] | null;\n\nexport class YamlReaderBehavior extends ReaderWriterBehavior {\n private readonly value: YAMLReaderBehaviorValue | null;\n\n private constructor(value: YAMLReaderBehaviorValue, useWarningForKnownIssues: boolean) {\n super(useWarningForKnownIssues);\n this.value = value;\n }\n\n public getValue(): YAMLReaderBehaviorValue {\n return this.value;\n }\n\n public static STRICT = new YamlReaderBehavior(YAMLReaderBehaviorValues.STRICT, false);\n}\n","import { ReaderWriterBehavior } from './ReaderWriterBehavior';\n\nexport const YAMLWriterBehaviorValues = {\n STRICT: 'strict',\n} as const;\n\nexport type YAMLWriterBehaviorValue = (typeof YAMLWriterBehaviorValues)[keyof typeof YAMLWriterBehaviorValues] | null;\n\nexport class YamlWriterBehavior extends ReaderWriterBehavior {\n private readonly value: YAMLWriterBehaviorValue | null;\n\n private constructor(value: YAMLWriterBehaviorValue, useWarningForKnownIssues: boolean) {\n super(useWarningForKnownIssues);\n this.value = value;\n }\n\n public getValue(): YAMLWriterBehaviorValue {\n return this.value;\n }\n\n public static STRICT = new YamlWriterBehavior(YAMLWriterBehaviorValues.STRICT, false);\n}\n","import { TextFieldBuilder } from '../../model/cedar/field/dynamic/textfield/TextFieldBuilder';\nimport { TemporalFieldBuilder } from '../../model/cedar/field/dynamic/temporal/TemporalFieldBuilder';\nimport { PhoneNumberFieldBuilder } from '../../model/cedar/field/dynamic/phone-number/PhoneNumberFieldBuilder';\nimport { NumericFieldBuilder } from '../../model/cedar/field/dynamic/numeric/NumericFieldBuilder';\nimport { EmailFieldBuilder } from '../../model/cedar/field/dynamic/email/EmailFieldBuilder';\nimport { AttributeValueFieldBuilder } from '../../model/cedar/field/dynamic/attribute-value/AttributeValueFieldBuilder';\nimport { StaticYoutubeFieldBuilder } from '../../model/cedar/field/static/youtube/StaticYoutubeFieldBuilder';\nimport { StaticSectionBreakFieldBuilder } from '../../model/cedar/field/static/section-break/StaticSectionBreakFieldBuilder';\nimport { StaticRichTextFieldBuilder } from '../../model/cedar/field/static/rich-text/StaticRichTextFieldBuilder';\nimport { StaticPageBreakFieldBuilder } from '../../model/cedar/field/static/page-break/StaticPageBreakFieldBuilder';\nimport { StaticImageFieldBuilder } from '../../model/cedar/field/static/image/StaticImageFieldBuilder';\nimport { LinkFieldBuilder } from '../../model/cedar/field/dynamic/link/LinkFieldBuilder';\nimport { RadioFieldBuilder } from '../../model/cedar/field/dynamic/radio/RadioFieldBuilder';\nimport { CheckboxFieldBuilder } from '../../model/cedar/field/dynamic/checkbox/CheckboxFieldBuilder';\nimport { ControlledTermFieldBuilder } from '../../model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilder';\nimport { TemplateBuilder } from '../../model/cedar/template/TemplateBuilder';\nimport { TemplateElementBuilder } from '../../model/cedar/element/TemplateElementBuilder';\nimport { TemplateInstanceBuilder } from '../../model/cedar/template-instance/TemplateInstanceBuilder';\nimport { TextFieldBuilderImpl } from '../../model/cedar/field/dynamic/textfield/TextFieldBuilderImpl';\nimport { TextAreaBuilderImpl } from '../../model/cedar/field/dynamic/textarea/TextAreaBuilderImpl';\nimport { TextAreaBuilder } from '../../model/cedar/field/dynamic/textarea/TextAreaBuilder';\nimport { TemporalFieldBuilderImpl } from '../../model/cedar/field/dynamic/temporal/TemporalFieldBuilderImpl';\nimport { RadioFieldBuilderImpl } from '../../model/cedar/field/dynamic/radio/RadioFieldBuilderImpl';\nimport { PhoneNumberFieldBuilderImpl } from '../../model/cedar/field/dynamic/phone-number/PhoneNumberFieldBuilderImpl';\nimport { NumericFieldBuilderImpl } from '../../model/cedar/field/dynamic/numeric/NumericFieldBuilderImpl';\nimport { LinkFieldBuilderImpl } from '../../model/cedar/field/dynamic/link/LinkFieldBuilderImpl';\nimport { EmailFieldBuilderImpl } from '../../model/cedar/field/dynamic/email/EmailFieldBuilderImpl';\nimport { AttributeValueFieldBuilderImpl } from '../../model/cedar/field/dynamic/attribute-value/AttributeValueFieldBuilderImpl';\nimport { CheckboxFieldBuilderImpl } from '../../model/cedar/field/dynamic/checkbox/CheckboxFieldBuilderImpl';\nimport { ControlledTermFieldBuilderImpl } from '../../model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilderImpl';\nimport { StaticImageFieldBuilderImpl } from '../../model/cedar/field/static/image/StaticImageFieldBuilderImpl';\nimport { StaticPageBreakFieldBuilderImpl } from '../../model/cedar/field/static/page-break/StaticPageBreakFieldBuilderImpl';\nimport { StaticRichTextFieldBuilderImpl } from '../../model/cedar/field/static/rich-text/StaticRichTextFieldBuilderImpl';\nimport { StaticSectionBreakFieldBuilderImpl } from '../../model/cedar/field/static/section-break/StaticSectionBreakFieldBuilderImpl';\nimport { StaticYoutubeFieldBuilderImpl } from '../../model/cedar/field/static/youtube/StaticYoutubeFieldBuilderImpl';\nimport { SingleChoiceListFieldBuilder } from '../../model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldBuilder';\nimport { SingleChoiceListFieldBuilderImpl } from '../../model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldBuilderImpl';\nimport { MultipleChoiceListFieldBuilder } from '../../model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldBuilder';\nimport { MultipleChoiceListFieldBuilderImpl } from '../../model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldBuilderImpl';\nimport { ExtRorFieldBuilderImpl } from '../../model/cedar/field/dynamic/ext-ror/ExtRorFieldBuilderImpl';\nimport { ExtOrcidFieldBuilderImpl } from '../../model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldBuilderImpl';\nimport { ExtPfasFieldBuilderImpl } from '../../model/cedar/field/dynamic/ext-pfas/ExtPfasFieldBuilderImpl';\nimport { ExtPubmedFieldBuilderImpl } from '../../model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldBuilderImpl';\nimport { ExtRridFieldBuilderImpl } from '../../model/cedar/field/dynamic/ext-rrid/ExtRridFieldBuilderImpl';\nimport { ExtNihGrantIdFieldBuilderImpl } from '../../model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldBuilderImpl';\nimport { ExtDoiFieldBuilderImpl } from '../../model/cedar/field/dynamic/ext-doi/ExtDoiFieldBuilderImpl';\n\nexport abstract class CedarBuilders {\n static templateBuilder(): TemplateBuilder {\n return new TemplateBuilder();\n }\n\n static templateElementBuilder(): TemplateElementBuilder {\n return new TemplateElementBuilder();\n }\n\n static templateInstanceBuilder(): TemplateInstanceBuilder {\n return new TemplateInstanceBuilder();\n }\n\n static textFieldBuilder(): TextFieldBuilder {\n return TextFieldBuilderImpl.create();\n }\n\n static textAreaBuilder(): TextAreaBuilder {\n return TextAreaBuilderImpl.create();\n }\n\n static temporalFieldBuilder(): TemporalFieldBuilder {\n return TemporalFieldBuilderImpl.create();\n }\n\n static phoneNumberFieldBuilder(): PhoneNumberFieldBuilder {\n return PhoneNumberFieldBuilderImpl.create();\n }\n\n static numericFieldBuilder(): NumericFieldBuilder {\n return NumericFieldBuilderImpl.create();\n }\n\n static emailFieldBuilder(): EmailFieldBuilder {\n return EmailFieldBuilderImpl.create();\n }\n\n static attributeValueFieldBuilder(): AttributeValueFieldBuilder {\n return AttributeValueFieldBuilderImpl.create();\n }\n\n static youtubeFieldBuilder(): StaticYoutubeFieldBuilder {\n return StaticYoutubeFieldBuilderImpl.create();\n }\n\n static sectionBreakFieldBuilder(): StaticSectionBreakFieldBuilder {\n return StaticSectionBreakFieldBuilderImpl.create();\n }\n\n static richTextFieldBuilder(): StaticRichTextFieldBuilder {\n return StaticRichTextFieldBuilderImpl.create();\n }\n\n static pageBreakFieldBuilder(): StaticPageBreakFieldBuilder {\n return StaticPageBreakFieldBuilderImpl.create();\n }\n\n static imageFieldBuilder(): StaticImageFieldBuilder {\n return StaticImageFieldBuilderImpl.create();\n }\n\n static linkFieldBuilder(): LinkFieldBuilder {\n return LinkFieldBuilderImpl.create();\n }\n\n static extRorFieldBuilder(): LinkFieldBuilder {\n return ExtRorFieldBuilderImpl.create();\n }\n\n static extOrcidFieldBuilder(): LinkFieldBuilder {\n return ExtOrcidFieldBuilderImpl.create();\n }\n\n static extPfasFieldBuilder(): LinkFieldBuilder {\n return ExtPfasFieldBuilderImpl.create();\n }\n\n static extPubmedFieldBuilder(): LinkFieldBuilder {\n return ExtPubmedFieldBuilderImpl.create();\n }\n\n static extRridFieldBuilder(): LinkFieldBuilder {\n return ExtRridFieldBuilderImpl.create();\n }\n\n static extNihGrantIdFieldBuilder(): LinkFieldBuilder {\n return ExtNihGrantIdFieldBuilderImpl.create();\n }\n\n static extDoiFieldBuilder(): LinkFieldBuilder {\n return ExtDoiFieldBuilderImpl.create();\n }\n\n static singleChoiceListFieldBuilder(): SingleChoiceListFieldBuilder {\n return SingleChoiceListFieldBuilderImpl.create();\n }\n\n static multipleChoiceListFieldBuilder(): MultipleChoiceListFieldBuilder {\n return MultipleChoiceListFieldBuilderImpl.create();\n }\n\n static radioFieldBuilder(): RadioFieldBuilder {\n return RadioFieldBuilderImpl.create();\n }\n\n static checkboxFieldBuilder(): CheckboxFieldBuilder {\n return CheckboxFieldBuilderImpl.create();\n }\n\n static controlledTermFieldBuilder(): ControlledTermFieldBuilder {\n return ControlledTermFieldBuilderImpl.create();\n }\n}\n","import { CedarJsonReaders } from './json/CedarJsonReaders';\nimport { CedarYamlReaders } from './yaml/CedarYamlReaders';\n\nexport abstract class CedarReaders {\n public static json(): typeof CedarJsonReaders {\n return CedarJsonReaders;\n }\n\n public static yaml(): typeof CedarYamlReaders {\n return CedarYamlReaders;\n }\n}\n","import { JsonNode } from '../../model/cedar/types/basic-types/JsonNode';\nimport { Iri } from '../../model/cedar/types/wrapped-types/Iri';\nimport { NullableNumber } from '../../model/cedar/types/basic-types/NullableNumber';\n\nexport abstract class ReaderUtil {\n public static getString(node: JsonNode, key: string): string | null {\n if (Object.hasOwn(node, key)) {\n return node[key] as string;\n } else {\n return null;\n }\n }\n\n public static getStringOrEmpty(node: JsonNode, key: string): string {\n if (Object.hasOwn(node, key)) {\n return node[key] as string;\n } else {\n return '';\n }\n }\n\n public static getBoolean(node: JsonNode, key: string): boolean {\n if (Object.hasOwn(node, key)) {\n return node[key] as boolean;\n } else {\n return false;\n }\n }\n\n public static getBooleanOrNullOrUndefined(node: JsonNode, key: string): boolean | null | undefined {\n if (Object.hasOwn(node, key)) {\n if (node[key] === null) {\n return null;\n } else {\n return node[key] as boolean;\n }\n } else {\n return undefined;\n }\n }\n\n public static getBooleanOrNull(node: JsonNode, key: string): boolean | null {\n if (Object.hasOwn(node, key)) {\n if (node[key] === null) {\n return null;\n } else {\n return node[key] as boolean;\n }\n } else {\n return null;\n }\n }\n\n static getNumber(node: JsonNode, key: string): NullableNumber {\n if (Object.hasOwn(node, key)) {\n return node[key] as number;\n } else {\n return null;\n }\n }\n\n /**\n * Read a numeric default from either of CEDAR's supported encodings.\n *\n * JSON writes numeric defaults as strings to satisfy the CEDAR field schema,\n * while YAML normally uses a numeric scalar. Older JSON documents may also\n * contain a bare number, so readers accept both and keep a number in memory.\n */\n public static getNumericDefault(node: JsonNode, key: string): number | null {\n if (!Object.hasOwn(node, key) || node[key] === null || node[key] === undefined) {\n return null;\n }\n\n const raw = node[key];\n if (typeof raw === 'number') {\n if (Number.isFinite(raw)) {\n return raw;\n }\n throw new Error(`Numeric default at \"${key}\" must be finite.`);\n }\n\n if (typeof raw === 'string') {\n const text = raw.trim();\n if (text === '') {\n return null;\n }\n if (!/^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?$/.test(text)) {\n throw new Error(`Numeric default at \"${key}\" is not a valid number: \"${raw}\".`);\n }\n const value = Number(text);\n if (Number.isFinite(value)) {\n return value;\n }\n throw new Error(`Numeric default at \"${key}\" must be finite.`);\n }\n\n throw new Error(`Numeric default at \"${key}\" must be a number or numeric string.`);\n }\n\n static getNumberOrZero(node: JsonNode, key: string): number {\n if (Object.hasOwn(node, key)) {\n return node[key] as number;\n } else {\n return 0;\n }\n }\n\n static getNumberOrNull(node: JsonNode, key: string): number | null {\n if (Object.hasOwn(node, key)) {\n return node[key] as number;\n } else {\n return null;\n }\n }\n\n public static getNode(node: JsonNode, key: string): JsonNode {\n if (Object.hasOwn(node, key)) {\n return node[key] as JsonNode;\n } else {\n return JsonNode.getEmpty();\n }\n }\n\n public static getNodeOrNull(node: JsonNode, key: string): JsonNode | null {\n if (Object.hasOwn(node, key)) {\n return node[key] as JsonNode;\n } else {\n return null;\n }\n }\n\n public static getStringList(node: JsonNode, key: string): Array<string> {\n if (Object.hasOwn(node, key) && Array.isArray(node[key])) {\n return node[key] as Array<string>;\n } else {\n return [];\n }\n }\n\n public static getFilteredStringList(node: JsonNode, key: string): Array<string> {\n if (Object.hasOwn(node, key) && Array.isArray(node[key])) {\n return (node[key] as Array<string>).filter((str) => str.trim() !== '');\n } else {\n return [];\n }\n }\n\n static getStringMap(node: JsonNode, key: string): Map<string, string> {\n if (Object.hasOwn(node, key) && typeof node[key] === 'object' && !Array.isArray(node[key]) && node[key] !== null) {\n const obj = node[key] as JsonNode;\n const entries: [string, string][] = Object.entries(obj as Record<string, string>);\n const map: Map<string, string> = new Map<string, string>();\n for (const [k, v] of entries) {\n map.set(k, v);\n }\n return map;\n } else {\n return new Map();\n }\n }\n\n public static deepClone(obj: object) {\n //return JSON.parse(JSON.stringify(obj));\n return this.deepUnfreeze(obj);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public static deepUnfreeze(object: any): any {\n if (object === null || (typeof object !== 'object' && typeof object !== 'function')) {\n return object;\n }\n\n // Create a shallow clone for array or object\n const clone = Array.isArray(object) ? object.slice() : { ...object };\n\n Object.getOwnPropertyNames(clone).forEach((prop) => {\n clone[prop] = this.deepUnfreeze(clone[prop]);\n });\n\n return clone;\n }\n\n public static deepFreeze<T extends object>(object: T): T {\n Object.freeze(object);\n Object.getOwnPropertyNames(object).forEach((prop) => {\n const propValue = object[prop as keyof T];\n if (propValue !== null && (typeof propValue === 'object' || typeof propValue === 'function') && !Object.isFrozen(propValue)) {\n this.deepFreeze(propValue as T);\n }\n });\n return object;\n }\n\n public static getNodeList(node: JsonNode, key: string): Array<JsonNode> {\n if (Object.hasOwn(node, key) && Array.isArray(node[key])) {\n return node[key] as Array<JsonNode>;\n } else {\n return JsonNode.getEmptyList();\n }\n }\n\n static getURI(node: JsonNode, key: string): Iri {\n return new Iri(this.getStringOrEmpty(node, key));\n }\n\n static deleteNodeKey(node: JsonNode, key: string) {\n if (Object.hasOwn(node, key)) {\n delete node[key];\n }\n }\n}\n","import { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { JsonTemplateReader } from './JsonTemplateReader';\nimport { JsonTemplateElementReader } from './JsonTemplateElementReader';\nimport { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonTemplateInstanceReader } from './JsonTemplateInstanceReader';\nimport { JsonAbstractArtifactReader } from './JsonAbstractArtifactReader';\nimport { JsonTemplateFieldReader } from './JsonTemplateFieldReader';\n\nexport class CedarJsonReaders {\n private readonly behavior: JsonReaderBehavior;\n\n private constructor(behavior: JsonReaderBehavior) {\n this.behavior = behavior;\n }\n\n public static getStrict(): CedarJsonReaders {\n return new CedarJsonReaders(JsonReaderBehavior.STRICT);\n }\n\n public static getFebruary2024(): CedarJsonReaders {\n return new CedarJsonReaders(JsonReaderBehavior.FEBRUARY_2024);\n }\n\n public static detectArtifactType(artifactSource: JsonNode | string): CedarArtifactType {\n let artifactJSON: JsonNode;\n if (typeof artifactSource === 'string') {\n artifactJSON = JSON.parse(artifactSource);\n } else {\n artifactJSON = artifactSource;\n }\n if (artifactJSON && artifactJSON['@type']) {\n const atType: string | null = ReaderUtil.getString(artifactJSON, JsonSchema.atType);\n return CedarArtifactType.forValue(atType);\n }\n return CedarArtifactType.NULL;\n }\n\n public getReaderForArtifactType(cedarArtifactType: CedarArtifactType): JsonAbstractArtifactReader {\n switch (cedarArtifactType) {\n case CedarArtifactType.TEMPLATE:\n return JsonTemplateReader.getStrict();\n case CedarArtifactType.TEMPLATE_ELEMENT:\n return JsonTemplateElementReader.getStrict();\n case CedarArtifactType.TEMPLATE_FIELD:\n return JsonTemplateFieldReader.getStrict();\n case CedarArtifactType.STATIC_TEMPLATE_FIELD:\n return JsonTemplateFieldReader.getStrict();\n case CedarArtifactType.TEMPLATE_INSTANCE:\n return JsonTemplateInstanceReader.getStrict();\n default:\n throw new Error(`No JSON reader available for CedarArtifactType: ${cedarArtifactType}`);\n }\n }\n\n public getTemplateReader(): JsonTemplateReader {\n return JsonTemplateReader.getForBehavior(this.behavior);\n }\n\n public getTemplateElementReader(): JsonTemplateElementReader {\n return JsonTemplateElementReader.getForBehavior(this.behavior);\n }\n\n public getTemplateFieldReader(): JsonTemplateFieldReader {\n return JsonTemplateFieldReader.getForBehavior(this.behavior);\n }\n\n public getTemplateInstanceReader(): JsonTemplateInstanceReader {\n return JsonTemplateInstanceReader.getForBehavior(this.behavior);\n }\n}\n","import { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { CedarUser } from '../../../model/cedar/types/cedar-types/CedarUser';\nimport { IsoDate } from '../../../model/cedar/types/wrapped-types/IsoDate';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JsonArtifactReaderResult } from './JsonArtifactReaderResult';\nimport { AbstractArtifact } from '../../../model/cedar/AbstractArtifact';\nimport { Annotations } from '../../../model/cedar/annotation/Annotations';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { AnnotationAtId } from '../../../model/cedar/annotation/AnnotationAtId';\nimport { AnnotationAtValue } from '../../../model/cedar/annotation/AnnotationAtValue';\n\nexport abstract class JsonAbstractArtifactReader {\n /**\n * An artifact or occurrence `@id` written as an empty string.\n *\n * A document carries it where one has not been assigned — half the element occurrences in the shared\n * corpus once did — and reading it as though the key were absent hides that from whoever wrote it,\n * then writes `null` back in its place. The value for an identifier not yet assigned is `null`.\n *\n * The validator's URI format accepts the empty relative reference, so the reader states the rule\n * the schema cannot. Optional `pav:derivedFrom` is deliberately different: legacy empty values are\n * accepted as absence so stored production artifacts can open, then omitted by the writer.\n */\n protected static refuseEmptyIdentifier(sourceObject: JsonNode, key: string = JsonSchema.atId): void {\n const raw = ReaderUtil.getString(sourceObject, key);\n if (raw !== null && raw.trim() === '') {\n throw new Error(`An empty string is not a URI at \"${key}\"; write null or leave the key out where there is no value.`);\n }\n }\n\n protected behavior: JsonReaderBehavior;\n protected knownArtifactType: CedarArtifactType = CedarArtifactType.NULL;\n\n protected constructor(behavior: JsonReaderBehavior) {\n this.behavior = behavior;\n }\n\n public abstract readFromString(artifactSourceString: string): JsonArtifactReaderResult;\n\n protected readNonReportableAttributes(container: AbstractArtifact, sourceObject: JsonNode): void {\n // Read in non-reportable properties\n JsonAbstractArtifactReader.refuseEmptyIdentifier(sourceObject);\n container.at_id = CedarArtifactId.forValue(ReaderUtil.getString(sourceObject, JsonSchema.atId));\n container.schema_name = ReaderUtil.getString(sourceObject, JsonSchema.schemaName);\n container.schema_description = ReaderUtil.getString(sourceObject, JsonSchema.schemaDescription);\n container.pav_createdBy = CedarUser.forValue(ReaderUtil.getString(sourceObject, JsonSchema.pavCreatedBy));\n container.pav_createdOn = IsoDate.forValue(ReaderUtil.getString(sourceObject, JsonSchema.pavCreatedOn));\n container.oslc_modifiedBy = CedarUser.forValue(ReaderUtil.getString(sourceObject, JsonSchema.oslcModifiedBy));\n container.pav_lastUpdatedOn = IsoDate.forValue(ReaderUtil.getString(sourceObject, JsonSchema.pavLastUpdatedOn));\n }\n\n protected readAnnotations(artifact: AbstractArtifact, artifactSourceObject: JsonNode) {\n const annotations = new Annotations();\n const annotationsNode: JsonNode | null = ReaderUtil.getNodeOrNull(artifactSourceObject, CedarModel.annotations);\n if (annotationsNode !== null) {\n Object.keys(annotationsNode).forEach((key) => {\n const annotationNode: JsonNode = ReaderUtil.getNode(annotationsNode, key);\n const atId: string | null = ReaderUtil.getString(annotationNode, JsonSchema.atId);\n if (atId !== null) {\n annotations.add(new AnnotationAtId(key, atId));\n } else {\n const atValue: string | null = ReaderUtil.getString(annotationNode, JsonSchema.atValue);\n if (atValue !== null) {\n annotations.add(new AnnotationAtValue(key, atValue));\n }\n }\n });\n }\n if (annotations.getSize() > 0) {\n artifact.annotations = annotations;\n }\n }\n}\n","import { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { JsonArtifactReaderResult } from './JsonArtifactReaderResult';\nimport { AbstractInstanceArtifact } from '../../../model/cedar/AbstractInstanceArtifact';\nimport { JsonAbstractArtifactReader } from './JsonAbstractArtifactReader';\n\nexport abstract class JsonAbstractInstanceArtifactReader extends JsonAbstractArtifactReader {\n protected constructor(behavior: JsonReaderBehavior) {\n super(behavior);\n }\n\n public abstract readFromString(artifactSourceString: string): JsonArtifactReaderResult;\n\n protected readNonReportableAttributes(container: AbstractInstanceArtifact, sourceObject: JsonNode): void {\n super.readNonReportableAttributes(container, sourceObject);\n container.schema_isBasedOn = CedarArtifactId.forValue(ReaderUtil.getString(sourceObject, JsonSchema.schemaIsBasedOn));\n // The writer emits an instance's `pav:derivedFrom` and nothing read it, so a document that named\n // what it was copied from lost that on the way through. The YAML instance reader has always read\n // it; this is the JSON side catching up. Legacy empty strings mean \"no source\" and are normalized\n // to NULL here so production instances remain openable and the writer omits the bad spelling.\n container.pav_derivedFrom = CedarArtifactId.forValue(ReaderUtil.getString(sourceObject, JsonSchema.pavDerivedFrom));\n }\n}\n","import { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { AbstractSchemaArtifact } from '../../../model/cedar/AbstractSchemaArtifact';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { TemplateProperty } from '../../../model/cedar/constants/TemplateProperty';\nimport { SchemaVersion } from '../../../model/cedar/types/wrapped-types/SchemaVersion';\nimport { PavVersion } from '../../../model/cedar/types/wrapped-types/PavVersion';\nimport { BiboStatus } from '../../../model/cedar/types/wrapped-types/BiboStatus';\nimport { JsonArtifactReaderResult } from './JsonArtifactReaderResult';\nimport { JsonAbstractArtifactReader } from './JsonAbstractArtifactReader';\n\nexport abstract class JsonAbstractSchemaArtifactReader extends JsonAbstractArtifactReader {\n protected constructor(behavior: JsonReaderBehavior) {\n super(behavior);\n }\n\n public abstract readFromString(artifactSourceString: string): JsonArtifactReaderResult;\n\n protected readNonReportableAttributes(container: AbstractSchemaArtifact, sourceObject: JsonNode): void {\n super.readNonReportableAttributes(container, sourceObject);\n container.title = ReaderUtil.getString(sourceObject, TemplateProperty.title);\n container.description = ReaderUtil.getString(sourceObject, TemplateProperty.description);\n container.schema_schemaVersion = SchemaVersion.forValue(ReaderUtil.getString(sourceObject, JsonSchema.schemaVersion));\n container.pav_version = PavVersion.forValue(ReaderUtil.getString(sourceObject, JsonSchema.pavVersion));\n container.bibo_status = BiboStatus.forJsonValue(ReaderUtil.getString(sourceObject, JsonSchema.biboStatus));\n // Older Designer/exporter generations wrote an empty string when no source artifact existed.\n // CedarArtifactId maps that legacy spelling to NULL, and the writer then omits the optional key.\n // Do not reject it at the read boundary: production artifacts must remain openable.\n container.pav_derivedFrom = CedarArtifactId.forValue(ReaderUtil.getString(sourceObject, JsonSchema.pavDerivedFrom));\n container.pav_previousVersion = CedarArtifactId.forValue(ReaderUtil.getString(sourceObject, JsonSchema.pavPreviousVersion));\n container.schema_identifier = ReaderUtil.getString(sourceObject, JsonSchema.schemaIdentifier);\n }\n}\n","import { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { AbstractArtifact } from '../../../model/cedar/AbstractArtifact';\n\nexport abstract class JsonArtifactReaderResult {\n protected readonly _artifact: AbstractArtifact;\n private readonly _parsingResult: JsonArtifactParsingResult;\n protected readonly _artifactSourceObject: JsonNode;\n\n protected constructor(artifact: AbstractArtifact, parsingResult: JsonArtifactParsingResult, artifactSourceObject: JsonNode) {\n this._artifact = artifact;\n this._parsingResult = parsingResult;\n this._artifactSourceObject = artifactSourceObject;\n }\n\n get artifact(): AbstractArtifact {\n return this._artifact;\n }\n\n get parsingResult(): JsonArtifactParsingResult {\n return this._parsingResult;\n }\n\n get artifactSourceObject(): JsonNode {\n return this._artifactSourceObject;\n }\n}\n","import { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonAbstractSchemaArtifactReader } from './JsonAbstractSchemaArtifactReader';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { ContainerArtifactChildrenInfo } from '../../../model/cedar/deployment/ContainerArtifactChildrenInfo';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { UiInputType } from '../../../model/cedar/types/wrapped-types/UiInputType';\nimport { ComparisonError } from '../../../model/cedar/util/compare/ComparisonError';\nimport { ComparisonErrorType } from '../../../model/cedar/util/compare/ComparisonErrorType';\nimport { JsonObjectComparator } from '../../../model/cedar/util/compare/JsonObjectComparator';\nimport { JavascriptType } from '../../../model/cedar/types/wrapped-types/JavascriptType';\nimport { ArtifactSchema } from '../../../model/cedar/types/wrapped-types/ArtifactSchema';\nimport { AbstractContainerArtifact } from '../../../model/cedar/AbstractContainerArtifact';\nimport { JsonTemplateElementReader } from './JsonTemplateElementReader';\nimport { JsonContainerArtifactContent } from '../../../model/cedar/util/serialization/JsonContainerArtifactContent';\nimport { AbstractDynamicChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractDynamicChildDeploymentInfo';\nimport { ChildDeploymentInfoBuilder } from '../../../model/cedar/deployment/ChildDeploymentInfoBuilder';\nimport { ChildDeploymentInfoAlwaysMultipleBuilder } from '../../../model/cedar/deployment/ChildDeploymentInfoAlwaysMultipleBuilder';\nimport { ChildDeploymentInfoStaticBuilder } from '../../../model/cedar/deployment/ChildDeploymentInfoStaticBuilder';\nimport { AbstractDynamicChildDeploymentInfoBuilder } from '../../../model/cedar/deployment/AbstractDynamicChildDeploymentInfoBuilder';\nimport { AbstractChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractChildDeploymentInfo';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\nimport { JsonTemplateFieldReaderInternal } from './JsonTemplateFieldReaderInternal';\n\nexport abstract class JsonContainerArtifactReader extends JsonAbstractSchemaArtifactReader {\n protected fieldReader: JsonTemplateFieldReaderInternal;\n\n protected constructor(behavior: JsonReaderBehavior) {\n super(behavior);\n this.fieldReader = JsonTemplateFieldReaderInternal.getForBehavior(behavior);\n }\n\n protected abstract getElementReader(): JsonTemplateElementReader;\n\n protected abstract includeInIRIMapping(childInfo: AbstractChildDeploymentInfo): boolean;\n\n protected readAndStoreCandidateChildInfo(\n childDefinitionNode: JsonNode,\n childCandidateName: string,\n parsingResult: JsonArtifactParsingResult,\n candidateChildrenInfo: ContainerArtifactChildrenInfo,\n path: JsonPath,\n ): ChildDeploymentInfo | null {\n const atType: CedarArtifactType = CedarArtifactType.forValue(ReaderUtil.getString(childDefinitionNode, JsonSchema.atType));\n if (atType !== CedarArtifactType.NULL) {\n const childInfo: ChildDeploymentInfo = new ChildDeploymentInfo(childCandidateName);\n childInfo.atType = atType;\n const uiNode: JsonNode = ReaderUtil.getNode(childDefinitionNode, CedarModel.ui);\n childInfo.uiInputType = UiInputType.forValue(ReaderUtil.getString(uiNode, CedarModel.inputType));\n // Read `hidden` here rather than leaving it to the per-type field\n // readers. They cover the dynamic fields and nothing else, so a hidden\n // element or a hidden static field came back visible.\n childInfo.hidden = ReaderUtil.getBoolean(uiNode, CedarModel.Ui.hidden);\n candidateChildrenInfo.add(childInfo);\n return childInfo;\n } else {\n this.reportBlueprintDifference(\n parsingResult,\n new ComparisonError('jtr09', ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, path.add(childCandidateName, JsonSchema.atType)),\n );\n return null;\n }\n }\n\n protected readReportableAttributes(\n container: AbstractContainerArtifact,\n elementSourceObject: JsonNode,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n // Read and validate, but do not store top level @type\n JsonObjectComparator.comparePrimitive(\n parsingResult,\n this.knownArtifactType.getValue(),\n ReaderUtil.getString(elementSourceObject, JsonSchema.atType),\n path.add(JsonSchema.atType),\n );\n\n // Read and validate, but do not store top level @context\n const topContextNode: JsonNode = ReaderUtil.getNode(elementSourceObject, JsonSchema.atContext);\n\n const blueprintAtContext: JsonNode = JsonContainerArtifactContent.CONTEXT_VERBATIM;\n\n JsonObjectComparator.compareBothWays(parsingResult, blueprintAtContext, topContextNode, path.add(JsonSchema.atContext), this.behavior, [\n JsonSchema.atLanguage,\n ]);\n\n // Read and validate, but do not store top level type\n JsonObjectComparator.comparePrimitive(\n parsingResult,\n JavascriptType.OBJECT.getValue(),\n ReaderUtil.getString(elementSourceObject, CedarModel.type),\n path.add(CedarModel.type),\n );\n\n // Read and validate, but do not store top level additionalProperties\n // TODO: this is either false, or verbatim CedarJsonTemplateFieldContentStatic.ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE\n // ObjectComparator.comparePrimitive(\n // parsingResult,\n // false,\n // ReaderUtil.getBoolean(templateSourceObject, TemplateProperty.additionalProperties),\n // path.add(TemplateProperty.additionalProperties),\n // );\n\n // Read and validate, but do not store top level $schema\n JsonObjectComparator.comparePrimitive(\n parsingResult,\n ArtifactSchema.CURRENT.getValue(),\n ReaderUtil.getString(elementSourceObject, CedarModel.schema),\n path.add(CedarModel.schema),\n );\n\n container.language = Language.forValue(ReaderUtil.getString(topContextNode, JsonSchema.atLanguage));\n }\n\n protected parseChildren(\n finalChildrenInfo: ContainerArtifactChildrenInfo,\n containerProperties: JsonNode,\n container: AbstractContainerArtifact,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n // Parse children\n // TODO: handle elements, generalize this code, since it will be used in templates and elements as well\n for (const childInfo of finalChildrenInfo.children) {\n let childDefinition: JsonNode = ReaderUtil.getNode(containerProperties, childInfo.name);\n let childPath: JsonPath = path.add(JsonSchema.properties, childInfo.name);\n if (childInfo.isMultiInAnyWay()) {\n childDefinition = ReaderUtil.getNode(childDefinition, JsonSchema.items);\n childPath = childPath.add(JsonSchema.items);\n }\n if (childInfo.atType === CedarArtifactType.STATIC_TEMPLATE_FIELD) {\n const cedarFieldReaderResult = this.fieldReader.readFromObjectInternal(childDefinition, childInfo, childPath);\n const finalChildInfoBuilder: ChildDeploymentInfoStaticBuilder = cedarFieldReaderResult.field\n .createDeploymentBuilder(childInfo.name)\n .withLabel(childInfo.label)\n .withDescription(childInfo.description)\n .withHidden(childInfo.hidden);\n const finalChildInfo = finalChildInfoBuilder.build();\n container.addChild(cedarFieldReaderResult.field, finalChildInfo);\n parsingResult.merge(cedarFieldReaderResult.parsingResult);\n } else if (childInfo.atType === CedarArtifactType.TEMPLATE_FIELD) {\n const cedarFieldReaderResult = this.fieldReader.readFromObjectInternal(childDefinition, childInfo, childPath);\n const finalChildInfoBuilder: AbstractDynamicChildDeploymentInfoBuilder = cedarFieldReaderResult.field.createDeploymentBuilder(\n childInfo.name,\n ) as AbstractDynamicChildDeploymentInfoBuilder;\n const dynaChildInfo: AbstractDynamicChildDeploymentInfo = childInfo as AbstractDynamicChildDeploymentInfo;\n // console.log('CHILD INFO1:', childInfo);\n finalChildInfoBuilder\n .withIri(dynaChildInfo.iri)\n .withHidden(dynaChildInfo.hidden)\n .withContinuePreviousLine(dynaChildInfo.continuePreviousLine)\n .withValueRecommendationEnabled(dynaChildInfo.valueRecommendationEnabled)\n .withLabel(childInfo.label)\n .withDescription(childInfo.description)\n .withRecommendedValue(dynaChildInfo.recommendedValue)\n .withRequiredValue(dynaChildInfo.requiredValue);\n if (finalChildInfoBuilder instanceof ChildDeploymentInfoBuilder && childInfo instanceof ChildDeploymentInfo) {\n finalChildInfoBuilder\n .withMultiInstance(childInfo.multiInstance)\n .withMinItems(childInfo.minItems)\n .withMaxItems(childInfo.maxItems);\n } else if (finalChildInfoBuilder instanceof ChildDeploymentInfoAlwaysMultipleBuilder) {\n // Always-multiple children have no multiInstance flag to set — they\n // are multiple by definition — but a template may still state the\n // bounds, and those have to reach the deployment info.\n finalChildInfoBuilder.withMinItems(dynaChildInfo.minItems).withMaxItems(dynaChildInfo.maxItems);\n }\n const finalChildInfo = finalChildInfoBuilder.build();\n // console.log('CHILD INFO2:', finalChildInfo);\n container.addChild(cedarFieldReaderResult.field, finalChildInfo);\n parsingResult.merge(cedarFieldReaderResult.parsingResult);\n } else if (childInfo.atType === CedarArtifactType.TEMPLATE_ELEMENT) {\n const cedarElementReaderResult = this.getElementReader().readFromObject(childDefinition, childPath);\n container.addChild(cedarElementReaderResult.element, childInfo);\n parsingResult.merge(cedarElementReaderResult.parsingResult);\n }\n }\n }\n\n protected validatePropertiesVsOrder(\n candidateChildrenInfo: ContainerArtifactChildrenInfo,\n containerUIOrder: string[],\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n // Children present in the 'properties' but not in the 'order' will also result in error\n for (const childInfo of candidateChildrenInfo.children) {\n if (!containerUIOrder.includes(childInfo.name)) {\n this.reportBlueprintDifference(\n parsingResult,\n new ComparisonError(\n 'jtr08',\n ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT,\n path.add(CedarModel.ui, CedarModel.order),\n childInfo.name,\n null,\n ),\n );\n }\n }\n }\n\n protected finalizeChildInfo(\n elementUIOrder: string[],\n candidateChildrenInfo: ContainerArtifactChildrenInfo,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ): ContainerArtifactChildrenInfo {\n // Generate final child info, based on the order and content of _ui/order. Disregard candidates not present in _ui/order with an error\n const finalChildrenInfo = new ContainerArtifactChildrenInfo();\n for (const key of elementUIOrder) {\n const candidate = candidateChildrenInfo.get(key);\n if (candidate !== null && candidate !== undefined) {\n finalChildrenInfo.add(candidate);\n } else {\n this.reportBlueprintDifference(\n parsingResult,\n new ComparisonError(\n 'jtr07',\n ComparisonErrorType.UNEXPECTED_KEY_IN_REAL_OBJECT,\n path.add(CedarModel.ui, CedarModel.order),\n null,\n key,\n ),\n );\n }\n }\n return finalChildrenInfo;\n }\n\n protected getCandidateChildrenInfo(\n containerProperties: JsonNode,\n partialKeyMap: Map<string, boolean>,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ): ContainerArtifactChildrenInfo {\n // Generate the candidate children names list based on the unknown keys of \"properties\"\n const candidateChildrenInfo: ContainerArtifactChildrenInfo = new ContainerArtifactChildrenInfo();\n Object.keys(containerProperties).forEach((key) => {\n if (!partialKeyMap.has(key)) {\n const propertiesChildNode: JsonNode = ReaderUtil.getNode(containerProperties, key);\n\n if (typeof propertiesChildNode === 'object' && propertiesChildNode !== null) {\n let childDefinitionNode = propertiesChildNode;\n const typeOfItems = ReaderUtil.getString(propertiesChildNode, JsonSchema.type);\n if (typeOfItems == 'object') {\n // Single instance, parse forward\n this.readAndStoreCandidateChildInfo(\n childDefinitionNode,\n key,\n parsingResult,\n candidateChildrenInfo,\n path.add(JsonSchema.properties, key),\n );\n } else if (typeOfItems == 'array') {\n // Multiple instance, parse multi-info, then process 'items'\n childDefinitionNode = ReaderUtil.getNode(propertiesChildNode, JsonSchema.items);\n const childInfo: ChildDeploymentInfo | null = this.readAndStoreCandidateChildInfo(\n childDefinitionNode,\n key,\n parsingResult,\n candidateChildrenInfo,\n path.add(JsonSchema.properties, key, JsonSchema.items),\n );\n if (childInfo !== null) {\n // TODO: elevate this parsing to a separate class\n // Also handle maxItems inconsistencies.\n childInfo.multiInstance = true;\n childInfo.minItems = ReaderUtil.getNumber(propertiesChildNode, CedarModel.minItems);\n childInfo.maxItems = ReaderUtil.getNumber(propertiesChildNode, CedarModel.maxItems);\n }\n }\n }\n }\n });\n return candidateChildrenInfo;\n }\n\n protected generateAndValidateRequiredMap(\n elementRequired: Array<string>,\n requiredPartial: Array<string>,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ): Map<string, boolean> {\n // Generate a map of the \"required\" list for caching reasons\n const elementRequiredMap: Map<string, boolean> = elementRequired.reduce((acc, current) => {\n acc.set(current, true);\n return acc;\n }, new Map<string, boolean>());\n\n // Check if all the keys of the \"required\" blueprint are present in the template's \"required\"\n for (const key of requiredPartial) {\n if (!elementRequiredMap.has(key)) {\n this.reportBlueprintDifference(\n parsingResult,\n new ComparisonError('jtr01', ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, path.add(JsonSchema.required), key),\n );\n }\n }\n return elementRequiredMap;\n }\n\n protected checkRequiredBothWays(\n candidateChildrenInfo: ContainerArtifactChildrenInfo,\n elementRequiredMap: Map<string, boolean>,\n elementRequired: Array<string>,\n requiredPartialKeyMap: Map<string, boolean>,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n // Check if all candidate children are present in the \"required\". Static fields don't need to be there\n const childNames: Array<string> = candidateChildrenInfo.getChildrenNamesForRequired();\n for (const childName of childNames) {\n if (!elementRequiredMap.has(childName)) {\n this.reportBlueprintDifference(\n parsingResult,\n new ComparisonError('jtr02', ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, path.add(JsonSchema.required), childName),\n );\n }\n }\n\n // Check if \"required\" contains extra nodes (not in blueprint, not in children name list)\n for (const key of elementRequired) {\n if (!requiredPartialKeyMap.has(key) && !candidateChildrenInfo.has(key)) {\n this.reportBlueprintDifference(\n parsingResult,\n new ComparisonError('jtr03', ComparisonErrorType.UNEXPECTED_KEY_IN_REAL_OBJECT, path.add(JsonSchema.required), key),\n );\n }\n }\n }\n\n protected extractUIPreferredLabelsAndDescriptions(\n containerUI: JsonNode,\n candidateChildrenInfo: ContainerArtifactChildrenInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ) {\n // A container labels the children it chooses to. An entry is read where there is one and the child\n // keeps none where there is not — the field's own name and description are what a form falls back\n // to. This once demanded an entry for every child, which the meta-schema does not: `propertyLabels`\n // is required, its contents are not, and an empty one is a valid template. The demand also made\n // documents the Java library writes unreadable here.\n const containerUIPLabels = ReaderUtil.getStringMap(containerUI, CedarModel.propertyLabels);\n if (containerUIPLabels !== null) {\n for (const childInfo of candidateChildrenInfo.children) {\n if (containerUIPLabels.has(childInfo.name)) {\n childInfo.label = containerUIPLabels.get(childInfo.name) ?? null;\n }\n }\n }\n\n const containerUIPDescriptions = ReaderUtil.getStringMap(containerUI, CedarModel.propertyDescriptions);\n if (containerUIPDescriptions !== null) {\n for (const childInfo of candidateChildrenInfo.children) {\n if (containerUIPDescriptions.has(childInfo.name)) {\n childInfo.description = containerUIPDescriptions.get(childInfo.name) ?? null;\n }\n }\n }\n }\n\n /**\n * A blueprint difference, reported at the severity the behavior asks for.\n *\n * The blueprint describes what the library writes today; the templates CEDAR\n * served between 2018 and 2024 sometimes differ from it, because the canonical\n * form moved while they stayed as they were emitted. Rejecting those would\n * make the reader unable to open documents that demonstrably exist, so under a\n * behavior that tolerates known issues they are recorded as warnings instead.\n * `STRICT` keeps treating every one as an error.\n *\n * The difference is never discarded — a warning is still retrievable through\n * `getBlueprintComparisonWarnings`, so a caller that wants the stricter reading\n * can still get it without re-reading the document.\n */\n protected reportBlueprintDifference(parsingResult: JsonArtifactParsingResult, error: ComparisonError): void {\n if (this.behavior.useWarningForKnownIssues() && JsonObjectComparator.isKnownProductionVariation(error.errorPath)) {\n parsingResult.addBlueprintComparisonWarning(error);\n } else {\n parsingResult.addBlueprintComparisonError(error);\n }\n }\n\n protected extractIRIMappings(\n elementProperties: JsonNode,\n candidateChildrenInfo: ContainerArtifactChildrenInfo,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n // Get the IRI mappings\n const elementPropertiesContext: JsonNode = ReaderUtil.getNode(elementProperties, JsonSchema.atContext);\n const elementIRIMap: JsonNode = ReaderUtil.getNode(elementPropertiesContext, JsonSchema.properties);\n for (const childInfo of candidateChildrenInfo.children) {\n if (this.includeInIRIMapping(childInfo)) {\n const iriEnum: JsonNode = ReaderUtil.getNode(elementIRIMap, childInfo.name);\n const iriList: Array<string> = ReaderUtil.getStringList(iriEnum, JsonSchema.enum);\n if (iriList === null || iriList.length != 1) {\n this.reportBlueprintDifference(\n parsingResult,\n new ComparisonError(\n 'jtr06',\n ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT,\n path.add(JsonSchema.properties, JsonSchema.atContext, JsonSchema.properties, childInfo.name, JsonSchema.enum, 0),\n ),\n );\n } else {\n if (childInfo instanceof AbstractDynamicChildDeploymentInfo) {\n childInfo.iri = iriList[0];\n }\n }\n }\n }\n }\n\n protected readInstanceTypeSpecification(\n artifact: AbstractContainerArtifact,\n artifactSourceObject: JsonNode,\n _parsingResult: JsonArtifactParsingResult,\n ) {\n const properties: JsonNode = ReaderUtil.getNode(artifactSourceObject, JsonSchema.properties);\n if (properties !== null) {\n const atType: JsonNode = ReaderUtil.getNode(properties, JsonSchema.atType);\n if (atType !== null) {\n const oneOf: Array<JsonNode> = ReaderUtil.getNodeList(atType, JsonSchema.oneOf);\n if (oneOf !== null) {\n oneOf.forEach((item) => {\n const oneOfEnum = ReaderUtil.getStringList(item, JsonSchema.enum);\n if (oneOfEnum != null && oneOfEnum.length > 0) {\n artifact.instanceTypeSpecification = oneOfEnum[0];\n }\n });\n }\n }\n }\n }\n}\n","import { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { TemplateProperty } from '../../../model/cedar/constants/TemplateProperty';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonObjectComparator } from '../../../model/cedar/util/compare/JsonObjectComparator';\nimport { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { ContainerArtifactChildrenInfo } from '../../../model/cedar/deployment/ContainerArtifactChildrenInfo';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonTemplateFieldContentDynamic } from '../../../model/cedar/util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonTemplateElementReaderResult } from './JsonTemplateElementReaderResult';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { JsonContainerArtifactReader } from './JsonContainerArtifactReader';\nimport { JsonTemplateElementContent } from '../../../model/cedar/util/serialization/JsonTemplateElementContent';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\n\nexport class JsonTemplateElementReader extends JsonContainerArtifactReader {\n protected knownArtifactType: CedarArtifactType = CedarArtifactType.TEMPLATE_ELEMENT;\n\n private constructor(behavior: JsonReaderBehavior) {\n super(behavior);\n }\n\n public static getStrict(): JsonTemplateElementReader {\n return new JsonTemplateElementReader(JsonReaderBehavior.STRICT);\n }\n\n public static getFebruary2024(): JsonTemplateElementReader {\n return new JsonTemplateElementReader(JsonReaderBehavior.FEBRUARY_2024);\n }\n\n public static getForBehavior(behavior: JsonReaderBehavior): JsonTemplateElementReader {\n return new JsonTemplateElementReader(behavior);\n }\n\n protected override getElementReader(): JsonTemplateElementReader {\n return this;\n }\n\n protected override includeInIRIMapping(childInfo: ChildDeploymentInfo): boolean {\n return childInfo.atType !== CedarArtifactType.STATIC_TEMPLATE_FIELD;\n }\n\n public readFromString(elementSourceString: string): JsonTemplateElementReaderResult {\n let elementObject;\n try {\n elementObject = JSON.parse(elementSourceString);\n } catch {\n elementObject = {};\n }\n return this.readFromObject(elementObject, new JsonPath());\n }\n\n public readFromObject(elementSourceObject: JsonNode, topPath: JsonPath = new JsonPath()): JsonTemplateElementReaderResult {\n const parsingResult: JsonArtifactParsingResult = new JsonArtifactParsingResult();\n const element = TemplateElement.buildEmptyWithNullValues();\n\n this.readNonReportableAttributes(element, elementSourceObject);\n this.readReportableAttributes(element, elementSourceObject, parsingResult, topPath);\n this.readAnnotations(element, elementSourceObject);\n this.readInstanceTypeSpecification(element, elementSourceObject, parsingResult);\n this.readAndValidateChildrenInfo(element, elementSourceObject, parsingResult, topPath);\n\n return new JsonTemplateElementReaderResult(element, parsingResult, elementSourceObject);\n }\n\n protected readNonReportableAttributes(element: TemplateElement, elementSourceObject: JsonNode) {\n element.skos_prefLabel = ReaderUtil.getString(elementSourceObject, CedarModel.skosPrefLabel);\n element.skos_altLabel = ReaderUtil.getFilteredStringList(elementSourceObject, CedarModel.skosAltLabel);\n super.readNonReportableAttributes(element, elementSourceObject);\n }\n\n private readAndValidateChildrenInfo(\n element: TemplateElement,\n elementSourceObject: JsonNode,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n const elementRequired: Array<string> = ReaderUtil.getStringList(elementSourceObject, JsonSchema.required);\n const elementProperties: JsonNode = ReaderUtil.getNode(elementSourceObject, JsonSchema.properties);\n\n const elementRequiredMap: Map<string, boolean> = this.generateAndValidateRequiredMap(\n elementRequired,\n JsonTemplateElementContent.REQUIRED_PARTIAL,\n parsingResult,\n path,\n );\n\n const candidateChildrenInfo: ContainerArtifactChildrenInfo = this.getCandidateChildrenInfo(\n elementProperties,\n JsonTemplateElementContent.PROPERTIES_PARTIAL_KEY_MAP,\n parsingResult,\n path,\n );\n\n this.checkRequiredBothWays(\n candidateChildrenInfo,\n elementRequiredMap,\n elementRequired,\n JsonTemplateElementContent.REQUIRED_PARTIAL_KEY_MAP,\n parsingResult,\n path,\n );\n\n const elementUI: JsonNode = ReaderUtil.getNode(elementSourceObject, CedarModel.ui);\n this.extractUIPreferredLabelsAndDescriptions(elementUI, candidateChildrenInfo, parsingResult, path);\n\n this.extractIRIMappings(elementProperties, candidateChildrenInfo, parsingResult, path);\n\n const elementUIOrder = ReaderUtil.getStringList(elementUI, CedarModel.order);\n const finalChildrenInfo = this.finalizeChildInfo(elementUIOrder, candidateChildrenInfo, parsingResult, path);\n\n this.validatePropertiesVsOrder(candidateChildrenInfo, elementUIOrder, parsingResult, path);\n\n this.validateProperties(finalChildrenInfo, elementProperties, element, parsingResult, path);\n\n this.parseChildren(finalChildrenInfo, elementProperties, element, parsingResult, path);\n }\n\n private validateProperties(\n childrenInfo: ContainerArtifactChildrenInfo,\n elementProperties: JsonNode,\n _element: TemplateElement,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n // Validate properties\n // 'properties' should have extra entry for Fields/Elements as definition\n // 'properties/context/properties' should have extra entry for Fields/Elements as IRI mappings\n // all other content should match verbatim\n // If there are attribute-value children, /properties/@context/additionalProperties/ must be\n // {\n // \"type\": \"string\",\n // \"format\": \"uri\"\n // },\n const blueprint = ReaderUtil.deepClone(JsonTemplateElementContent.PROPERTIES_PARTIAL) as JsonNode;\n if (childrenInfo.hasAttributeValue()) {\n const atContext: JsonNode = blueprint[JsonSchema.atContext] as JsonNode;\n atContext[TemplateProperty.additionalProperties] =\n JsonTemplateFieldContentDynamic.ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_INSIDE;\n }\n // Required should not be present if empty\n const atContext: JsonNode = blueprint[JsonSchema.atContext] as JsonNode;\n const pCRequired = ReaderUtil.getNodeList(atContext, JsonSchema.required);\n if (pCRequired != null && pCRequired.length == 0) {\n ReaderUtil.deleteNodeKey(atContext, JsonSchema.required);\n }\n JsonTemplateElementContent.acceptEitherIdTyping(blueprint, elementProperties);\n JsonObjectComparator.compareToLeft(parsingResult, blueprint, elementProperties, path.add(JsonSchema.properties), this.behavior);\n }\n}\n","import { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { JsonArtifactReaderResult } from './JsonArtifactReaderResult';\n\nexport class JsonTemplateElementReaderResult extends JsonArtifactReaderResult {\n constructor(element: TemplateElement, parsingResult: JsonArtifactParsingResult, elementSourceObject: JsonNode) {\n super(element, parsingResult, elementSourceObject);\n }\n\n get element(): TemplateElement {\n return this._artifact as TemplateElement;\n }\n\n get elementSourceObject(): JsonNode {\n return this._artifactSourceObject;\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { TemplateProperty } from '../../../model/cedar/constants/TemplateProperty';\nimport { JsonObjectComparator } from '../../../model/cedar/util/compare/JsonObjectComparator';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JavascriptType } from '../../../model/cedar/types/wrapped-types/JavascriptType';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { ArtifactSchema } from '../../../model/cedar/types/wrapped-types/ArtifactSchema';\nimport { JsonTemplateFieldContentDynamic } from '../../../model/cedar/util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonFieldReaderTextField } from '../../../model/cedar/field/dynamic/textfield/JsonFieldReaderTextField';\nimport { JsonFieldReaderPageBreak } from '../../../model/cedar/field/static/page-break/JsonFieldReaderPageBreak';\nimport { JsonFieldReaderSectionBreak } from '../../../model/cedar/field/static/section-break/JsonFieldReaderSectionBreak';\nimport { JsonFieldReaderImage } from '../../../model/cedar/field/static/image/JsonFieldReaderImage';\nimport { JsonFieldReaderRichText } from '../../../model/cedar/field/static/rich-text/JsonFieldReaderRichText';\nimport { JsonFieldReaderYoutube } from '../../../model/cedar/field/static/youtube/JsonFieldReaderYoutube';\nimport { JsonFieldReaderLink } from '../../../model/cedar/field/dynamic/link/JsonFieldReaderLink';\nimport { JsonTemplateFieldContentStatic } from '../../../model/cedar/util/serialization/JsonTemplateFieldContentStatic';\nimport { JsonFieldReaderTemporal } from '../../../model/cedar/field/dynamic/temporal/JsonFieldReaderTemporal';\nimport { JsonFieldReaderEmail } from '../../../model/cedar/field/dynamic/email/JsonFieldReaderEmail';\nimport { JsonFieldReaderNumeric } from '../../../model/cedar/field/dynamic/numeric/JsonFieldReaderNumeric';\nimport { JsonFieldReaderTextArea } from '../../../model/cedar/field/dynamic/textarea/JsonFieldReaderTextArea';\nimport { JsonFieldReaderPhoneNumber } from '../../../model/cedar/field/dynamic/phone-number/JsonFieldReaderPhoneNumber';\nimport { JsonFieldReaderRadio } from '../../../model/cedar/field/dynamic/radio/JsonFieldReaderRadio';\nimport { JsonTemplateFieldTypeSpecificReader } from './JsonTemplateFieldTypeSpecificReader';\nimport { UiInputType } from '../../../model/cedar/types/wrapped-types/UiInputType';\nimport { JsonFieldReaderCheckbox } from '../../../model/cedar/field/dynamic/checkbox/JsonFieldReaderCheckbox';\nimport { JsonFieldReaderList } from '../../../model/cedar/field/dynamic/list/JsonFieldReaderList';\nimport { JsonFieldReaderAttributeValue } from '../../../model/cedar/field/dynamic/attribute-value/JsonFieldReaderAttributeValue';\nimport { CedarFieldType } from '../../../model/cedar/types/cedar-types/CedarFieldType';\nimport { JsonFieldReaderControlledTerm } from '../../../model/cedar/field/dynamic/controlled-term/JsonFieldReaderControlledTerm';\nimport { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonTemplateFieldReaderResult } from './JsonTemplateFieldReaderResult';\nimport { UnknownTemplateField } from '../../../model/cedar/field/UnknownTemplateField';\nimport { JsonAbstractSchemaArtifactReader } from './JsonAbstractSchemaArtifactReader';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport { AbstractChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractChildDeploymentInfo';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\nimport { JsonFieldReaderExtRor } from '../../../model/cedar/field/dynamic/ext-ror/JsonFieldReaderExtRor';\nimport { JsonFieldReaderExtOrcid } from '../../../model/cedar/field/dynamic/ext-orcid/JsonFieldReaderExtOrcid';\nimport { JsonFieldReaderExtPfas } from '../../../model/cedar/field/dynamic/ext-pfas/JsonFieldReaderExtPfas';\nimport { JsonFieldReaderExtPubmed } from '../../../model/cedar/field/dynamic/ext-pubmed/JsonFieldReaderExtPubmed';\nimport { JsonFieldReaderExtRrid } from '../../../model/cedar/field/dynamic/ext-rrid/JsonFieldReaderExtRrid';\nimport { JsonFieldReaderExtNihGrantId } from '../../../model/cedar/field/dynamic/ext-nih-grant-id/JsonFieldReaderExtNihGrantId';\nimport { JsonFieldReaderExtDoi } from '../../../model/cedar/field/dynamic/ext-doi/JsonFieldReaderExtDoi';\n\nexport class JsonTemplateFieldReader extends JsonAbstractSchemaArtifactReader {\n protected constructor(behavior: JsonReaderBehavior) {\n super(behavior);\n }\n\n public static getStrict(): JsonTemplateFieldReader {\n return new JsonTemplateFieldReader(JsonReaderBehavior.STRICT);\n }\n\n public static getFebruary2024(): JsonTemplateFieldReader {\n return new JsonTemplateFieldReader(JsonReaderBehavior.FEBRUARY_2024);\n }\n\n public static getForBehavior(behavior: JsonReaderBehavior): JsonTemplateFieldReader {\n return new JsonTemplateFieldReader(behavior);\n }\n\n static dynamicTypeReaderMap = new Map<CedarFieldType, JsonTemplateFieldTypeSpecificReader>([\n [CedarFieldType.TEXT, new JsonFieldReaderTextField()],\n [CedarFieldType.TEXTAREA, new JsonFieldReaderTextArea()],\n [CedarFieldType.CONTROLLED_TERM, new JsonFieldReaderControlledTerm()],\n [CedarFieldType.LINK, new JsonFieldReaderLink()],\n [CedarFieldType.EXT_ROR, new JsonFieldReaderExtRor()],\n [CedarFieldType.EXT_ORCID, new JsonFieldReaderExtOrcid()],\n [CedarFieldType.EXT_PFAS, new JsonFieldReaderExtPfas()],\n [CedarFieldType.EXT_PUBMED, new JsonFieldReaderExtPubmed()],\n [CedarFieldType.EXT_RRID, new JsonFieldReaderExtRrid()],\n [CedarFieldType.EXT_NIH_GRANT_ID, new JsonFieldReaderExtNihGrantId()],\n [CedarFieldType.EXT_DOI, new JsonFieldReaderExtDoi()],\n [CedarFieldType.TEMPORAL, new JsonFieldReaderTemporal()],\n [CedarFieldType.EMAIL, new JsonFieldReaderEmail()],\n [CedarFieldType.NUMERIC, new JsonFieldReaderNumeric()],\n [CedarFieldType.PHONE_NUMBER, new JsonFieldReaderPhoneNumber()],\n [CedarFieldType.RADIO, new JsonFieldReaderRadio()],\n [CedarFieldType.CHECKBOX, new JsonFieldReaderCheckbox()],\n [CedarFieldType.SINGLE_SELECT_LIST, new JsonFieldReaderList()],\n [CedarFieldType.MULTIPLE_SELECT_LIST, new JsonFieldReaderList()],\n [CedarFieldType.ATTRIBUTE_VALUE, new JsonFieldReaderAttributeValue()],\n [CedarFieldType.STATIC_PAGE_BREAK, new JsonFieldReaderPageBreak()],\n [CedarFieldType.STATIC_SECTION_BREAK, new JsonFieldReaderSectionBreak()],\n [CedarFieldType.STATIC_IMAGE, new JsonFieldReaderImage()],\n [CedarFieldType.STATIC_RICH_TEXT, new JsonFieldReaderRichText()],\n [CedarFieldType.STATIC_YOUTUBE, new JsonFieldReaderYoutube()],\n ]);\n\n public readFromString(fieldSourceString: string): JsonTemplateFieldReaderResult {\n let fieldObject;\n try {\n fieldObject = JSON.parse(fieldSourceString);\n } catch {\n fieldObject = {};\n }\n return this.readFromObject(fieldObject);\n }\n\n public readFromObject(fieldSourceObject: JsonNode): JsonTemplateFieldReaderResult {\n const childInfo: AbstractChildDeploymentInfo = ChildDeploymentInfo.standalone();\n const path: JsonPath = new JsonPath();\n return this.readFromObjectInternal(fieldSourceObject, childInfo, path);\n }\n\n protected readFromObjectInternal(\n fieldSourceObject: JsonNode,\n childInfo: AbstractChildDeploymentInfo,\n path: JsonPath,\n ): JsonTemplateFieldReaderResult {\n const parsingResult: JsonArtifactParsingResult = new JsonArtifactParsingResult();\n const field: TemplateField = JsonTemplateFieldReader.readFieldSpecificAttributes(fieldSourceObject, childInfo, parsingResult, path);\n this.readNonReportableAttributes(field, fieldSourceObject);\n this.readReportableAttributes(field, fieldSourceObject, parsingResult, path);\n this.readAnnotations(field, fieldSourceObject);\n return new JsonTemplateFieldReaderResult(field, parsingResult, fieldSourceObject);\n }\n\n protected readNonReportableAttributes(field: TemplateField, fieldSourceObject: JsonNode) {\n super.readNonReportableAttributes(field, fieldSourceObject);\n // Read field-specific nodes\n field.skos_prefLabel = ReaderUtil.getString(fieldSourceObject, CedarModel.skosPrefLabel);\n field.skos_altLabel = ReaderUtil.getFilteredStringList(fieldSourceObject, CedarModel.skosAltLabel);\n }\n\n protected readReportableAttributes(\n field: TemplateField,\n fieldSourceObject: JsonNode,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n // Read and validate, but do not store top level @type\n\n // Read and validate, but do not store top level @context\n const topContextNode: JsonNode = ReaderUtil.getNode(fieldSourceObject, JsonSchema.atContext);\n let blueprintAtContext: JsonNode = JsonNode.getEmpty();\n if (field.cedarArtifactType == CedarArtifactType.TEMPLATE_FIELD) {\n blueprintAtContext = JsonTemplateFieldContentDynamic.CONTEXT_VERBATIM;\n } else if (field.cedarArtifactType == CedarArtifactType.STATIC_TEMPLATE_FIELD) {\n blueprintAtContext = JsonTemplateFieldContentStatic.CONTEXT_VERBATIM;\n }\n JsonObjectComparator.compareBothWays(parsingResult, blueprintAtContext, topContextNode, path.add(JsonSchema.atContext), this.behavior, [\n JsonSchema.atLanguage,\n ]);\n\n // Read and validate, but do not store top level type\n // Attribute value requires string, the others object\n if (field.cedarFieldType === CedarFieldType.ATTRIBUTE_VALUE) {\n JsonObjectComparator.comparePrimitive(\n parsingResult,\n JavascriptType.STRING.getValue(),\n ReaderUtil.getString(fieldSourceObject, CedarModel.type),\n path.add(CedarModel.type),\n );\n } else {\n JsonObjectComparator.comparePrimitive(\n parsingResult,\n JavascriptType.OBJECT.getValue(),\n ReaderUtil.getString(fieldSourceObject, CedarModel.type),\n path.add(CedarModel.type),\n );\n }\n\n // Read and validate, but do not store top level additionalProperties\n JsonObjectComparator.comparePrimitive(\n parsingResult,\n false,\n ReaderUtil.getBoolean(fieldSourceObject, TemplateProperty.additionalProperties),\n path.add(TemplateProperty.additionalProperties),\n );\n\n // Read and validate, but do not store top level $schema\n JsonObjectComparator.comparePrimitive(\n parsingResult,\n ArtifactSchema.CURRENT.getValue(),\n ReaderUtil.getString(fieldSourceObject, CedarModel.schema),\n path.add(CedarModel.schema),\n );\n field.language = Language.forValue(ReaderUtil.getString(topContextNode, JsonSchema.atLanguage));\n }\n\n protected static readFieldSpecificAttributes(\n fieldSourceObject: JsonNode,\n childInfo: AbstractChildDeploymentInfo,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ): TemplateField {\n const artifactType: CedarArtifactType = CedarArtifactType.forValue(ReaderUtil.getString(fieldSourceObject, JsonSchema.atType));\n const uiNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.ui);\n const rawUiInputType = ReaderUtil.getString(uiNode, CedarModel.inputType);\n const uiInputType: UiInputType = UiInputType.forValue(rawUiInputType);\n const fieldType: CedarFieldType = this.getCedarFieldType(fieldSourceObject, uiInputType);\n if (fieldType === CedarFieldType.NULL) {\n throw new Error(`Unknown uiInputType type: \"${rawUiInputType}\"`);\n } else {\n if (artifactType == CedarArtifactType.TEMPLATE_FIELD || artifactType == CedarArtifactType.STATIC_TEMPLATE_FIELD) {\n if (uiInputType != null) {\n const reader: JsonTemplateFieldTypeSpecificReader | undefined = this.dynamicTypeReaderMap.get(fieldType);\n if (!reader) {\n throw new Error(`\n No reader defined for dynamic input type \"${fieldType.getValue()}\"`);\n }\n return reader.read(fieldSourceObject, childInfo, parsingResult, path);\n }\n }\n }\n return UnknownTemplateField.build();\n }\n\n private static fieldHasValueConstraint(fieldSourceObject: JsonNode) {\n const vcNode: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n const ontologies: Array<JsonNode> = ReaderUtil.getNodeList(vcNode, CedarModel.ontologies);\n if (ontologies.length > 0) {\n return true;\n }\n const branches: Array<JsonNode> = ReaderUtil.getNodeList(vcNode, CedarModel.branches);\n if (branches.length > 0) {\n return true;\n }\n const classes: Array<JsonNode> = ReaderUtil.getNodeList(vcNode, CedarModel.classes);\n if (classes.length > 0) {\n return true;\n }\n const valueSets: Array<JsonNode> = ReaderUtil.getNodeList(vcNode, CedarModel.valueSets);\n return valueSets.length > 0;\n }\n\n private static getCedarFieldType(fieldSourceObject: JsonNode, uiInputType: UiInputType): CedarFieldType {\n let fieldType: CedarFieldType = CedarFieldType.forUiInputType(uiInputType);\n // The map used in the method will guarantee that TEXT is always returned, but we double-check anyway\n if (fieldType === CedarFieldType.TEXT || fieldType === CedarFieldType.CONTROLLED_TERM) {\n if (this.fieldHasValueConstraint(fieldSourceObject)) {\n fieldType = CedarFieldType.CONTROLLED_TERM;\n } else {\n fieldType = CedarFieldType.TEXT;\n }\n }\n return fieldType;\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonTemplateFieldReaderResult } from './JsonTemplateFieldReaderResult';\nimport { AbstractChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractChildDeploymentInfo';\nimport { JsonTemplateFieldReader } from './JsonTemplateFieldReader';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\n\nexport class JsonTemplateFieldReaderInternal extends JsonTemplateFieldReader {\n private constructor(behavior: JsonReaderBehavior) {\n super(behavior);\n }\n\n public static getForBehavior(behavior: JsonReaderBehavior): JsonTemplateFieldReaderInternal {\n return new JsonTemplateFieldReaderInternal(behavior);\n }\n\n public readFromObjectInternal(\n fieldSourceObject: JsonNode,\n childInfo?: AbstractChildDeploymentInfo,\n path?: JsonPath,\n ): JsonTemplateFieldReaderResult {\n childInfo = childInfo || ChildDeploymentInfo.standalone();\n path = path || new JsonPath();\n return super.readFromObjectInternal(fieldSourceObject, childInfo, path);\n }\n}\n","import { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { JsonArtifactReaderResult } from './JsonArtifactReaderResult';\n\nexport class JsonTemplateFieldReaderResult extends JsonArtifactReaderResult {\n constructor(field: TemplateField, parsingResult: JsonArtifactParsingResult, elementSourceObject: JsonNode) {\n super(field, parsingResult, elementSourceObject);\n }\n\n get field(): TemplateField {\n return this._artifact as TemplateField;\n }\n\n get fieldSourceObject(): JsonNode {\n return this._artifactSourceObject;\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { UnknownTemplateField } from '../../../model/cedar/field/UnknownTemplateField';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { AbstractChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractChildDeploymentInfo';\n\nexport abstract class JsonTemplateFieldTypeSpecificReader {\n public read(\n _fieldSourceObject: JsonNode,\n _childInfo: AbstractChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): TemplateField {\n return UnknownTemplateField.build();\n }\n\n protected readRequiredAndHidden(fieldSourceObject: JsonNode, childInfo: ChildDeploymentInfo): void {\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n childInfo.requiredValue = ReaderUtil.getBoolean(valueConstraints, CedarModel.requiredValue);\n childInfo.recommendedValue = ReaderUtil.getBoolean(valueConstraints, CedarModel.ValueConstraints.recommendedValue);\n }\n const uiNode: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.ui);\n if (uiNode) {\n childInfo.hidden = ReaderUtil.getBoolean(uiNode, CedarModel.Ui.hidden);\n childInfo.continuePreviousLine = ReaderUtil.getBoolean(uiNode, CedarModel.Ui.continuePreviousLine);\n childInfo.valueRecommendationEnabled = ReaderUtil.getBoolean(uiNode, CedarModel.Ui.valueRecommendationEnabled);\n }\n }\n}\n","import { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { ComparisonError } from '../../../model/cedar/util/compare/ComparisonError';\nimport { ComparisonErrorType } from '../../../model/cedar/util/compare/ComparisonErrorType';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonAbstractInstanceArtifactReader } from './JsonAbstractInstanceArtifactReader';\nimport { TemplateInstance } from '../../../model/cedar/template-instance/TemplateInstance';\nimport { JsonTemplateInstanceReaderResult } from './JsonTemplateInstanceReaderResult';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { InstanceDataContainer } from '../../../model/cedar/template-instance/InstanceDataContainer';\nimport { InstanceDataStringAtom } from '../../../model/cedar/template-instance/InstanceDataStringAtom';\nimport { InstanceDataAtomList } from '../../../model/cedar/template-instance/InstanceDataAtomList';\nimport { InstanceDataLinkAtom } from '../../../model/cedar/template-instance/InstanceDataLinkAtom';\nimport { InstanceDataAtomType } from '../../../model/cedar/template-instance/InstanceDataAtomType';\nimport { InstanceDataEmptyAtom } from '../../../model/cedar/template-instance/InstanceDataEmptyAtom';\nimport { InstanceDataControlledAtom } from '../../../model/cedar/template-instance/InstanceDataControlledAtom';\nimport { InstanceDataTypedAtom } from '../../../model/cedar/template-instance/InstanceDataTypedAtom';\nimport { InstanceDataEmptyNode } from '../../../model/cedar/template-instance/InstanceDataEmptyNode';\nimport { InstanceDataAttributeValueFieldName } from '../../../model/cedar/template-instance/InstanceDataAttributeValueFieldName';\nimport { InstanceDataAttributeValueField } from '../../../model/cedar/template-instance/InstanceDataAttributeValueField';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { JsonTemplateInstanceContent } from '../../../model/cedar/util/serialization/JsonTemplateInstanceContent';\nimport { AttributeValueNamePolicy } from '../../../model/cedar/template-instance/AttributeValueNamePolicy';\n\nexport class JsonTemplateInstanceReader extends JsonAbstractInstanceArtifactReader {\n protected knownArtifactType: CedarArtifactType = CedarArtifactType.TEMPLATE_INSTANCE;\n protected knownKeys: Record<string, boolean> = {\n [JsonSchema.atId]: true,\n [JsonSchema.oslcModifiedBy]: true,\n [JsonSchema.pavLastUpdatedOn]: true,\n [JsonSchema.pavCreatedBy]: true,\n [JsonSchema.pavCreatedOn]: true,\n [JsonSchema.schemaDescription]: true,\n [JsonSchema.schemaName]: true,\n [JsonSchema.schemaIsBasedOn]: true,\n [JsonSchema.atContext]: true,\n [CedarModel.annotations]: true,\n };\n\n private constructor(behavior: JsonReaderBehavior) {\n super(behavior);\n }\n\n public static getStrict(): JsonTemplateInstanceReader {\n return new JsonTemplateInstanceReader(JsonReaderBehavior.STRICT);\n }\n\n public static getFebruary2024(): JsonTemplateInstanceReader {\n return new JsonTemplateInstanceReader(JsonReaderBehavior.FEBRUARY_2024);\n }\n\n public static getForBehavior(behavior: JsonReaderBehavior): JsonTemplateInstanceReader {\n return new JsonTemplateInstanceReader(behavior);\n }\n\n public readFromString(instanceSourceString: string): JsonTemplateInstanceReaderResult {\n let instanceObject;\n try {\n instanceObject = JSON.parse(instanceSourceString);\n } catch {\n instanceObject = {};\n }\n return this.readFromObject(instanceObject, new JsonPath());\n }\n\n public readFromObject(instanceSourceObject: JsonNode, topPath?: JsonPath): JsonTemplateInstanceReaderResult {\n const parsingResult: JsonArtifactParsingResult = new JsonArtifactParsingResult();\n const instance = TemplateInstance.buildEmptyWithNullValues();\n\n this.readNonReportableAttributes(instance, instanceSourceObject);\n\n // The caller's path was accepted and then discarded in favour of a fresh\n // one, so anything reported here was rooted at the document rather than\n // where the document actually sits. It mattered for nothing while nothing\n // was reported; it does now.\n const path = topPath ?? new JsonPath();\n this.readInstanceData(instanceSourceObject, instance, path, parsingResult);\n JsonTemplateInstanceReader.reportEnvelope(instanceSourceObject, path, parsingResult);\n\n return new JsonTemplateInstanceReaderResult(instance, parsingResult, instanceSourceObject);\n }\n\n /**\n * The keys a saved instance carries around its data.\n *\n * `@context` binds every child name to an IRI, `schema:isBasedOn` identifies\n * the template the document claims to instantiate, `@id` names the document\n * itself, and the four provenance keys record who wrote it and when. Together\n * they are the difference between an instance and a bag of values.\n */\n private static readonly ENVELOPE_KEYS: ReadonlyArray<string> = [\n JsonSchema.atContext,\n JsonSchema.atId,\n JsonSchema.schemaIsBasedOn,\n JsonSchema.pavCreatedOn,\n JsonSchema.pavCreatedBy,\n JsonSchema.oslcModifiedBy,\n JsonSchema.pavLastUpdatedOn,\n ];\n\n /**\n * What the envelope is missing, as warnings.\n *\n * `knownKeys` listed the envelope and nothing consulted it, so an instance\n * with no `@id`, no `schema:isBasedOn`, no provenance and an empty `@context`\n * read as clean — the reader skipped those keys as \"known\" and never asked\n * whether they were there. That is the whole of\n * https://github.com/metadatacenter/cedar-model-typescript-library/issues/2.\n *\n * Warnings rather than errors, and the corpus is the reason: 29 of its 121\n * instances carry no envelope at all. They are not malformed. An instance has\n * no `@id` or provenance until it is saved, and the CEDAR Embeddable Editor's\n * \"extract\" form strips `@context` from documents it passes around. Rejecting\n * those would make the reader unable to open documents that demonstrably\n * exist, which is the same trap the template reader avoids for pre-2024 forms.\n *\n * So the two verdicts split the answer: `wasSuccessful` stays true, because\n * the document read and the values are usable, while `adheresToBlueprint`\n * turns false, because this is not what a complete instance looks like. A\n * caller that wants to know before saving asks the second one.\n */\n private static reportEnvelope(sourceObject: JsonNode, path: JsonPath, parsingResult: JsonArtifactParsingResult): void {\n for (const key of JsonTemplateInstanceReader.ENVELOPE_KEYS) {\n if (!Object.hasOwn(sourceObject, key)) {\n parsingResult.addBlueprintComparisonWarning(\n new ComparisonError('JsonTemplateInstanceReader', ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, path.add(key), key),\n );\n continue;\n }\n // Present and empty is its own case. `pav:createdOn: null` is how a\n // document that was never saved spells the key it has no value for, and an\n // `@context` of `{}` binds nothing — neither is more complete than the\n // absence, so neither passes quietly.\n const value = ReaderUtil.getNode(sourceObject, key);\n const empty = value === null || value === undefined || (key === JsonSchema.atContext && Object.keys(value).length === 0);\n if (empty) {\n parsingResult.addBlueprintComparisonWarning(\n new ComparisonError('JsonTemplateInstanceReader', ComparisonErrorType.MISSING_VALUE_IN_REAL_OBJECT, path.add(key), key, null),\n );\n }\n }\n }\n\n protected readInstanceData(\n sourceObject: JsonNode,\n instance: TemplateInstance,\n path: JsonPath,\n parsingResult: JsonArtifactParsingResult,\n ): void {\n instance.dataContainer = this.readInstanceContainer(sourceObject, path, parsingResult);\n this.readAnnotations(instance, sourceObject);\n }\n\n private readInstanceContainer(sourceObject: JsonNode, path: JsonPath, parsingResult: JsonArtifactParsingResult): InstanceDataContainer {\n return this.parseContainer(sourceObject, path, parsingResult);\n }\n\n protected isKnownKey(key: string): boolean {\n return Object.hasOwn(this.knownKeys, key);\n }\n\n private parseContainer(sourceObject: JsonNode, path: JsonPath, parsingResult: JsonArtifactParsingResult): InstanceDataContainer {\n const ret: InstanceDataContainer = new InstanceDataContainer();\n Object.keys(sourceObject).forEach((key) => {\n if (!this.isKnownKey(key)) {\n const content: JsonNode = ReaderUtil.getNode(sourceObject, key);\n if (Array.isArray(content)) {\n const arrayContainer: InstanceDataAtomList = [];\n ret.setValue(key, arrayContainer);\n content.forEach((arrayElement: JsonNode, index: number) => {\n arrayContainer[index] = this.parseNode(arrayElement, path.add(key, index), parsingResult);\n });\n } else {\n ret.setValue(key, this.parseNode(content, path.add(key), parsingResult));\n }\n }\n });\n // Nested containers run through this method in their own right. Report\n // only this level here so a nested conflict is not repeated once for every\n // ancestor on the way back out of the recursive parse.\n for (const conflict of AttributeValueNamePolicy.findConflicts(ret).filter((candidate) => candidate.path.length === 0)) {\n parsingResult.addBlueprintComparisonError(\n new ComparisonError(\n 'JsonTemplateInstanceReader',\n ComparisonErrorType.VALUE_MISMATCH,\n path.add(...conflict.path, conflict.groupName, conflict.name),\n 'a unique, non-reserved attribute-value name',\n conflict.name,\n ),\n );\n }\n this.packAttributeValues(ret);\n\n // `\"@context\": null` is a present key with nothing in it, and every lookup\n // below starts with `Object.hasOwn`, which throws on null — so a document\n // carrying one took the reader down instead of parsing. The same trap as a\n // null child in `parseNode`. There are no mappings to read either way, and\n // `reportEnvelope` is what says the context is missing.\n const atContextNode = Object.hasOwn(sourceObject, JsonSchema.atContext) ? ReaderUtil.getNode(sourceObject, JsonSchema.atContext) : null;\n if (atContextNode !== null && atContextNode !== undefined) {\n const atContext = atContextNode;\n // add iri mapping for regular fields\n Object.keys(ret.values).forEach((key) => {\n const iri = ReaderUtil.getString(atContext, key);\n if (iri !== null) {\n ret.setIri(key, iri);\n }\n });\n\n // add iri for AV fields\n Object.keys(ret.values).forEach((key: string) => {\n const field = ret.values[key];\n if (field instanceof InstanceDataAttributeValueField) {\n Object.keys(field.values).forEach((avElementName: string) => {\n const iri = ReaderUtil.getString(atContext, avElementName);\n if (iri !== null) {\n ret.setIri(avElementName, iri);\n }\n });\n }\n });\n\n // Keep the mapping for children that carry no data.\n //\n // The two passes above walk `ret.values`, so they only see children the\n // instance actually populated. A template may declare more children than\n // the data fills, and their @context entries were being dropped — which\n // made a round trip through this library non-idempotent for any such\n // instance. Anything not already covered by the standard prefixes and\n // typed entries is a child property IRI and belongs in the output.\n Object.keys(atContext).forEach((key: string) => {\n if (Object.hasOwn(JsonTemplateInstanceContent.CONTEXT_VERBATIM, key)) {\n return;\n }\n const iri = ReaderUtil.getString(atContext, key);\n if (iri !== null) {\n ret.setIri(key, iri);\n }\n });\n }\n\n // Add @id. Compatibility readers must be able to open the production form\n // CEDAR itself once wrote for an unassigned element occurrence: \"@id\": \"\".\n // Keep the value in the read model so the departure remains observable, but\n // record it as a warning; the writer turns it into null, which is the\n // canonical request for the repository to assign an occurrence identifier.\n // STRICT still refuses it. The document root has already passed through\n // readNonReportableAttributes, so this leniency applies only to nested\n // containers, not to an artifact pretending its own identifier is blank.\n if (Object.hasOwn(sourceObject, JsonSchema.atId)) {\n const atId = ReaderUtil.getString(sourceObject, JsonSchema.atId);\n if (atId !== null) {\n if (atId.trim() === '') {\n if (!this.behavior.useWarningForKnownIssues()) {\n JsonTemplateInstanceReader.refuseEmptyIdentifier(sourceObject);\n }\n parsingResult.addBlueprintComparisonWarning(\n new ComparisonError(\n 'JsonTemplateInstanceReader',\n ComparisonErrorType.VALUE_MISMATCH,\n path.add(JsonSchema.atId),\n 'an absolute IRI or null while the occurrence awaits server assignment',\n atId,\n ),\n );\n }\n ret.id = atId;\n }\n }\n return ret;\n }\n\n /**\n * Everything a field's value may carry, and nothing an element would.\n * `@type` and `skos:notation` appear on controlled terms; `@id` and\n * `rdfs:label` are the IRI-valued pair; `@value` is the literal case.\n */\n private static readonly VALUE_ATOM_KEYS: ReadonlySet<string> = new Set([\n JsonSchema.atValue,\n JsonSchema.atId,\n JsonSchema.rdfsLabel,\n JsonSchema.atType,\n CedarModel.skosNotation,\n ]);\n\n /**\n * True when this node is a field's value rather than an element.\n *\n * A value carries only value keys. Anything else holding an `@id` is an\n * element that has simply not written its `@context` — which is what the\n * CEDAR Embeddable Editor's \"extract\" form of an instance looks like, and\n * reading `@id` alone as the signal turns every element in it into a link\n * atom, losing the whole subtree.\n *\n * Public because consumers keep needing to ask it and keep answering it\n * differently. CEE had three separate rules for it — one matching on exact\n * key counts, which deleted the `@id` of any controlled term or link that\n * also carried a `@type`.\n */\n public static isValueNode(sourceObject: JsonNode | string | null): boolean {\n if (sourceObject === null || sourceObject === undefined) {\n return false;\n }\n if (typeof sourceObject === 'string') {\n // An attribute-value field's slot holds the attribute's name.\n return true;\n }\n if (Object.hasOwn(sourceObject, JsonSchema.atValue)) {\n return true;\n }\n if (Object.hasOwn(sourceObject, JsonSchema.atContext)) {\n return false;\n }\n const keys = Object.keys(sourceObject);\n return keys.length > 0 && keys.every((key) => JsonTemplateInstanceReader.VALUE_ATOM_KEYS.has(key));\n }\n\n /**\n * Classify one value node on its own, without a surrounding instance.\n *\n * The type is the answer to what the value *is*: a `InstanceDataLinkAtom`\n * carries its IRI, a `InstanceDataControlledAtom` its label, a\n * `InstanceDataStringAtom` its literal. A consumer holding a bare node — a\n * validator, a report — otherwise has to re-derive that from the keys.\n */\n public static readValueNode(sourceObject: JsonNode | string | null): InstanceDataAtomType {\n if (sourceObject === null || sourceObject === undefined) {\n return new InstanceDataEmptyNode();\n }\n if (typeof sourceObject === 'string') {\n return new InstanceDataAttributeValueFieldName(sourceObject);\n }\n if (!JsonTemplateInstanceReader.isValueNode(sourceObject)) {\n return new InstanceDataEmptyNode();\n }\n return JsonTemplateInstanceReader.parseDataAtom(sourceObject);\n }\n\n private parseNode(\n sourceObject: JsonNode | string | null,\n path: JsonPath,\n parsingResult: JsonArtifactParsingResult,\n ): InstanceDataAtomType {\n // `null` is how an element with no occurrences is written, and it reaches\n // here both on its own and as a member of a list. Every check below starts\n // with `Object.hasOwn`, which throws on it, so an instance containing one\n // took the reader down rather than parsing.\n if (sourceObject === null || sourceObject === undefined) {\n return new InstanceDataEmptyNode();\n }\n if (typeof sourceObject === 'string') {\n return new InstanceDataAttributeValueFieldName(sourceObject);\n }\n if (JsonTemplateInstanceReader.isValueNode(sourceObject)) {\n const atom = JsonTemplateInstanceReader.parseDataAtom(sourceObject);\n JsonTemplateInstanceReader.reportNullIri(atom, path, parsingResult);\n return atom;\n }\n if (Object.keys(sourceObject).length === 0) {\n return new InstanceDataEmptyNode();\n }\n return this.parseContainer(sourceObject, path, parsingResult);\n }\n\n /**\n * `{\"@id\": null}` is malformed, and was being preserved rather than reported.\n *\n * `@value` and `@id` are not symmetrical. A literal's `@value` may be null —\n * JSON-LD permits it and CEDAR declares the property `[\"string\", \"null\"]`,\n * which is how an unfilled literal is written. An `@id` may not: JSON-LD\n * requires an IRI, and CEDAR's templates declare it\n * `{\"type\": \"string\", \"format\": \"uri\"}` with no null branch. An unfilled link\n * or controlled-term field is written `{}`.\n *\n * The round trip made this invisible. The reader took `{\"@id\": null}` as a\n * link atom holding a null id and the writer emitted it straight back, so the\n * document survived intact and no stage objected. Reporting it here is the\n * point at which the library stops passing an invalid document through in\n * silence.\n *\n * The node is still parsed and preserved — fidelity is not the thing being\n * fixed. What changes is that the verdict now says so.\n */\n private static reportNullIri(atom: InstanceDataAtomType, path: JsonPath, parsingResult: JsonArtifactParsingResult): void {\n const nullIri = (atom instanceof InstanceDataLinkAtom || atom instanceof InstanceDataControlledAtom) && atom.id === null;\n if (nullIri) {\n parsingResult.addBlueprintComparisonError(\n new ComparisonError(\n 'JsonTemplateInstanceReader',\n ComparisonErrorType.MISSING_VALUE_IN_REAL_OBJECT,\n path.add(JsonSchema.atId),\n 'an IRI',\n null,\n ),\n );\n }\n }\n\n private static parseDataAtom(content: JsonNode): InstanceDataAtomType {\n if (Object.hasOwn(content, JsonSchema.atValue)) {\n const value = ReaderUtil.getString(content, JsonSchema.atValue);\n const type = ReaderUtil.getString(content, JsonSchema.atType);\n if (type === null) {\n return new InstanceDataStringAtom(value);\n } else {\n return new InstanceDataTypedAtom(value, type);\n }\n }\n if (Object.hasOwn(content, JsonSchema.atId)) {\n JsonTemplateInstanceReader.refuseEmptyIdentifier(content);\n const id = ReaderUtil.getString(content, JsonSchema.atId);\n const label = ReaderUtil.getString(content, JsonSchema.rdfsLabel);\n // `fromParsedNode` on both: a document that arrives with a null `@id` is\n // preserved as it came and reported by `reportNullIri`, rather than\n // refused here. See the note on that method.\n if (label === null) {\n return InstanceDataLinkAtom.fromParsedNode(id);\n } else {\n return InstanceDataControlledAtom.fromParsedNode(id, label);\n }\n }\n // Neither a literal nor an IRI, so there is no value here — but the node was\n // not empty either, or `isValueNode` would not have sent it this way. The\n // usual case is `{\"rdfs:label\": \"...\"}`: a label with nothing to label.\n // Carrying what was dropped lets a consumer report it instead of showing an\n // empty field for no stated reason.\n return new InstanceDataEmptyAtom(content);\n }\n\n private packAttributeValues(dataContainer: InstanceDataContainer) {\n const values = dataContainer.values;\n const newAttributeValues: InstanceDataAttributeValueField[] = [];\n Object.keys(values).forEach((key) => {\n const value: InstanceDataAtomType = values[key];\n if (Array.isArray(value)) {\n let foundNonAttributeValueName = false;\n value.forEach((arrayElement: InstanceDataAtomType, _index: number) => {\n if (!(arrayElement instanceof InstanceDataAttributeValueFieldName)) {\n foundNonAttributeValueName = true;\n }\n });\n /**\n * `[]` is an empty list, not an empty attribute-value field.\n *\n * What identifies an attribute-value field is that its slots hold\n * attribute *names*. An empty array holds none, so nothing in it points\n * that way — but \"every entry is a name\" is vacuously true of it, and it\n * was being folded into an attribute-value field on that alone. Any\n * multi child the user simply had not filled came back as one, and a\n * consumer holding the template then saw a cardinality mismatch on every\n * unfilled multi child in the document.\n *\n * Both shapes still serialize to `[]`, so no round trip changes; what\n * changes is that the empty list is read as the empty list it is.\n */\n if (value.length > 0 && !foundNonAttributeValueName) {\n const avField = new InstanceDataAttributeValueField(key);\n newAttributeValues.push(avField);\n value.forEach((arrayElement: InstanceDataAttributeValueFieldName, _index: number) => {\n const avName: string | null = arrayElement.name;\n if (avName !== null) {\n if (Object.hasOwn(values, avName)) {\n const avValue: InstanceDataStringAtom = values[avName] as InstanceDataStringAtom;\n avField.addValue(avName, avValue);\n }\n }\n });\n }\n }\n });\n\n newAttributeValues.forEach((avField: InstanceDataAttributeValueField, _index: number) => {\n const avName: string | null = avField.name;\n if (avName !== null) {\n values[avName] = avField;\n Object.keys(avField.values).forEach((key) => {\n if (Object.hasOwn(values, key)) {\n delete values[key];\n }\n });\n }\n });\n\n dataContainer.values = values;\n }\n}\n","import { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonArtifactReaderResult } from './JsonArtifactReaderResult';\nimport { TemplateInstance } from '../../../model/cedar/template-instance/TemplateInstance';\n\nexport class JsonTemplateInstanceReaderResult extends JsonArtifactReaderResult {\n constructor(instance: TemplateInstance, parsingResult: JsonArtifactParsingResult, instanceSourceObject: JsonNode) {\n super(instance, parsingResult, instanceSourceObject);\n }\n\n get instance(): TemplateInstance {\n return this._artifact as TemplateInstance;\n }\n\n get instanceSourceObject(): JsonNode {\n return this._artifactSourceObject;\n }\n}\n","import { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { TemplateProperty } from '../../../model/cedar/constants/TemplateProperty';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonTemplateContent } from '../../../model/cedar/util/serialization/JsonTemplateContent';\nimport { JsonObjectComparator } from '../../../model/cedar/util/compare/JsonObjectComparator';\nimport { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonTemplateReaderResult } from './JsonTemplateReaderResult';\nimport { ContainerArtifactChildrenInfo } from '../../../model/cedar/deployment/ContainerArtifactChildrenInfo';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { JsonReaderBehavior } from '../../../behavior/JsonReaderBehavior';\nimport { JsonTemplateFieldContentDynamic } from '../../../model/cedar/util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonTemplateElementReader } from './JsonTemplateElementReader';\nimport { JsonContainerArtifactReader } from './JsonContainerArtifactReader';\nimport { Template } from '../../../model/cedar/template/Template';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\n\nexport class JsonTemplateReader extends JsonContainerArtifactReader {\n private readonly elementReader: JsonTemplateElementReader;\n protected knownArtifactType: CedarArtifactType = CedarArtifactType.TEMPLATE;\n\n private constructor(behavior: JsonReaderBehavior) {\n super(behavior);\n this.elementReader = JsonTemplateElementReader.getForBehavior(behavior);\n }\n\n public static getStrict(): JsonTemplateReader {\n return new JsonTemplateReader(JsonReaderBehavior.STRICT);\n }\n\n public static getFebruary2024(): JsonTemplateReader {\n return new JsonTemplateReader(JsonReaderBehavior.FEBRUARY_2024);\n }\n\n public static getForBehavior(behavior: JsonReaderBehavior): JsonTemplateReader {\n return new JsonTemplateReader(behavior);\n }\n\n protected override getElementReader(): JsonTemplateElementReader {\n return this.elementReader;\n }\n\n protected override includeInIRIMapping(childInfo: ChildDeploymentInfo): boolean {\n return childInfo.atType !== CedarArtifactType.STATIC_TEMPLATE_FIELD;\n }\n\n public readFromString(templateSourceString: string): JsonTemplateReaderResult {\n let templateObject;\n try {\n templateObject = JSON.parse(templateSourceString);\n } catch {\n templateObject = {};\n }\n return this.readFromObject(templateObject);\n }\n\n public readFromObject(templateSourceObject: JsonNode, topPath: JsonPath = new JsonPath()): JsonTemplateReaderResult {\n const parsingResult: JsonArtifactParsingResult = new JsonArtifactParsingResult();\n const template = Template.buildEmptyWithNullValues();\n\n this.readNonReportableAttributes(template, templateSourceObject);\n this.readReportableAttributes(template, templateSourceObject, parsingResult, topPath);\n this.readAnnotations(template, templateSourceObject);\n this.readInstanceTypeSpecification(template, templateSourceObject, parsingResult);\n this.readAndValidateChildrenInfo(template, templateSourceObject, parsingResult, topPath);\n\n return new JsonTemplateReaderResult(template, parsingResult, templateSourceObject);\n }\n\n protected readNonReportableAttributes(template: Template, templateSourceObject: JsonNode) {\n super.readNonReportableAttributes(template, templateSourceObject);\n // Read template-only properties\n const templateUI: JsonNode = ReaderUtil.getNode(templateSourceObject, CedarModel.ui);\n if (templateUI !== null) {\n template.header = ReaderUtil.getString(templateUI, CedarModel.header);\n template.footer = ReaderUtil.getString(templateUI, CedarModel.footer);\n }\n }\n\n private readAndValidateChildrenInfo(\n template: Template,\n templateSourceObject: JsonNode,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n const templateRequired: Array<string> = ReaderUtil.getStringList(templateSourceObject, JsonSchema.required);\n const templateProperties: JsonNode = ReaderUtil.getNode(templateSourceObject, JsonSchema.properties);\n\n const templateRequiredMap: Map<string, boolean> = this.generateAndValidateRequiredMap(\n templateRequired,\n JsonTemplateContent.REQUIRED_PARTIAL,\n parsingResult,\n path,\n );\n\n const candidateChildrenInfo: ContainerArtifactChildrenInfo = this.getCandidateChildrenInfo(\n templateProperties,\n JsonTemplateContent.PROPERTIES_PARTIAL_KEY_MAP,\n parsingResult,\n path,\n );\n\n this.checkRequiredBothWays(\n candidateChildrenInfo,\n templateRequiredMap,\n templateRequired,\n JsonTemplateContent.REQUIRED_PARTIAL_KEY_MAP,\n parsingResult,\n path,\n );\n\n const templateUI: JsonNode = ReaderUtil.getNode(templateSourceObject, CedarModel.ui);\n this.extractUIPreferredLabelsAndDescriptions(templateUI, candidateChildrenInfo, parsingResult, path);\n\n this.extractIRIMappings(templateProperties, candidateChildrenInfo, parsingResult, path);\n\n const templateUIOrder = ReaderUtil.getStringList(templateUI, CedarModel.order);\n const finalChildrenInfo = this.finalizeChildInfo(templateUIOrder, candidateChildrenInfo, parsingResult, path);\n\n this.validatePropertiesVsOrder(candidateChildrenInfo, templateUIOrder, parsingResult, path);\n\n this.validateProperties(finalChildrenInfo, templateProperties, template, parsingResult, path);\n\n this.parseChildren(finalChildrenInfo, templateProperties, template, parsingResult, path);\n }\n\n private validateProperties(\n childrenInfo: ContainerArtifactChildrenInfo,\n templateProperties: JsonNode,\n _template: Template,\n parsingResult: JsonArtifactParsingResult,\n path: JsonPath,\n ) {\n // Validate properties\n // 'properties' should have extra entry for Fields/Elements as definition\n // 'properties/context/properties' should have extra entry for Fields/Elements as IRI mappings\n // all other content should match verbatim\n // If there are attribute-value children, /properties/@context/additionalProperties/ must be\n // {\n // \"type\": \"string\",\n // \"format\": \"uri\"\n // },\n let blueprint: JsonNode = JsonTemplateContent.PROPERTIES_PARTIAL;\n if (childrenInfo.hasAttributeValue()) {\n blueprint = ReaderUtil.deepClone(JsonTemplateContent.PROPERTIES_PARTIAL) as JsonNode;\n const atContext: JsonNode = blueprint[JsonSchema.atContext] as JsonNode;\n atContext[TemplateProperty.additionalProperties] =\n JsonTemplateFieldContentDynamic.ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_INSIDE;\n }\n JsonObjectComparator.compareToLeft(parsingResult, blueprint, templateProperties, path.add(JsonSchema.properties), this.behavior);\n }\n}\n","import { Template } from '../../../model/cedar/template/Template';\nimport { JsonArtifactParsingResult } from '../../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonArtifactReaderResult } from './JsonArtifactReaderResult';\n\nexport class JsonTemplateReaderResult extends JsonArtifactReaderResult {\n constructor(template: Template, parsingResult: JsonArtifactParsingResult, elementSourceObject: JsonNode) {\n super(template, parsingResult, elementSourceObject);\n }\n\n get template(): Template {\n return this._artifact as Template;\n }\n\n get templateSourceObject(): JsonNode {\n return this._artifactSourceObject;\n }\n}\n","import { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { YamlReaderBehavior } from '../../../behavior/YamlReaderBehavior';\nimport { YamlAbstractArtifactReader } from './YamlAbstractArtifactReader';\nimport { YamlTemplateReader } from './YamlTemplateReader';\nimport { YamlTemplateElementReader } from './YamlTemplateElementReader';\nimport { YamlTemplateFieldReader } from './YamlTemplateFieldReader';\nimport { YamlTemplateInstanceReader } from './YamlTemplateInstanceReader';\n\nexport class CedarYamlReaders {\n private readonly behavior: YamlReaderBehavior;\n private readonly isCompact: boolean;\n\n private constructor(behavior: YamlReaderBehavior, isCompact: boolean = false) {\n this.behavior = behavior;\n this.isCompact = isCompact;\n }\n\n public static getStrict(): CedarYamlReaders {\n return new CedarYamlReaders(YamlReaderBehavior.STRICT);\n }\n\n /**\n * Readers for the compact form, which omits the model version and the rest of what the system\n * records about an artifact. The readers above refuse that form: reading it has to be asked for,\n * here as in the Java library.\n */\n public static getStrictForCompact(): CedarYamlReaders {\n return new CedarYamlReaders(YamlReaderBehavior.STRICT, true);\n }\n\n /**\n * The named accessors the JSON side has had all along.\n *\n * Without them a consumer reading YAML has to import the concrete reader by\n * deep path, which makes the two serialisations look less interchangeable\n * than they are — the whole point being that either one yields the same\n * `Template`.\n */\n public getTemplateReader(): YamlTemplateReader {\n return YamlTemplateReader.getForBehavior(this.behavior, this.isCompact);\n }\n\n public getTemplateElementReader(): YamlTemplateElementReader {\n return YamlTemplateElementReader.getForBehavior(this.behavior, this.isCompact);\n }\n\n public getTemplateFieldReader(): YamlTemplateFieldReader {\n return YamlTemplateFieldReader.getForBehavior(this.behavior, this.isCompact);\n }\n\n public getTemplateInstanceReader(): YamlTemplateInstanceReader {\n return YamlTemplateInstanceReader.getForBehavior(this.behavior);\n }\n\n public getReaderForArtifactType(cedarArtifactType: CedarArtifactType): YamlAbstractArtifactReader | YamlTemplateInstanceReader {\n switch (cedarArtifactType) {\n case CedarArtifactType.TEMPLATE:\n return YamlTemplateReader.getForBehavior(this.behavior, this.isCompact);\n case CedarArtifactType.TEMPLATE_ELEMENT:\n return YamlTemplateElementReader.getForBehavior(this.behavior, this.isCompact);\n case CedarArtifactType.TEMPLATE_FIELD:\n return YamlTemplateFieldReader.getForBehavior(this.behavior, this.isCompact);\n case CedarArtifactType.STATIC_TEMPLATE_FIELD:\n return YamlTemplateFieldReader.getForBehavior(this.behavior, this.isCompact);\n case CedarArtifactType.TEMPLATE_INSTANCE:\n return YamlTemplateInstanceReader.getForBehavior(this.behavior);\n default:\n throw new Error(`No YAML reader available for CedarArtifactType: ${cedarArtifactType}`);\n }\n }\n}\n","import { AbstractArtifact } from '../../../model/cedar/AbstractArtifact';\nimport { AbstractSchemaArtifact } from '../../../model/cedar/AbstractSchemaArtifact';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { CedarUser } from '../../../model/cedar/types/cedar-types/CedarUser';\nimport { IsoDate } from '../../../model/cedar/types/wrapped-types/IsoDate';\nimport { SchemaVersion } from '../../../model/cedar/types/wrapped-types/SchemaVersion';\nimport { PavVersion } from '../../../model/cedar/types/wrapped-types/PavVersion';\nimport { BiboStatus } from '../../../model/cedar/types/wrapped-types/BiboStatus';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { Annotations } from '../../../model/cedar/annotation/Annotations';\nimport { AnnotationAtId } from '../../../model/cedar/annotation/AnnotationAtId';\nimport { AnnotationAtValue } from '../../../model/cedar/annotation/AnnotationAtValue';\nimport { YamlReaderBehavior } from '../../../behavior/YamlReaderBehavior';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\n\nexport abstract class YamlAbstractArtifactReader {\n protected behavior: YamlReaderBehavior;\n protected knownArtifactType: CedarArtifactType = CedarArtifactType.NULL;\n /**\n * Whether compact input is expected. The compact form omits the model version, so a reader that\n * has not been asked for it treats an absent model version as what it is — a document it was not\n * given the form of. Reading compact input has to be asked for, as it does in the Java library,\n * whose reader takes the same flag and whose converter selects it with -cy on the way in.\n */\n protected readonly isCompact: boolean;\n\n protected constructor(behavior: YamlReaderBehavior, isCompact: boolean = false) {\n this.behavior = behavior;\n this.isCompact = isCompact;\n }\n\n /** The word CEDAR puts in a derived title/description: \"template\", \"element\" or \"field\". */\n private artifactTypeWord(): string {\n if (this.knownArtifactType === CedarArtifactType.TEMPLATE) {\n return 'template';\n }\n if (this.knownArtifactType === CedarArtifactType.TEMPLATE_ELEMENT) {\n return 'element';\n }\n return 'field';\n }\n\n protected readNonReportableAttributes(container: AbstractSchemaArtifact, sourceObject: JsonNode): void {\n // Read in non-reportable properties\n YamlAbstractArtifactReader.refuseEmptyIdentifier(sourceObject);\n container.at_id = CedarArtifactId.forValue(ReaderUtil.getString(sourceObject, YamlKeys.id));\n container.schema_name = ReaderUtil.getString(sourceObject, YamlKeys.name);\n container.schema_description = ReaderUtil.getString(sourceObject, YamlKeys.description);\n // The YAML carries only a name; the JSON serialization's `title` and\n // `description` are derived from it as \"<name> <type> schema\" — the\n // JSON-schema title the meta-schema requires to be a non-empty string.\n // Reading YAML without setting them left them null, so a YAML-sourced\n // artifact written back to JSON was invalid. Composed here to match the Java\n // library's YAML reader, which builds the identical strings.\n if (container.schema_name !== null) {\n const kind = this.artifactTypeWord();\n container.title = `${container.schema_name} ${kind} schema`;\n container.description = `${container.schema_name} ${kind} schema generated by the CEDAR Artifact Library`;\n }\n container.pav_createdBy = CedarUser.forValue(ReaderUtil.getString(sourceObject, YamlKeys.createdBy));\n container.pav_createdOn = IsoDate.forValue(ReaderUtil.getString(sourceObject, YamlKeys.createdOn));\n container.oslc_modifiedBy = CedarUser.forValue(ReaderUtil.getString(sourceObject, YamlKeys.modifiedBy));\n container.pav_lastUpdatedOn = IsoDate.forValue(ReaderUtil.getString(sourceObject, YamlKeys.modifiedOn));\n const modelVersion: string | null = ReaderUtil.getString(sourceObject, YamlKeys.modelVersion);\n if (modelVersion === null && !this.isCompact) {\n throw new Error(\n `No ${YamlKeys.modelVersion} present. A document without one is the compact form, which a reader has to be asked for.`,\n );\n }\n container.schema_schemaVersion = SchemaVersion.forValue(modelVersion);\n container.pav_version = PavVersion.forValue(ReaderUtil.getString(sourceObject, YamlKeys.version));\n container.bibo_status = BiboStatus.forYamlValue(ReaderUtil.getString(sourceObject, YamlKeys.status));\n // Accept the legacy empty spelling as absence; the writer omits the optional key.\n container.pav_derivedFrom = CedarArtifactId.forValue(ReaderUtil.getString(sourceObject, YamlKeys.derivedFrom));\n container.pav_previousVersion = CedarArtifactId.forValue(ReaderUtil.getString(sourceObject, YamlKeys.previousVersion));\n container.schema_identifier = ReaderUtil.getString(sourceObject, YamlKeys.identifier);\n container.language = Language.forValue(ReaderUtil.getString(sourceObject, YamlKeys.language));\n }\n\n /**\n * A compact document may not name the artifact it describes.\n *\n * The compact form is for an artifact being authored, not one already stored: it leaves out what a\n * repository assigns, and an identifier is the first of those. Ignoring an `id` written here would\n * let an author believe the document still refers to a stored artifact, while a conversion gave that\n * artifact's children freshly derived property IRIs. Older compact documents may carry child\n * identifiers; the reader accepts those for compatibility, while canonical compact output omits\n * schema-artifact identity at every depth.\n */\n /**\n * An empty artifact or occurrence `id` is not an identifier, and it is not an absence of one either.\n *\n * Documents carry it where one has not been assigned — half the element occurrences in the shared\n * corpus once did — and reading it as though the key were absent hides that from whoever wrote it. A\n * key that is not to be answered yet is written `null` or left out. Optional `derivedFrom` is a\n * compatibility exception: its legacy empty spelling loads as absence and is omitted on write.\n */\n protected static refuseEmptyIdentifier(sourceObject: JsonNode, key: string = YamlKeys.id): void {\n const raw = ReaderUtil.getString(sourceObject, key);\n if (raw !== null && raw.trim() === '') {\n throw new Error(`An empty string is not a URI at \"${key}\"; write null or leave the key out where there is no value.`);\n }\n }\n\n protected refuseIdentifierAtDocumentRoot(sourceObject: JsonNode): void {\n // Only of a document in the compact form. The compact reader also accepts a full one, where the\n // model version says so and the identifier belongs; an instance carries no model version in either\n // form, so asking for this reader is itself the statement that the document is compact.\n const isCompactDocument = ReaderUtil.getString(sourceObject, YamlKeys.modelVersion) === null;\n if (this.isCompact && isCompactDocument && ReaderUtil.getString(sourceObject, YamlKeys.id) !== null) {\n throw new Error(\n `A compact document describes an artifact being authored, so it cannot carry an ${YamlKeys.id}. Use the full form to represent a stored artifact.`,\n );\n }\n }\n\n protected readAnnotations(\n artifact: AbstractArtifact,\n artifactSourceObject: JsonNode,\n _parsingResult: YamlArtifactParsingResult,\n _topPath: JsonPath,\n ) {\n const annotations = new Annotations();\n const annotationsNode: JsonNode = ReaderUtil.getNode(artifactSourceObject, YamlKeys.annotations);\n Object.keys(annotationsNode).forEach((name: string) => {\n const annotationNode = ReaderUtil.getNode(annotationsNode, name);\n const id: string | null = ReaderUtil.getString(annotationNode, YamlKeys.id);\n const value: string | null = ReaderUtil.getString(annotationNode, YamlKeys.value);\n if (name !== null) {\n if (id !== null) {\n annotations.add(new AnnotationAtId(name, id));\n } else if (value !== null) {\n annotations.add(new AnnotationAtValue(name, value));\n }\n }\n });\n if (annotations.getSize() > 0) {\n artifact.annotations = annotations;\n }\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { AbstractArtifact } from '../../../model/cedar/AbstractArtifact';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\n\nexport abstract class YamlArtifactReaderResult {\n protected readonly _artifact: AbstractArtifact;\n private readonly _parsingResult: YamlArtifactParsingResult;\n protected readonly _artifactSourceObject: JsonNode;\n\n protected constructor(artifact: AbstractArtifact, parsingResult: YamlArtifactParsingResult, artifactSourceObject: JsonNode) {\n this._artifact = artifact;\n this._parsingResult = parsingResult;\n this._artifactSourceObject = artifactSourceObject;\n }\n\n get artifact(): AbstractArtifact {\n return this._artifact;\n }\n\n get parsingResult(): YamlArtifactParsingResult {\n return this._parsingResult;\n }\n\n get artifactSourceObject(): JsonNode {\n return this._artifactSourceObject;\n }\n}\n","import { YamlReaderBehavior } from '../../../behavior/YamlReaderBehavior';\nimport { YamlAbstractArtifactReader } from './YamlAbstractArtifactReader';\nimport { YamlTemplateFieldReader } from './YamlTemplateFieldReader';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { YamlTemplateElementReader } from './YamlTemplateElementReader';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { isSizedStaticField } from '../../../model/cedar/field/static/SizedStaticField';\nimport { YamlArtifactType } from '../../../model/cedar/types/wrapped-types/YamlArtifactType';\nimport { CedarFieldType } from '../../../model/cedar/types/cedar-types/CedarFieldType';\nimport { AbstractContainerArtifact } from '../../../model/cedar/AbstractContainerArtifact';\nimport { ChildDeploymentInfoBuilder } from '../../../model/cedar/deployment/ChildDeploymentInfoBuilder';\nimport { AbstractDynamicChildDeploymentInfoBuilder } from '../../../model/cedar/deployment/AbstractDynamicChildDeploymentInfoBuilder';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\n\nexport abstract class YamlContainerArtifactReader extends YamlAbstractArtifactReader {\n protected fieldReader: YamlTemplateFieldReader;\n\n protected constructor(behavior: YamlReaderBehavior, isCompact: boolean = false) {\n super(behavior, isCompact);\n // A child carries the model version in the full form and omits it in the compact one, so the\n // reader that reads the children needs the same answer as the reader of the artifact around them.\n this.fieldReader = YamlTemplateFieldReader.getForBehavior(behavior, isCompact);\n }\n\n protected abstract getElementReader(): YamlTemplateElementReader;\n\n protected readAndValidateChildrenInfo(\n container: AbstractContainerArtifact,\n elementSourceObject: JsonNode,\n _parsingResult: YamlArtifactParsingResult,\n path: JsonPath,\n ) {\n const childrenNodeList: JsonNode[] = ReaderUtil.getNodeList(elementSourceObject, YamlKeys.children);\n childrenNodeList.forEach((childNode) => {\n const type = ReaderUtil.getString(childNode, YamlKeys.type);\n const name = ReaderUtil.getString(childNode, YamlKeys.key);\n const yamlArtifactType = YamlArtifactType.forValue(type);\n if (name !== null) {\n const childDeploymentInfo = new ChildDeploymentInfo(name);\n childDeploymentInfo.atType = CedarArtifactType.forYamlArtifactType(yamlArtifactType);\n const configuration: JsonNode = ReaderUtil.getNode(childNode, YamlKeys.configuration);\n childDeploymentInfo.label = ReaderUtil.getString(configuration, YamlKeys.overrideLabel);\n childDeploymentInfo.description = ReaderUtil.getString(configuration, YamlKeys.overrideDescription);\n childDeploymentInfo.multiInstance = ReaderUtil.getBoolean(configuration, YamlKeys.multiple);\n if (childDeploymentInfo.multiInstance) {\n childDeploymentInfo.minItems = ReaderUtil.getNumber(configuration, YamlKeys.minItems);\n childDeploymentInfo.maxItems = ReaderUtil.getNumber(configuration, YamlKeys.maxItems);\n }\n childDeploymentInfo.requiredValue = ReaderUtil.getBoolean(configuration, YamlKeys.required);\n childDeploymentInfo.recommendedValue = ReaderUtil.getBoolean(configuration, YamlKeys.recommended);\n childDeploymentInfo.hidden = ReaderUtil.getBoolean(configuration, YamlKeys.hidden);\n childDeploymentInfo.continuePreviousLine = ReaderUtil.getBoolean(configuration, YamlKeys.continuePreviousLine);\n childDeploymentInfo.valueRecommendationEnabled = ReaderUtil.getBoolean(configuration, YamlKeys.valueRecommendation);\n\n childDeploymentInfo.iri = ReaderUtil.getString(configuration, YamlKeys.propertyIri);\n\n if (yamlArtifactType.isField()) {\n const cedarFieldType: CedarFieldType = CedarFieldType.forYamlArtifactType(yamlArtifactType);\n childDeploymentInfo.uiInputType = cedarFieldType.getUiInputType();\n\n const fieldReadingResult = this.fieldReader.readFromObject(childNode, childDeploymentInfo, path.add(YamlKeys.children, name));\n\n // A child's display size is written by its parent, into `configuration`, so it is read back\n // from there. The field readers take it from the field's own keys, which is where a field\n // written standalone carries it.\n if (isSizedStaticField(fieldReadingResult.field)) {\n fieldReadingResult.field.width = ReaderUtil.getNumber(configuration, YamlKeys.width);\n fieldReadingResult.field.height = ReaderUtil.getNumber(configuration, YamlKeys.height);\n }\n\n const finalChildInfoBuilder = fieldReadingResult.field\n .createDeploymentBuilder(childDeploymentInfo.name)\n .withLabel(childDeploymentInfo.label)\n .withDescription(childDeploymentInfo.description);\n\n if (childDeploymentInfo.atType === CedarArtifactType.TEMPLATE_FIELD) {\n const finalChildInfoBuilder2: AbstractDynamicChildDeploymentInfoBuilder =\n finalChildInfoBuilder as AbstractDynamicChildDeploymentInfoBuilder;\n finalChildInfoBuilder2\n .withIri(childDeploymentInfo.iri)\n .withHidden(childDeploymentInfo.hidden)\n .withContinuePreviousLine(childDeploymentInfo.continuePreviousLine)\n .withRecommendedValue(childDeploymentInfo.recommendedValue)\n .withRequiredValue(childDeploymentInfo.requiredValue)\n .withValueRecommendationEnabled(childDeploymentInfo.valueRecommendationEnabled);\n if (finalChildInfoBuilder2 instanceof ChildDeploymentInfoBuilder) {\n finalChildInfoBuilder2\n .withMultiInstance(childDeploymentInfo.multiInstance)\n .withMinItems(childDeploymentInfo.minItems)\n .withMaxItems(childDeploymentInfo.maxItems);\n }\n }\n const finalChildInfo = finalChildInfoBuilder.build();\n container.addChild(fieldReadingResult.field, finalChildInfo);\n } else if (yamlArtifactType.isElement()) {\n const elementReadingResult = this.getElementReader().readFromObject(\n childNode,\n childDeploymentInfo,\n path.add(YamlKeys.children, name),\n );\n container.addChild(elementReadingResult.element, childDeploymentInfo);\n } else {\n // A child whose type this library does not know used to be skipped, leaving a container\n // that read successfully with a child missing. The Java library refuses it.\n throw new Error(`Unknown child type \"${type}\" at ${path.add(YamlKeys.children, name).toString()}`);\n }\n } else {\n // A child with no key cannot be deployed into a container, and dropping it silently loses a\n // field the document declared.\n throw new Error(`A child without a ${YamlKeys.key} at ${path.add(YamlKeys.children).toString()}`);\n }\n });\n }\n}\n","import { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { YamlReaderBehavior } from '../../../behavior/YamlReaderBehavior';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport YAML from 'yaml';\nimport { YamlContainerArtifactReader } from './YamlContainerArtifactReader';\nimport { YamlTemplateElementReaderResult } from './YamlTemplateElementReaderResult';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\n\nexport class YamlTemplateElementReader extends YamlContainerArtifactReader {\n protected knownArtifactType: CedarArtifactType = CedarArtifactType.TEMPLATE_ELEMENT;\n\n private constructor(behavior: YamlReaderBehavior, isCompact: boolean = false) {\n super(behavior, isCompact);\n }\n\n public static getStrict(): YamlTemplateElementReader {\n return new YamlTemplateElementReader(YamlReaderBehavior.STRICT);\n }\n\n /**\n * A reader for the compact form, which omits the model version and the rest of what the system\n * records about an artifact. Asking for it is the only way to read that form.\n */\n public static getStrictForCompact(): YamlTemplateElementReader {\n return new YamlTemplateElementReader(YamlReaderBehavior.STRICT, true);\n }\n\n public static getForBehavior(behavior: YamlReaderBehavior, isCompact: boolean = false): YamlTemplateElementReader {\n return new YamlTemplateElementReader(behavior, isCompact);\n }\n\n protected override getElementReader(): YamlTemplateElementReader {\n return this;\n }\n\n public readFromString(elementSourceString: string): YamlTemplateElementReaderResult {\n let elementObject;\n try {\n elementObject = YAML.parse(elementSourceString);\n } catch {\n elementObject = {};\n }\n this.refuseIdentifierAtDocumentRoot(elementObject);\n return this.readFromObject(elementObject, ChildDeploymentInfo.empty(), new JsonPath());\n }\n\n public readFromObject(\n elementSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n topPath: JsonPath,\n ): YamlTemplateElementReaderResult {\n const parsingResult: YamlArtifactParsingResult = new YamlArtifactParsingResult();\n const element = TemplateElement.buildEmptyWithNullValues();\n\n this.readNonReportableAttributes(element, elementSourceObject);\n this.readAnnotations(element, elementSourceObject, parsingResult, topPath);\n super.readAndValidateChildrenInfo(element, elementSourceObject, parsingResult, topPath);\n\n return new YamlTemplateElementReaderResult(element, parsingResult, elementSourceObject);\n }\n\n protected readNonReportableAttributes(element: TemplateElement, elementSourceObject: JsonNode) {\n super.readNonReportableAttributes(element, elementSourceObject);\n element.instanceTypeSpecification = ReaderUtil.getString(elementSourceObject, YamlKeys.instanceType);\n element.skos_prefLabel = ReaderUtil.getString(elementSourceObject, YamlKeys.prefLabel);\n element.skos_altLabel = ReaderUtil.getFilteredStringList(elementSourceObject, YamlKeys.altLabels);\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\n\nexport class YamlTemplateElementReaderResult {\n private readonly _element: TemplateElement;\n private readonly _parsingResult: YamlArtifactParsingResult;\n private readonly _elementSourceObject: JsonNode;\n\n constructor(element: TemplateElement, parsingResult: YamlArtifactParsingResult, elementSourceObject: JsonNode) {\n this._element = element;\n this._parsingResult = parsingResult;\n this._elementSourceObject = elementSourceObject;\n }\n\n get element(): TemplateElement {\n return this._element;\n }\n\n get parsingResult(): YamlArtifactParsingResult {\n return this._parsingResult;\n }\n\n get elementSourceObject(): JsonNode {\n return this._elementSourceObject;\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { YamlFieldReaderEmail } from '../../../model/cedar/field/dynamic/email/YamlFieldReaderEmail';\nimport { YamlTemplateFieldReaderResult } from './YamlTemplateFieldReaderResult';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport { YamlAbstractArtifactReader } from './YamlAbstractArtifactReader';\nimport { YamlReaderBehavior } from '../../../behavior/YamlReaderBehavior';\nimport { YamlTemplateFieldTypeSpecificReader } from './YamlTemplateFieldTypeSpecificReader';\nimport YAML from 'yaml';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { YamlArtifactType } from '../../../model/cedar/types/wrapped-types/YamlArtifactType';\nimport { YamlFieldReaderTextField } from '../../../model/cedar/field/dynamic/textfield/YamlFieldReaderTextField';\nimport { YamlFieldReaderTextArea } from '../../../model/cedar/field/dynamic/textarea/YamlFieldReaderTextArea';\nimport { YamlFieldReaderTemporal } from '../../../model/cedar/field/dynamic/temporal/YamlFieldReaderTemporal';\nimport { YamlFieldReaderNumeric } from '../../../model/cedar/field/dynamic/numeric/YamlFieldReaderNumeric';\nimport { YamlFieldReaderAttributeValue } from '../../../model/cedar/field/dynamic/attribute-value/YamlFieldReaderAttributeValue';\nimport { YamlFieldReaderPageBreak } from '../../../model/cedar/field/static/page-break/YamlFieldReaderPageBreak';\nimport { YamlFieldReaderLink } from '../../../model/cedar/field/dynamic/link/YamlFieldReaderLink';\nimport { YamlFieldReaderSectionBreak } from '../../../model/cedar/field/static/section-break/YamlFieldReaderSectionBreak';\nimport { YamlFieldReaderImage } from '../../../model/cedar/field/static/image/YamlFieldReaderImage';\nimport { YamlFieldReaderRichText } from '../../../model/cedar/field/static/rich-text/YamlFieldReaderRichText';\nimport { YamlFieldReaderYoutube } from '../../../model/cedar/field/static/youtube/YamlFieldReaderYoutube';\nimport { YamlFieldReaderPhoneNumber } from '../../../model/cedar/field/dynamic/phone-number/YamlFieldReaderPhoneNumber';\nimport { YamlFieldReaderCheckbox } from '../../../model/cedar/field/dynamic/checkbox/YamlFieldReaderCheckbox';\nimport { YamlFieldReaderSingleSelectList } from '../../../model/cedar/field/dynamic/list-single-choice/YamlFieldReaderSingleSelectList';\nimport { YamlFieldReaderMultiSelectList } from '../../../model/cedar/field/dynamic/list-multiple-choice/YamlFieldReaderMultiSelectList';\nimport { YamlFieldReaderRadio } from '../../../model/cedar/field/dynamic/radio/YamlFieldReaderRadio';\nimport { YamlFieldReaderControlledTerm } from '../../../model/cedar/field/dynamic/controlled-term/YamlFieldReaderControlledTerm';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\nimport { YamlFieldReaderExtRor } from '../../../model/cedar/field/dynamic/ext-ror/YamlFieldReaderExtRor';\nimport { YamlFieldReaderExtOrcid } from '../../../model/cedar/field/dynamic/ext-orcid/YamlFieldReaderExtOrcid';\nimport { YamlFieldReaderExtPfas } from '../../../model/cedar/field/dynamic/ext-pfas/YamlFieldReaderExtPfas';\nimport { YamlFieldReaderExtPubmed } from '../../../model/cedar/field/dynamic/ext-pubmed/YamlFieldReaderExtPubmed';\nimport { YamlFieldReaderExtRrid } from '../../../model/cedar/field/dynamic/ext-rrid/YamlFieldReaderExtRrid';\nimport { YamlFieldReaderExtNihGrantId } from '../../../model/cedar/field/dynamic/ext-nih-grant-id/YamlFieldReaderExtNihGrantId';\nimport { YamlFieldReaderExtDoi } from '../../../model/cedar/field/dynamic/ext-doi/YamlFieldReaderExtDoi';\n\nexport class YamlTemplateFieldReader extends YamlAbstractArtifactReader {\n protected knownArtifactType: CedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n\n private constructor(behavior: YamlReaderBehavior, isCompact: boolean = false) {\n super(behavior, isCompact);\n }\n\n public static getStrict(): YamlTemplateFieldReader {\n return new YamlTemplateFieldReader(YamlReaderBehavior.STRICT);\n }\n\n /**\n * A reader for the compact form, which omits the model version and the rest of what the system\n * records about an artifact. Asking for it is the only way to read that form.\n */\n public static getStrictForCompact(): YamlTemplateFieldReader {\n return new YamlTemplateFieldReader(YamlReaderBehavior.STRICT, true);\n }\n\n public static getForBehavior(behavior: YamlReaderBehavior, isCompact: boolean = false): YamlTemplateFieldReader {\n return new YamlTemplateFieldReader(behavior, isCompact);\n }\n\n static readerMap = new Map<YamlArtifactType, YamlTemplateFieldTypeSpecificReader>([\n [YamlArtifactType.TEXTFIELD, new YamlFieldReaderTextField()],\n [YamlArtifactType.TEXTAREA, new YamlFieldReaderTextArea()],\n [YamlArtifactType.CONTROLLED_TERM, new YamlFieldReaderControlledTerm()],\n [YamlArtifactType.LINK, new YamlFieldReaderLink()],\n [YamlArtifactType.EXT_ROR, new YamlFieldReaderExtRor()],\n [YamlArtifactType.EXT_ORCID, new YamlFieldReaderExtOrcid()],\n [YamlArtifactType.EXT_PFAS, new YamlFieldReaderExtPfas()],\n [YamlArtifactType.EXT_PUBMED, new YamlFieldReaderExtPubmed()],\n [YamlArtifactType.EXT_RRID, new YamlFieldReaderExtRrid()],\n [YamlArtifactType.EXT_NIH_GRANT_ID, new YamlFieldReaderExtNihGrantId()],\n [YamlArtifactType.EXT_DOI, new YamlFieldReaderExtDoi()],\n [YamlArtifactType.TEMPORAL, new YamlFieldReaderTemporal()],\n [YamlArtifactType.EMAIL, new YamlFieldReaderEmail()],\n [YamlArtifactType.NUMERIC, new YamlFieldReaderNumeric()],\n [YamlArtifactType.PHONE_NUMBER, new YamlFieldReaderPhoneNumber()],\n [YamlArtifactType.RADIO, new YamlFieldReaderRadio()],\n [YamlArtifactType.CHECKBOX, new YamlFieldReaderCheckbox()],\n [YamlArtifactType.SINGLE_SELECT_LIST, new YamlFieldReaderSingleSelectList()],\n [YamlArtifactType.MULTI_SELECT_LIST, new YamlFieldReaderMultiSelectList()],\n [YamlArtifactType.ATTRIBUTE_VALUE, new YamlFieldReaderAttributeValue()],\n [YamlArtifactType.PAGE_BREAK, new YamlFieldReaderPageBreak()],\n [YamlArtifactType.SECTION_BREAK, new YamlFieldReaderSectionBreak()],\n [YamlArtifactType.IMAGE, new YamlFieldReaderImage()],\n [YamlArtifactType.RICH_TEXT, new YamlFieldReaderRichText()],\n [YamlArtifactType.YOUTUBE, new YamlFieldReaderYoutube()],\n ]);\n\n public readFromString(fieldSourceString: string): YamlTemplateFieldReaderResult {\n let fieldObject;\n try {\n fieldObject = YAML.parse(fieldSourceString);\n } catch {\n fieldObject = {};\n }\n this.refuseIdentifierAtDocumentRoot(fieldObject);\n return this.readFromObject(fieldObject, ChildDeploymentInfo.empty(), new JsonPath());\n }\n\n public readFromObject(fieldSourceObject: JsonNode, childInfo: ChildDeploymentInfo, path: JsonPath): YamlTemplateFieldReaderResult {\n const parsingResult: YamlArtifactParsingResult = new YamlArtifactParsingResult();\n const field: TemplateField = YamlTemplateFieldReader.readFieldSpecificAttributes(fieldSourceObject, childInfo, parsingResult, path);\n this.readNonReportableAttributes(field, fieldSourceObject);\n this.readAnnotations(field, fieldSourceObject, parsingResult, path);\n return new YamlTemplateFieldReaderResult(field, parsingResult, fieldSourceObject);\n }\n\n protected readNonReportableAttributes(field: TemplateField, fieldSourceObject: JsonNode) {\n super.readNonReportableAttributes(field, fieldSourceObject);\n // Read field-specific nodes\n field.skos_prefLabel = ReaderUtil.getString(fieldSourceObject, YamlKeys.prefLabel);\n field.skos_altLabel = ReaderUtil.getFilteredStringList(fieldSourceObject, YamlKeys.altLabels);\n }\n\n private static readFieldSpecificAttributes(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n parsingResult: YamlArtifactParsingResult,\n path: JsonPath,\n ): TemplateField {\n const yamlArtifactType: YamlArtifactType = YamlArtifactType.forValue(ReaderUtil.getString(fieldSourceObject, YamlKeys.type));\n if (yamlArtifactType.isField()) {\n const reader: YamlTemplateFieldTypeSpecificReader | undefined = this.readerMap.get(yamlArtifactType);\n if (!reader) {\n throw new Error(`No reader defined for dynamic input type \"${yamlArtifactType.getValue()}\"`);\n }\n const templateField: TemplateField = reader.read(fieldSourceObject, childInfo, parsingResult, path);\n let cedarArtifactType: CedarArtifactType = CedarArtifactType.NULL;\n if (yamlArtifactType.isStaticField()) {\n cedarArtifactType = CedarArtifactType.STATIC_TEMPLATE_FIELD;\n } else if (yamlArtifactType.isDynamicField()) {\n cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n templateField.cedarArtifactType = cedarArtifactType;\n return templateField;\n }\n\n // A type this library does not know is not a field it can carry. Returning a typeless field\n // instead reported success and left the artifact holding something no writer can write, so the\n // failure surfaced later and somewhere else. The Java library refuses the same input here.\n throw new Error(`Unknown field type \"${ReaderUtil.getString(fieldSourceObject, YamlKeys.type)}\" at ${path.toString()}`);\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\n\nexport class YamlTemplateFieldReaderResult {\n private readonly _field: TemplateField;\n private readonly _parsingResult: YamlArtifactParsingResult;\n private readonly _fieldSourceObject: JsonNode;\n\n constructor(field: TemplateField, parsingResult: YamlArtifactParsingResult, fieldSourceObject: JsonNode) {\n this._field = field;\n this._parsingResult = parsingResult;\n this._fieldSourceObject = fieldSourceObject;\n }\n\n get field(): TemplateField {\n return this._field;\n }\n\n get parsingResult(): YamlArtifactParsingResult {\n return this._parsingResult;\n }\n\n get fieldSourceObject(): JsonNode {\n return this._fieldSourceObject;\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { UnknownTemplateField } from '../../../model/cedar/field/UnknownTemplateField';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport { ListField } from '../../../model/cedar/field/dynamic/list/ListField';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { ListOption } from '../../../model/cedar/field/dynamic/list/ListOption';\n\nexport abstract class YamlTemplateFieldTypeSpecificReader {\n public read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): TemplateField {\n return UnknownTemplateField.build();\n }\n\n /**\n * A list field's value constraints are its options and, when one is set, the value the field takes\n * by default. The writer emits the default as `default` beside the options; leaving it unread made\n * writing what had just been read drop it.\n */\n protected static readAndStoreListValueConstraints(fieldSourceObject: JsonNode, field: ListField) {\n field.valueConstraints.defaultValue = ReaderUtil.getString(fieldSourceObject, YamlKeys.default);\n const literals: Array<JsonNode> = ReaderUtil.getNodeList(fieldSourceObject, YamlKeys.values);\n if (literals !== null) {\n literals.forEach((literal) => {\n const label = ReaderUtil.getString(literal, YamlKeys.label);\n const selectedByDefault = ReaderUtil.getBoolean(literal, YamlKeys.selected);\n if (label != null) {\n const option = new ListOption(label, selectedByDefault);\n field.valueConstraints.literals.push(option);\n }\n });\n }\n }\n}\n","import YAML from 'yaml';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { YamlReaderBehavior } from '../../../behavior/YamlReaderBehavior';\nimport { YamlAbstractArtifactReader } from './YamlAbstractArtifactReader';\nimport { CedarUser } from '../../../model/cedar/types/cedar-types/CedarUser';\nimport { IsoDate } from '../../../model/cedar/types/wrapped-types/IsoDate';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { TemplateInstance } from '../../../model/cedar/template-instance/TemplateInstance';\nimport { YamlTemplateInstanceReaderResult } from './YamlTemplateInstanceReaderResult';\nimport { InstanceDataContainer } from '../../../model/cedar/template-instance/InstanceDataContainer';\nimport { InstanceDataAtomType } from '../../../model/cedar/template-instance/InstanceDataAtomType';\nimport { InstanceDataAtomList } from '../../../model/cedar/template-instance/InstanceDataAtomList';\nimport { InstanceDataStringAtom } from '../../../model/cedar/template-instance/InstanceDataStringAtom';\nimport { InstanceDataTypedAtom } from '../../../model/cedar/template-instance/InstanceDataTypedAtom';\nimport { InstanceDataLinkAtom } from '../../../model/cedar/template-instance/InstanceDataLinkAtom';\nimport { InstanceDataControlledAtom } from '../../../model/cedar/template-instance/InstanceDataControlledAtom';\nimport { InstanceDataEmptyNode } from '../../../model/cedar/template-instance/InstanceDataEmptyNode';\nimport { InstanceDataAttributeValueField } from '../../../model/cedar/template-instance/InstanceDataAttributeValueField';\nimport { AttributeValueNamePolicy } from '../../../model/cedar/template-instance/AttributeValueNamePolicy';\nimport { ComparisonError } from '../../../model/cedar/util/compare/ComparisonError';\nimport { YamlComparisonErrorType } from '../../../model/cedar/util/compare/YamlComparisonErrorType';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\n\nconst ELEMENT_INSTANCE_TYPE = 'element-instance';\n\n/**\n * Read a CEDAR template instance from YAML into the same `TemplateInstance` the\n * JSON reader produces — the serialization the `YamlTemplateInstanceWriter`\n * emits, read back.\n *\n * The YAML instance is the lean form: field data sits under a `children` block,\n * a value is `value` / `id` / `datatype` / `label` where the JSON uses `@value`\n * / `@id` / `@type` / `rdfs:label`, an element nests its own `id` and `children`,\n * and an attribute-value field sits at the container level with its attributes\n * named directly. Two things the JSON instance carries are deliberately absent\n * and cannot be recovered from the YAML alone: the `@context` property IRIs and\n * the empty slots the template's JSON Schema requires. Both are template data;\n * `InstanceInflater` reconstructs them. This reader's job is the values.\n */\nexport class YamlTemplateInstanceReader extends YamlAbstractArtifactReader {\n private constructor(behavior: YamlReaderBehavior, isCompact: boolean = false) {\n super(behavior, isCompact);\n }\n\n public static getStrict(): YamlTemplateInstanceReader {\n return new YamlTemplateInstanceReader(YamlReaderBehavior.STRICT);\n }\n\n /**\n * A reader for the compact form, which names neither the instance nor what a repository records\n * about it. An instance has no model version to give the ordinary reader away, so asking for this\n * one is what says which form is meant — and it is what refuses a document that names its instance.\n */\n public static getStrictForCompact(): YamlTemplateInstanceReader {\n return new YamlTemplateInstanceReader(YamlReaderBehavior.STRICT, true);\n }\n\n public static getForBehavior(behavior: YamlReaderBehavior, isCompact: boolean = false): YamlTemplateInstanceReader {\n return new YamlTemplateInstanceReader(behavior, isCompact);\n }\n\n public readFromString(instanceSourceString: string): YamlTemplateInstanceReaderResult {\n let instanceObject;\n try {\n instanceObject = YAML.parse(instanceSourceString);\n } catch {\n instanceObject = {};\n }\n this.refuseIdentifierAtDocumentRoot(instanceObject);\n return this.readFromObject(instanceObject);\n }\n\n public readFromObject(instanceSourceObject: JsonNode): YamlTemplateInstanceReaderResult {\n const parsingResult = new YamlArtifactParsingResult();\n const instance = TemplateInstance.buildEmptyWithNullValues();\n const source = instanceSourceObject ?? {};\n\n instance.schema_name = ReaderUtil.getString(source, YamlKeys.name);\n instance.schema_description = ReaderUtil.getString(source, YamlKeys.description);\n YamlTemplateInstanceReader.refuseEmptyIdentifier(source);\n instance.at_id = CedarArtifactId.forValue(ReaderUtil.getString(source, YamlKeys.id));\n instance.schema_isBasedOn = CedarArtifactId.forValue(ReaderUtil.getString(source, YamlKeys.isBasedOn));\n // Accept the legacy empty spelling as absence; the writer omits the optional key.\n instance.pav_derivedFrom = CedarArtifactId.forValue(ReaderUtil.getString(source, YamlKeys.derivedFrom));\n // The writer emits an instance's provenance and its annotations; both were read by nobody, so\n // either one was lost by writing what had just been read.\n instance.pav_createdBy = CedarUser.forValue(ReaderUtil.getString(source, YamlKeys.createdBy));\n instance.pav_createdOn = IsoDate.forValue(ReaderUtil.getString(source, YamlKeys.createdOn));\n instance.oslc_modifiedBy = CedarUser.forValue(ReaderUtil.getString(source, YamlKeys.modifiedBy));\n instance.pav_lastUpdatedOn = IsoDate.forValue(ReaderUtil.getString(source, YamlKeys.modifiedOn));\n this.readAnnotations(instance, source, parsingResult, new JsonPath());\n\n instance.dataContainer = this.parseContainer(source);\n for (const conflict of AttributeValueNamePolicy.findConflicts(instance.dataContainer)) {\n parsingResult.addBlueprintComparisonError(\n new ComparisonError(\n 'YamlTemplateInstanceReader',\n YamlComparisonErrorType.VALUE_MISMATCH,\n new JsonPath(...conflict.path, conflict.groupName, conflict.name),\n 'a unique, non-reserved attribute-value name',\n conflict.name,\n ),\n );\n }\n return new YamlTemplateInstanceReaderResult(instance, parsingResult, source);\n }\n\n /**\n * Keys that name the instance rather than its data, so are not attribute-value\n * fields. The nested element case never carries the envelope keys, only `id`\n * and `children`, so the one set is safe at every level.\n */\n private static readonly RESERVED_KEYS: ReadonlySet<string> = new Set([\n YamlKeys.type,\n YamlKeys.name,\n YamlKeys.description,\n YamlKeys.id,\n YamlKeys.isBasedOn,\n YamlKeys.derivedFrom,\n YamlKeys.children,\n // An annotation block is the artifact's, not a field named `annotations`: left unreserved, the\n // attribute-value fallback below claimed it, and an annotation carrying an IRI rather than a\n // literal came out of that as a null-valued attribute the writer then dropped.\n YamlKeys.annotations,\n YamlKeys.createdOn,\n YamlKeys.createdBy,\n YamlKeys.modifiedOn,\n YamlKeys.modifiedBy,\n ]);\n\n private parseContainer(node: JsonNode): InstanceDataContainer {\n const container = new InstanceDataContainer();\n\n const children = ReaderUtil.getNode(node, YamlKeys.children);\n if (children !== null) {\n Object.keys(children).forEach((key) => {\n const content = ReaderUtil.getNode(children, key) ?? (children as JsonNode)[key];\n if (Array.isArray(content)) {\n const list: InstanceDataAtomList = [];\n container.setValue(key, list);\n content.forEach((element: JsonNode, index: number) => {\n list[index] = this.parseNode(element);\n });\n } else {\n container.setValue(key, this.parseNode(content));\n }\n });\n }\n\n // Attribute-value fields sit beside `children`, their attributes named\n // directly: `<field>: { <attr>: { value: … } }`.\n Object.keys(node).forEach((key) => {\n if (YamlTemplateInstanceReader.RESERVED_KEYS.has(key)) {\n return;\n }\n const avNode = (node as JsonNode)[key];\n if (avNode === null || typeof avNode !== 'object' || Array.isArray(avNode)) {\n return;\n }\n const avField = new InstanceDataAttributeValueField(key);\n Object.keys(avNode).forEach((attrName) => {\n const inner = (avNode as JsonNode)[attrName];\n avField.addValue(attrName, new InstanceDataStringAtom(this.parseAttributeValue(inner)));\n });\n container.setValue(key, avField);\n });\n\n YamlTemplateInstanceReader.refuseEmptyIdentifier(node);\n const id = ReaderUtil.getString(node, YamlKeys.id);\n if (id !== null) {\n container.id = id;\n }\n return container;\n }\n\n private parseAttributeValue(node: unknown): string | null {\n if (typeof node === 'string') {\n return node;\n }\n if (node !== null && typeof node === 'object' && !Array.isArray(node)) {\n const value = (node as JsonNode)[YamlKeys.value];\n return typeof value === 'string' ? value : null;\n }\n return null;\n }\n\n private parseNode(node: JsonNode | string | null): InstanceDataAtomType {\n if (node === null || node === undefined) {\n return new InstanceDataEmptyNode();\n }\n if (typeof node === 'string') {\n return new InstanceDataStringAtom(node);\n }\n // An element carries a `children` block; a value never does.\n if (Object.hasOwn(node, YamlKeys.children) || ReaderUtil.getString(node, YamlKeys.type) === ELEMENT_INSTANCE_TYPE) {\n return this.parseContainer(node);\n }\n if (Object.hasOwn(node, YamlKeys.value)) {\n const value = ReaderUtil.getString(node, YamlKeys.value);\n const datatype = ReaderUtil.getString(node, YamlKeys.datatype);\n return datatype === null ? new InstanceDataStringAtom(value) : new InstanceDataTypedAtom(value, datatype);\n }\n if (Object.hasOwn(node, YamlKeys.id)) {\n YamlTemplateInstanceReader.refuseEmptyIdentifier(node);\n const id = ReaderUtil.getString(node, YamlKeys.id);\n const label = ReaderUtil.getString(node, YamlKeys.label);\n return label === null ? InstanceDataLinkAtom.fromParsedNode(id) : InstanceDataControlledAtom.fromParsedNode(id, label);\n }\n return new InstanceDataEmptyNode();\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateInstance } from '../../../model/cedar/template-instance/TemplateInstance';\nimport { YamlArtifactReaderResult } from './YamlArtifactReaderResult';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\n\nexport class YamlTemplateInstanceReaderResult extends YamlArtifactReaderResult {\n constructor(instance: TemplateInstance, parsingResult: YamlArtifactParsingResult, instanceSourceObject: JsonNode) {\n super(instance, parsingResult, instanceSourceObject);\n }\n\n get instance(): TemplateInstance {\n return this._artifact as TemplateInstance;\n }\n\n get instanceSourceObject(): JsonNode {\n return this._artifactSourceObject;\n }\n}\n","import { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { ReaderUtil } from '../ReaderUtil';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { YamlTemplateReaderResult } from './YamlTemplateReaderResult';\nimport { JsonPath } from '../../../model/cedar/util/path/JsonPath';\nimport { YamlReaderBehavior } from '../../../behavior/YamlReaderBehavior';\nimport { YamlTemplateElementReader } from './YamlTemplateElementReader';\nimport { Template } from '../../../model/cedar/template/Template';\nimport YAML from 'yaml';\nimport { YamlContainerArtifactReader } from './YamlContainerArtifactReader';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\n\nexport class YamlTemplateReader extends YamlContainerArtifactReader {\n private readonly elementReader: YamlTemplateElementReader;\n protected knownArtifactType: CedarArtifactType = CedarArtifactType.TEMPLATE;\n\n private constructor(behavior: YamlReaderBehavior, isCompact: boolean = false) {\n super(behavior, isCompact);\n this.elementReader = YamlTemplateElementReader.getForBehavior(behavior, isCompact);\n }\n\n public static getStrict(): YamlTemplateReader {\n return new YamlTemplateReader(YamlReaderBehavior.STRICT);\n }\n\n /**\n * A reader for the compact form, which omits the model version and the rest of what the system\n * records about an artifact. Asking for it is the only way to read that form.\n */\n public static getStrictForCompact(): YamlTemplateReader {\n return new YamlTemplateReader(YamlReaderBehavior.STRICT, true);\n }\n\n public static getForBehavior(behavior: YamlReaderBehavior, isCompact: boolean = false): YamlTemplateReader {\n return new YamlTemplateReader(behavior, isCompact);\n }\n\n protected override getElementReader(): YamlTemplateElementReader {\n return this.elementReader;\n }\n\n public readFromString(templateSourceString: string): YamlTemplateReaderResult {\n let templateObject;\n try {\n templateObject = YAML.parse(templateSourceString);\n } catch {\n templateObject = {};\n }\n this.refuseIdentifierAtDocumentRoot(templateObject);\n return this.readFromObject(templateObject);\n }\n\n public readFromObject(templateSourceObject: JsonNode, topPath: JsonPath = new JsonPath()): YamlTemplateReaderResult {\n const parsingResult: YamlArtifactParsingResult = new YamlArtifactParsingResult();\n const template = Template.buildEmptyWithNullValues();\n\n this.readNonReportableAttributes(template, templateSourceObject);\n this.readAnnotations(template, templateSourceObject, parsingResult, topPath);\n this.readInstanceTypeSpecification(template, templateSourceObject, parsingResult);\n this.readAndValidateChildrenInfo(template, templateSourceObject, parsingResult, topPath);\n\n return new YamlTemplateReaderResult(template, parsingResult, templateSourceObject);\n }\n\n protected readNonReportableAttributes(template: Template, templateSourceObject: JsonNode) {\n super.readNonReportableAttributes(template, templateSourceObject);\n // Read template-only properties\n template.header = ReaderUtil.getString(templateSourceObject, YamlKeys.header);\n template.footer = ReaderUtil.getString(templateSourceObject, YamlKeys.footer);\n }\n\n /**\n * The type an instance of this template declares itself to be.\n *\n * A key of its own here. This read the JSON Schema shape the key stands for — an enum of one buried\n * in the `@type` property specification — which no YAML document carries, so a template's instance\n * type was lost on every read.\n */\n private readInstanceTypeSpecification(template: Template, templateSourceObject: JsonNode, _parsingResult: YamlArtifactParsingResult) {\n template.instanceTypeSpecification = ReaderUtil.getString(templateSourceObject, YamlKeys.instanceType);\n }\n}\n","import { Template } from '../../../model/cedar/template/Template';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { YamlArtifactParsingResult } from '../../../model/cedar/util/compare/YamlArtifactParsingResult';\n\nexport class YamlTemplateReaderResult {\n private readonly _template: Template;\n private readonly _parsingResult: YamlArtifactParsingResult;\n private readonly _templateSourceObject: JsonNode;\n\n constructor(template: Template, parsingResult: YamlArtifactParsingResult, templateSourceObject: JsonNode) {\n this._template = template;\n this._parsingResult = parsingResult;\n this._templateSourceObject = templateSourceObject;\n }\n\n get template(): Template {\n return this._template;\n }\n\n get parsingResult(): YamlArtifactParsingResult {\n return this._parsingResult;\n }\n\n get templateSourceObject(): JsonNode {\n return this._templateSourceObject;\n }\n}\n","import { JsonTemplateFieldReaderResult } from '../reader/json/JsonTemplateFieldReaderResult';\nimport { JsonTemplateFieldWriterInternal } from '../writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonArtifactParsingResult } from '../../model/cedar/util/compare/JsonArtifactParsingResult';\nimport { JsonObjectComparator } from '../../model/cedar/util/compare/JsonObjectComparator';\nimport { ChildDeploymentInfo } from '../../model/cedar/deployment/ChildDeploymentInfo';\nimport { JsonPath } from '../../model/cedar/util/path/JsonPath';\nimport { JsonTemplateReaderResult } from '../reader/json/JsonTemplateReaderResult';\nimport { JsonTemplateWriter } from '../writer/json/JsonTemplateWriter';\nimport { JsonTemplateElementReaderResult } from '../reader/json/JsonTemplateElementReaderResult';\nimport { JsonTemplateElementWriter } from '../writer/json/JsonTemplateElementWriter';\nimport { JsonWriterBehavior } from '../../behavior/JsonWriterBehavior';\n\nexport class RoundTrip {\n static compare(jsonFieldReaderResult: JsonTemplateFieldReaderResult, writer: JsonTemplateFieldWriterInternal): JsonArtifactParsingResult;\n static compare(jsonElementReaderResult: JsonTemplateElementReaderResult, writer: JsonTemplateElementWriter): JsonArtifactParsingResult;\n static compare(jsonTemplateReaderResult: JsonTemplateReaderResult, writer: JsonTemplateWriter): JsonArtifactParsingResult;\n static compare(left: string, right: string): JsonArtifactParsingResult;\n\n static compare(\n readerResult: JsonTemplateFieldReaderResult | JsonTemplateElementReaderResult | JsonTemplateReaderResult | string,\n writer: JsonTemplateFieldWriterInternal | JsonTemplateElementWriter | JsonTemplateWriter | string,\n ): JsonArtifactParsingResult {\n if (readerResult instanceof JsonTemplateFieldReaderResult && writer instanceof JsonTemplateFieldWriterInternal) {\n return this.compareField(readerResult, writer);\n } else if (readerResult instanceof JsonTemplateElementReaderResult && writer instanceof JsonTemplateElementWriter) {\n return this.compareElement(readerResult, writer);\n } else if (readerResult instanceof JsonTemplateReaderResult && writer instanceof JsonTemplateWriter) {\n return this.compareTemplate(readerResult, writer);\n } else if (typeof readerResult === 'string' && typeof writer === 'string') {\n return this.compareString(readerResult, writer);\n } else {\n throw new Error('Invalid argument types for compare method');\n }\n }\n\n static compareField(\n jsonFieldReaderResult: JsonTemplateFieldReaderResult,\n writer: JsonTemplateFieldWriterInternal,\n ): JsonArtifactParsingResult {\n const compareResult = new JsonArtifactParsingResult();\n JsonObjectComparator.compareBothWays(\n compareResult,\n jsonFieldReaderResult.fieldSourceObject,\n writer.getAsJsonNode(jsonFieldReaderResult.field, ChildDeploymentInfo.empty()),\n new JsonPath(),\n writer.getBehavior(),\n );\n return compareResult;\n }\n\n static compareElement(\n jsonElementReaderResult: JsonTemplateElementReaderResult,\n writer: JsonTemplateElementWriter,\n ): JsonArtifactParsingResult {\n const compareResult = new JsonArtifactParsingResult();\n JsonObjectComparator.compareBothWays(\n compareResult,\n jsonElementReaderResult.elementSourceObject,\n writer.getAsJsonNode(jsonElementReaderResult.element),\n new JsonPath(),\n writer.getBehavior(),\n );\n return compareResult;\n }\n\n static compareTemplate(jsonTemplateReaderResult: JsonTemplateReaderResult, writer: JsonTemplateWriter): JsonArtifactParsingResult {\n const compareResult = new JsonArtifactParsingResult();\n JsonObjectComparator.compareBothWays(\n compareResult,\n jsonTemplateReaderResult.templateSourceObject,\n writer.getAsJsonNode(jsonTemplateReaderResult.template),\n new JsonPath(),\n writer.getBehavior(),\n );\n return compareResult;\n }\n\n static compareString(left: string, right: string): JsonArtifactParsingResult {\n const leftObject = JSON.parse(left);\n const rightObject = JSON.parse(right);\n const compareResult = new JsonArtifactParsingResult();\n JsonObjectComparator.compareBothWays(compareResult, leftObject, rightObject, new JsonPath(), JsonWriterBehavior.STRICT);\n return compareResult;\n }\n}\n","export abstract class AbstractArtifactWriter {\n protected constructor() {}\n}\n","import { CedarJsonWriters } from './json/CedarJsonWriters';\nimport { CedarYamlWriters } from './yaml/CedarYamlWriters';\n\nexport abstract class CedarWriters {\n public static json(): typeof CedarJsonWriters {\n return CedarJsonWriters;\n }\n\n public static yaml(): typeof CedarYamlWriters {\n return CedarYamlWriters;\n }\n}\n","import { TemplateChild } from '../../model/cedar/types/basic-types/TemplateChild';\nimport { ChildDeploymentInfoAlwaysMultiple } from '../../model/cedar/deployment/ChildDeploymentInfoAlwaysMultiple';\nimport { ChildDeploymentInfo } from '../../model/cedar/deployment/ChildDeploymentInfo';\nimport { AbstractChildDeploymentInfo } from '../../model/cedar/deployment/AbstractChildDeploymentInfo';\n\nexport abstract class WriterUtil {\n public static getMultiMinMax(\n child: TemplateChild,\n childMetaAbstract: AbstractChildDeploymentInfo,\n ): { isMultiInstance: boolean; minItems: number | null; maxItems: number | null } {\n let minItems: number | null = null;\n let maxItems: number | null = null;\n let isMultiInstance = false;\n if (child.isMultiInstanceByDefinition()) {\n // always multi-instance: Checkbox, Attribute-Value, MultipleChoiceList\n if (childMetaAbstract instanceof ChildDeploymentInfoAlwaysMultiple) {\n isMultiInstance = true;\n // The rule now lives on the deployment info, so a consumer reading the\n // parsed model and this writer cannot give different answers.\n minItems = childMetaAbstract.minItems;\n maxItems = childMetaAbstract.maxItems;\n }\n } else if (child.isSingleInstanceByDefinition()) {\n // always single instance: Radio\n isMultiInstance = false;\n } else {\n // regular deployment info\n if (childMetaAbstract instanceof ChildDeploymentInfo) {\n const childMeta = childMetaAbstract as ChildDeploymentInfo;\n isMultiInstance = childMeta.multiInstance;\n if (isMultiInstance) {\n minItems = childMeta.minItems;\n maxItems = childMeta.maxItems;\n }\n }\n }\n return { isMultiInstance, minItems, maxItems };\n }\n}\n","import { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { JsonAtomicWriter } from './JsonAtomicWriter';\nimport { JsonTemplateFieldWriterInternal } from './JsonTemplateFieldWriterInternal';\nimport { JsonTemplateWriter } from './JsonTemplateWriter';\nimport { CedarFieldType } from '../../../model/cedar/types/cedar-types/CedarFieldType';\nimport { JsonFieldWriterTextField } from '../../../model/cedar/field/dynamic/textfield/JsonFieldWriterTextField';\nimport { JsonFieldWriterLink } from '../../../model/cedar/field/dynamic/link/JsonFieldWriterLink';\nimport { JsonFieldWriterNumeric } from '../../../model/cedar/field/dynamic/numeric/JsonFieldWriterNumeric';\nimport { JsonFieldWriterTemporal } from '../../../model/cedar/field/dynamic/temporal/JsonFieldWriterTemporal';\nimport { JsonFieldWriterStaticImage } from '../../../model/cedar/field/static/image/JsonFieldWriterStaticImage';\nimport { JsonFieldWriterStaticPageBreak } from '../../../model/cedar/field/static/page-break/JsonFieldWriterStaticPageBreak';\nimport { JsonFieldWriterStaticSectionsBreak } from '../../../model/cedar/field/static/section-break/JsonFieldWriterStaticSectionBreak';\nimport { JsonFieldWriterStaticRichText } from '../../../model/cedar/field/static/rich-text/JsonFieldWriterStaticRichText';\nimport { JsonFieldWriterStaticYoutube } from '../../../model/cedar/field/static/youtube/JsonFieldWriterStaticYoutube';\nimport { JsonFieldWriterRadio } from '../../../model/cedar/field/dynamic/radio/JsonFieldWriterRadio';\nimport { JsonFieldWriterCheckbox } from '../../../model/cedar/field/dynamic/checkbox/JsonFieldWriterCheckbox';\nimport { JsonFieldWriterList } from '../../../model/cedar/field/dynamic/list/JsonFieldWriterList';\nimport { JsonFieldWriterTextArea } from '../../../model/cedar/field/dynamic/textarea/JsonFieldWriterTextArea';\nimport { JsonFieldWriterPhoneNumber } from '../../../model/cedar/field/dynamic/phone-number/JsonFieldWriterPhoneNumber';\nimport { JsonFieldWriterEmail } from '../../../model/cedar/field/dynamic/email/JsonFieldWriterEmail';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { JsonFieldWriterAttributeValue } from '../../../model/cedar/field/dynamic/attribute-value/JsonFieldWriterAttributeValue';\nimport { JsonFieldWriterControlledTerm } from '../../../model/cedar/field/dynamic/controlled-term/JsonFieldWriterControlledTerm';\nimport { ControlledTermOntology } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntology';\nimport { JsonValueConstraintsOntologyWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/ontology/JsonValueConstraintsOntologyWriter';\nimport { AbstractJsonControlledTermValueConstraintWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/AbstractJsonControlledTermValueConstraintWriter';\nimport { ControlledTermAbstractValueConstraint } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermAbstractValueConstraint';\nimport { ControlledTermClass } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClass';\nimport { JsonValueConstraintsClassWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/class/JsonValueConstraintsClassWriter';\nimport { ControlledTermBranch } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranch';\nimport { JsonValueConstraintsBranchWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/branch/JsonValueConstraintsBranchWriter';\nimport { ControlledTermValueSet } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSet';\nimport { JsonValueConstraintsValueSetWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/value-set/JsonValueConstraintsValueSetWriter';\nimport { JsonTemplateElementWriter } from './JsonTemplateElementWriter';\nimport { JsonAnnotationsWriter } from './JsonAnnotationsWriter';\nimport { ControlledTermAction } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermAction';\nimport { JsonValueConstraintsActionWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/action/JsonValueConstraintsActionWriter';\nimport { JsonAbstractArtifactWriter } from './JsonAbstractArtifactWriter';\nimport { Template } from '../../../model/cedar/template/Template';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { AbstractArtifact } from '../../../model/cedar/AbstractArtifact';\nimport { JsonTemplateInstanceWriter } from './JsonTemplateInstanceWriter';\nimport { JsonFieldWriterExtRor } from '../../../model/cedar/field/dynamic/ext-ror/JsonFieldWriterExtRor';\nimport { JsonFieldWriterExtOrcid } from '../../../model/cedar/field/dynamic/ext-orcid/JsonFieldWriterExtOrcid';\nimport { JsonFieldWriterExtPfas } from '../../../model/cedar/field/dynamic/ext-pfas/JsonFieldWriterExtPfas';\nimport { JsonFieldWriterExtPubmed } from '../../../model/cedar/field/dynamic/ext-pubmed/JsonFieldWriterExtPubmed';\nimport { JsonFieldWriterExtRrid } from '../../../model/cedar/field/dynamic/ext-rrid/JsonFieldWriterExtRrid';\nimport { JsonFieldWriterExtNihGrantId } from '../../../model/cedar/field/dynamic/ext-nih-grant-id/JsonFieldWriterExtNihGrantId';\nimport { JsonFieldWriterExtDoi } from '../../../model/cedar/field/dynamic/ext-doi/JsonFieldWriterExtDoi';\n\nexport class CedarJsonWriters {\n private readonly behavior: JsonWriterBehavior;\n private readonly jsonDynamicFieldWriters: Map<CedarFieldType, JsonTemplateFieldWriterInternal>;\n private readonly jsonStaticFieldWriters: Map<CedarFieldType, JsonTemplateFieldWriterInternal>;\n private readonly jsonValueConstraintsWriters: Map<string, AbstractJsonControlledTermValueConstraintWriter>;\n private readonly jsonAtomicWriter: JsonAtomicWriter;\n private readonly jsonAnnotationsWriter: JsonAnnotationsWriter;\n private readonly jsonTemplateWriter: JsonTemplateWriter;\n private readonly jsonTemplateElementWriter: JsonTemplateElementWriter;\n private readonly jsonTemplateInstanceWriter: JsonTemplateInstanceWriter;\n\n private constructor(behavior: JsonWriterBehavior) {\n this.behavior = behavior;\n // JSON writers. Order is important\n this.jsonAtomicWriter = new JsonAtomicWriter(behavior);\n this.jsonAnnotationsWriter = new JsonAnnotationsWriter(behavior);\n this.jsonTemplateWriter = JsonTemplateWriter.getFor(behavior, this);\n this.jsonTemplateElementWriter = JsonTemplateElementWriter.getFor(behavior, this);\n this.jsonTemplateInstanceWriter = JsonTemplateInstanceWriter.getFor(behavior, this);\n\n this.jsonDynamicFieldWriters = new Map<CedarFieldType, JsonTemplateFieldWriterInternal>([\n [CedarFieldType.TEXT, new JsonFieldWriterTextField(behavior, this)],\n [CedarFieldType.TEXTAREA, new JsonFieldWriterTextArea(behavior, this)],\n [CedarFieldType.CONTROLLED_TERM, new JsonFieldWriterControlledTerm(behavior, this)],\n [CedarFieldType.PHONE_NUMBER, new JsonFieldWriterPhoneNumber(behavior, this)],\n [CedarFieldType.EMAIL, new JsonFieldWriterEmail(behavior, this)],\n [CedarFieldType.LINK, new JsonFieldWriterLink(behavior, this)],\n [CedarFieldType.EXT_ROR, new JsonFieldWriterExtRor(behavior, this)],\n [CedarFieldType.EXT_ORCID, new JsonFieldWriterExtOrcid(behavior, this)],\n [CedarFieldType.EXT_PFAS, new JsonFieldWriterExtPfas(behavior, this)],\n [CedarFieldType.EXT_PUBMED, new JsonFieldWriterExtPubmed(behavior, this)],\n [CedarFieldType.EXT_RRID, new JsonFieldWriterExtRrid(behavior, this)],\n [CedarFieldType.EXT_NIH_GRANT_ID, new JsonFieldWriterExtNihGrantId(behavior, this)],\n [CedarFieldType.EXT_DOI, new JsonFieldWriterExtDoi(behavior, this)],\n [CedarFieldType.NUMERIC, new JsonFieldWriterNumeric(behavior, this)],\n [CedarFieldType.TEMPORAL, new JsonFieldWriterTemporal(behavior, this)],\n [CedarFieldType.RADIO, new JsonFieldWriterRadio(behavior, this)],\n [CedarFieldType.CHECKBOX, new JsonFieldWriterCheckbox(behavior, this)],\n [CedarFieldType.SINGLE_SELECT_LIST, new JsonFieldWriterList(behavior, this)],\n [CedarFieldType.MULTIPLE_SELECT_LIST, new JsonFieldWriterList(behavior, this)],\n [CedarFieldType.ATTRIBUTE_VALUE, new JsonFieldWriterAttributeValue(behavior, this)],\n ]);\n\n this.jsonStaticFieldWriters = new Map<CedarFieldType, JsonTemplateFieldWriterInternal>([\n [CedarFieldType.STATIC_PAGE_BREAK, new JsonFieldWriterStaticPageBreak(behavior, this)],\n [CedarFieldType.STATIC_SECTION_BREAK, new JsonFieldWriterStaticSectionsBreak(behavior, this)],\n [CedarFieldType.STATIC_IMAGE, new JsonFieldWriterStaticImage(behavior, this)],\n [CedarFieldType.STATIC_RICH_TEXT, new JsonFieldWriterStaticRichText(behavior, this)],\n [CedarFieldType.STATIC_YOUTUBE, new JsonFieldWriterStaticYoutube(behavior, this)],\n ]);\n\n this.jsonValueConstraintsWriters = new Map<string, AbstractJsonControlledTermValueConstraintWriter>([\n [ControlledTermOntology.className, new JsonValueConstraintsOntologyWriter(behavior, this)],\n [ControlledTermClass.className, new JsonValueConstraintsClassWriter(behavior, this)],\n [ControlledTermBranch.className, new JsonValueConstraintsBranchWriter(behavior, this)],\n [ControlledTermValueSet.className, new JsonValueConstraintsValueSetWriter(behavior, this)],\n [ControlledTermAction.className, new JsonValueConstraintsActionWriter(behavior, this)],\n ]);\n }\n\n public static getStrict(): CedarJsonWriters {\n return new CedarJsonWriters(JsonWriterBehavior.STRICT);\n }\n\n public static getFebruary2024(): CedarJsonWriters {\n return new CedarJsonWriters(JsonWriterBehavior.FEBRUARY_2024);\n }\n\n public static getFor(behavior: JsonWriterBehavior): CedarJsonWriters {\n return new CedarJsonWriters(behavior);\n }\n\n public getTemplateWriter(): JsonTemplateWriter {\n return this.jsonTemplateWriter;\n }\n\n public getTemplateElementWriter(): JsonTemplateElementWriter {\n return this.jsonTemplateElementWriter;\n }\n\n public getTemplateInstanceWriter(): JsonTemplateInstanceWriter {\n return this.jsonTemplateInstanceWriter;\n }\n\n public getAtomicWriter() {\n return this.jsonAtomicWriter;\n }\n\n public getFieldWriterForType(cedarFieldType: CedarFieldType): JsonTemplateFieldWriterInternal {\n let writer: JsonTemplateFieldWriterInternal | undefined;\n if (cedarFieldType.isStaticField) {\n writer = this.jsonStaticFieldWriters.get(cedarFieldType);\n } else {\n writer = this.jsonDynamicFieldWriters.get(cedarFieldType);\n }\n if (writer) {\n return writer;\n }\n throw new Error(`No JSON writer found for field type: ${cedarFieldType.getValue()}`);\n }\n\n public getWriterForValueConstraint(object: ControlledTermAbstractValueConstraint): AbstractJsonControlledTermValueConstraintWriter {\n const className = object.className;\n const writer = this.jsonValueConstraintsWriters.get(className);\n if (writer) {\n return writer;\n }\n throw new Error(`No JSON writer found for class type: ${className}`);\n }\n\n public getFieldWriterForField(field: TemplateField): JsonTemplateFieldWriterInternal {\n return this.getFieldWriterForType(field.cedarFieldType);\n }\n\n getAnnotationsWriter(): JsonAnnotationsWriter {\n return this.jsonAnnotationsWriter;\n }\n\n public getWriterForArtifact(cedarArtifact: AbstractArtifact): JsonAbstractArtifactWriter {\n if (cedarArtifact instanceof Template) {\n return JsonTemplateWriter.getFor(this.behavior, this);\n } else if (cedarArtifact instanceof TemplateElement) {\n return JsonTemplateElementWriter.getFor(this.behavior, this);\n } else if (cedarArtifact instanceof TemplateField) {\n return this.getFieldWriterForType(cedarArtifact.cedarFieldType);\n }\n throw new Error(`No JSON reader available for CedarArtifact: ${cedarArtifact}`);\n }\n}\n","import { AbstractArtifactWriter } from '../AbstractArtifactWriter';\nimport { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { JsonAtomicWriter } from './JsonAtomicWriter';\nimport { JsonAnnotationsWriter } from './JsonAnnotationsWriter';\nimport { AbstractSchemaArtifact } from '../../../model/cedar/AbstractSchemaArtifact';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { BiboStatus } from '../../../model/cedar/types/wrapped-types/BiboStatus';\nimport { PavVersion } from '../../../model/cedar/types/wrapped-types/PavVersion';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { ValueConstraints } from '../../../model/cedar/field/ValueConstraints';\nimport { CedarJsonWriters } from './CedarJsonWriters';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { AbstractArtifact } from '../../../model/cedar/AbstractArtifact';\nimport { AbstractInstanceArtifact } from '../../../model/cedar/AbstractInstanceArtifact';\n\nexport abstract class JsonAbstractArtifactWriter extends AbstractArtifactWriter {\n protected behavior: JsonWriterBehavior;\n protected writers: CedarJsonWriters;\n protected atomicWriter: JsonAtomicWriter;\n protected annotationsWriter: JsonAnnotationsWriter;\n\n protected constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super();\n this.behavior = behavior;\n this.writers = writers;\n this.atomicWriter = writers.getAtomicWriter();\n this.annotationsWriter = writers.getAnnotationsWriter();\n }\n\n public getBehavior(): JsonWriterBehavior {\n return this.behavior;\n }\n\n public abstract getAsJsonString(artifact: AbstractSchemaArtifact | ValueConstraints): string;\n\n protected macroSchemaNameAndDescription(artifact: AbstractArtifact): JsonNode {\n return {\n [JsonSchema.schemaName]: artifact.schema_name,\n [JsonSchema.schemaDescription]: artifact.schema_description,\n } as JsonNode;\n }\n\n protected macroProvenance(artifact: AbstractArtifact, atomicWriter: JsonAtomicWriter): JsonNode {\n return {\n [JsonSchema.pavCreatedOn]: atomicWriter.write(artifact.pav_createdOn),\n [JsonSchema.pavCreatedBy]: atomicWriter.write(artifact.pav_createdBy),\n [JsonSchema.pavLastUpdatedOn]: atomicWriter.write(artifact.pav_lastUpdatedOn),\n [JsonSchema.oslcModifiedBy]: atomicWriter.write(artifact.oslc_modifiedBy),\n } as JsonNode;\n }\n\n protected macroStatusAndVersion(artifact: AbstractSchemaArtifact, atomicWriter: JsonAtomicWriter): JsonNode {\n const svObject: JsonNode = JsonNode.getEmpty();\n if (artifact.pav_version !== PavVersion.NULL) {\n svObject[JsonSchema.pavVersion] = atomicWriter.write(artifact.pav_version);\n }\n if (artifact.bibo_status !== BiboStatus.NULL) {\n svObject[JsonSchema.biboStatus] = atomicWriter.write(artifact.bibo_status);\n }\n return svObject;\n }\n\n protected macroSkos(artifact: TemplateField | TemplateElement): JsonNode {\n const skosObject: JsonNode = JsonNode.getEmpty();\n if (artifact.skos_prefLabel !== null) {\n skosObject[CedarModel.skosPrefLabel] = artifact.skos_prefLabel;\n }\n if (artifact.skos_altLabel !== null && artifact.skos_altLabel.length > 0) {\n skosObject[CedarModel.skosAltLabel] = artifact.skos_altLabel;\n }\n return skosObject;\n }\n\n protected macroDerivedFrom(artifact: AbstractArtifact): JsonNode {\n const derivedFrom: JsonNode = JsonNode.getEmpty();\n if (artifact.pav_derivedFrom !== CedarArtifactId.NULL) {\n derivedFrom[JsonSchema.pavDerivedFrom] = this.atomicWriter.write(artifact.pav_derivedFrom);\n }\n return derivedFrom;\n }\n\n protected macroIsBasedOn(artifact: AbstractInstanceArtifact): JsonNode {\n const isBasedOn: JsonNode = JsonNode.getEmpty();\n if (artifact.schema_isBasedOn !== CedarArtifactId.NULL) {\n isBasedOn[JsonSchema.schemaIsBasedOn] = this.atomicWriter.write(artifact.schema_isBasedOn);\n }\n return isBasedOn;\n }\n\n protected macroPreviousVersion(artifact: AbstractSchemaArtifact): JsonNode {\n const previousVersion: JsonNode = JsonNode.getEmpty();\n if (artifact.pav_previousVersion !== CedarArtifactId.NULL) {\n previousVersion[JsonSchema.pavPreviousVersion] = this.atomicWriter.write(artifact.pav_previousVersion);\n }\n return previousVersion;\n }\n\n protected macroSchemaIdentifier(artifact: AbstractSchemaArtifact): JsonNode {\n const schemaIdentifier: JsonNode = JsonNode.getEmpty();\n if (artifact.schema_identifier !== null) {\n schemaIdentifier[JsonSchema.schemaIdentifier] = artifact.schema_identifier;\n }\n return schemaIdentifier;\n }\n\n protected macroAnnotations(artifact: AbstractArtifact): JsonNode {\n return this.annotationsWriter.write(artifact.annotations);\n }\n}\n","import { JsonAbstractArtifactWriter } from './JsonAbstractArtifactWriter';\nimport { AbstractContainerArtifact } from '../../../model/cedar/AbstractContainerArtifact';\nimport { JsonContainerArtifactContent } from '../../../model/cedar/util/serialization/JsonContainerArtifactContent';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateChild } from '../../../model/cedar/types/basic-types/TemplateChild';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { WriterUtil } from '../WriterUtil';\nimport { AbstractChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractChildDeploymentInfo';\nimport { ReaderUtil } from '../../reader/ReaderUtil';\n\nexport abstract class JsonAbstractContainerArtifactWriter extends JsonAbstractArtifactWriter {\n protected macroContext(_artifact: AbstractContainerArtifact) {\n return JsonContainerArtifactContent.CONTEXT_VERBATIM;\n }\n\n protected getChildMapAsJson(container: AbstractContainerArtifact): JsonNode {\n const childMap: JsonNode = JsonNode.getEmpty();\n\n container\n .getChildrenInfo()\n .getChildrenNames()\n .forEach((childName: string) => {\n const child: TemplateChild | null = container.getChild(childName);\n if (child != null) {\n let childDefinition: JsonNode = JsonNode.getEmpty();\n const childMetaAbstract: AbstractChildDeploymentInfo | null = container.getChildrenInfo().get(childName);\n if (childMetaAbstract !== null) {\n if (child instanceof TemplateField) {\n childDefinition = this.writers.getFieldWriterForType(child.cedarFieldType).getAsJsonNode(child, childMetaAbstract);\n } else {\n childDefinition = this.writers.getTemplateElementWriter().getAsJsonNode(child);\n }\n }\n if (childMetaAbstract !== null) {\n const {\n isMultiInstance,\n minItems: constMinItems,\n maxItems: constMaxItems,\n } = WriterUtil.getMultiMinMax(child, childMetaAbstract);\n let minItems = constMinItems;\n let maxItems = constMaxItems;\n // If multi-instance, wrap the definition\n if (isMultiInstance) {\n if (minItems === null) {\n minItems = 0;\n }\n if (maxItems !== null && maxItems < minItems) {\n maxItems = minItems;\n }\n const minMax = JsonNode.getEmpty();\n minMax[CedarModel.minItems] = minItems;\n if (maxItems !== null) {\n minMax[CedarModel.maxItems] = maxItems;\n }\n childDefinition = {\n [JsonSchema.type]: 'array',\n ...minMax,\n [JsonSchema.items]: childDefinition,\n };\n }\n childMap[childName] = childDefinition;\n }\n }\n });\n\n return childMap;\n }\n\n protected expandInstanceTypeSpecification(container: AbstractContainerArtifact, extendedProperties: JsonNode) {\n // Inject instance type specification, if present\n if (container.instanceTypeSpecification !== null) {\n const atTypeNode = ReaderUtil.getNode(extendedProperties, JsonSchema.atType);\n const oneOfNode = ReaderUtil.getNodeList(atTypeNode, JsonSchema.oneOf);\n oneOfNode.forEach((item: JsonNode) => {\n const itemType = ReaderUtil.getString(item, JsonSchema.type);\n if (itemType == 'string') {\n item[JsonSchema.enum] = [container.instanceTypeSpecification];\n } else if (itemType == 'array') {\n const items: JsonNode = ReaderUtil.getNode(item, JsonSchema.items);\n items[JsonSchema.enum] = [container.instanceTypeSpecification];\n }\n });\n }\n }\n}\n","import { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { Annotations } from '../../../model/cedar/annotation/Annotations';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { AnnotationAtId } from '../../../model/cedar/annotation/AnnotationAtId';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { AnnotationAtValue } from '../../../model/cedar/annotation/AnnotationAtValue';\n\nexport class JsonAnnotationsWriter {\n private behavior: JsonWriterBehavior;\n\n public constructor(behavior: JsonWriterBehavior) {\n this.behavior = behavior;\n }\n\n public write(annotations: Annotations | null): JsonNode {\n const annotationsJson: JsonNode = JsonNode.getEmpty();\n if (annotations !== null && annotations.getSize() > 0) {\n const annotation = JsonNode.getEmpty();\n annotations.getAnnotationNames().forEach((name) => {\n const src = annotations.get(name);\n if (src instanceof AnnotationAtId) {\n annotation[name] = {\n [JsonSchema.atId]: src.getAtId(),\n };\n } else if (src instanceof AnnotationAtValue) {\n annotation[name] = {\n [JsonSchema.atValue]: src.getAtValue(),\n };\n }\n });\n annotationsJson[CedarModel.annotations] = annotation;\n }\n return annotationsJson;\n }\n}\n","import { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JavascriptType } from '../../../model/cedar/types/wrapped-types/JavascriptType';\nimport { IsoDate } from '../../../model/cedar/types/wrapped-types/IsoDate';\nimport { CedarUser } from '../../../model/cedar/types/cedar-types/CedarUser';\nimport { BiboStatus } from '../../../model/cedar/types/wrapped-types/BiboStatus';\nimport { PavVersion } from '../../../model/cedar/types/wrapped-types/PavVersion';\nimport { ArtifactSchema } from '../../../model/cedar/types/wrapped-types/ArtifactSchema';\nimport { SchemaVersion } from '../../../model/cedar/types/wrapped-types/SchemaVersion';\nimport { NumberType, NumberTypeValue } from '../../../model/cedar/types/wrapped-types/NumberType';\nimport { TemporalType, TemporalTypeValue } from '../../../model/cedar/types/wrapped-types/TemporalType';\nimport { TemporalGranularity, TemporalGranularityValue } from '../../../model/cedar/types/wrapped-types/TemporalGranularity';\nimport { TimeFormat, TimeFormatValue } from '../../../model/cedar/types/wrapped-types/TimeFormat';\nimport { UiInputType, UiInputTypeValue } from '../../../model/cedar/types/wrapped-types/UiInputType';\nimport { AdditionalProperties } from '../../../model/cedar/types/wrapped-types/AdditionalProperties';\nimport { NullableString } from '../../../model/cedar/types/basic-types/NullableString';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../model/cedar/util/serialization/JsonTemplateFieldContentDynamic';\nimport { Iri } from '../../../model/cedar/types/wrapped-types/Iri';\nimport { BioportalTermType, BioportalTermTypeJsonValue } from '../../../model/cedar/types/bioportal-types/BioportalTermType';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\n\nexport class JsonAtomicWriter {\n private behavior: JsonWriterBehavior;\n\n public constructor(behavior: JsonWriterBehavior) {\n this.behavior = behavior;\n }\n\n public write(\n arg:\n | CedarArtifactId\n | CedarArtifactType\n | JavascriptType\n | IsoDate\n | CedarUser\n | BiboStatus\n | PavVersion\n | ArtifactSchema\n | SchemaVersion\n | NumberType\n | TemporalType\n | TemporalGranularity\n | TimeFormat\n | UiInputType\n | AdditionalProperties\n | Iri\n | BioportalTermType\n | Language\n | null,\n ): string | number | boolean | JsonNode | null {\n if (arg == null) {\n return null;\n }\n if (arg instanceof CedarArtifactId) {\n return this.writeCedarArtifactId(arg);\n } else if (arg instanceof CedarArtifactType) {\n return this.writeCedarArtifactType(arg);\n } else if (arg instanceof JavascriptType) {\n return this.writeJavascriptType(arg);\n } else if (arg instanceof IsoDate) {\n return this.writeCedarDate(arg);\n } else if (arg instanceof CedarUser) {\n return this.writeCedarUser(arg);\n } else if (arg instanceof BiboStatus) {\n return this.writeBiboStatusJson(arg);\n } else if (arg instanceof PavVersion) {\n return this.writePavVersion(arg);\n } else if (arg instanceof ArtifactSchema) {\n return this.writeCedarSchema(arg);\n } else if (arg instanceof SchemaVersion) {\n return this.writeSchemaVersion(arg);\n } else if (arg instanceof NumberType) {\n return this.writeNumberType(arg);\n } else if (arg instanceof TemporalType) {\n return this.writeTemporalType(arg);\n } else if (arg instanceof TemporalGranularity) {\n return this.writeTemporalGranularity(arg);\n } else if (arg instanceof TimeFormat) {\n return this.writeTimeFormat(arg);\n } else if (arg instanceof UiInputType) {\n return this.writeUiInputType(arg);\n } else if (arg instanceof AdditionalProperties) {\n return this.writeAdditionalProperties(arg);\n } else if (arg instanceof Iri) {\n return this.writeURI(arg);\n } else if (arg instanceof BioportalTermType) {\n return this.writeBioportalTermTypeJson(arg);\n } else if (arg instanceof Language) {\n return this.writeLanguage(arg);\n } else {\n throw new Error('Unsupported type');\n }\n }\n\n private writeCedarArtifactId(id: CedarArtifactId): NullableString {\n return id.getValue();\n }\n\n protected writeCedarArtifactType(type: CedarArtifactType): NullableString {\n return type.getValue();\n }\n\n private writeJavascriptType(type: JavascriptType): NullableString {\n return type.getValue();\n }\n\n private writeCedarDate(date: IsoDate): NullableString {\n return date.getValue();\n }\n\n private writeCedarUser(user: CedarUser): NullableString {\n return user.getValue();\n }\n\n private writeBiboStatusJson(status: BiboStatus): NullableString {\n return status.getJsonValue();\n }\n\n private writePavVersion(version: PavVersion): NullableString {\n return version.getValue();\n }\n\n private writeCedarSchema(schema: ArtifactSchema): NullableString {\n return schema.getValue();\n }\n\n private writeSchemaVersion(schemaVersion: SchemaVersion): NullableString {\n if (schemaVersion.getValue() !== null) {\n return schemaVersion.getValue();\n } else {\n return SchemaVersion.CURRENT.getValue();\n }\n }\n\n private writeNumberType(numberType: NumberType): NumberTypeValue {\n return numberType.getValue();\n }\n\n private writeTemporalType(temporalType: TemporalType): TemporalTypeValue {\n return temporalType.getValue();\n }\n\n private writeTemporalGranularity(temporalGranularity: TemporalGranularity): TemporalGranularityValue {\n return temporalGranularity.getValue();\n }\n\n private writeTimeFormat(timeFormat: TimeFormat): TimeFormatValue {\n return timeFormat.getValue();\n }\n\n private writeUiInputType(uiInputType: UiInputType): UiInputTypeValue {\n return uiInputType.getValue();\n }\n\n private writeAdditionalProperties(additionalProperties: AdditionalProperties): JsonNode | boolean | null {\n if (additionalProperties === AdditionalProperties.FALSE) {\n return false;\n } else if (additionalProperties === AdditionalProperties.ALLOW_ATTRIBUTE_VALUE) {\n return JsonTemplateFieldContentDynamic.ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_OUTSIDE;\n }\n return null;\n }\n\n private writeURI(uri: Iri): string {\n return uri.getValue();\n }\n\n private writeBioportalTermTypeJson(termType: BioportalTermType): BioportalTermTypeJsonValue {\n return termType.getJsonValue();\n }\n\n private writeLanguage(language: Language): string | null {\n return language.getValue();\n }\n}\n","import { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { ReaderUtil } from '../../reader/ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JavascriptType } from '../../../model/cedar/types/wrapped-types/JavascriptType';\nimport { TemplateProperty } from '../../../model/cedar/constants/TemplateProperty';\nimport { ArtifactSchema } from '../../../model/cedar/types/wrapped-types/ArtifactSchema';\nimport { JsonTemplateFieldContentDynamic } from '../../../model/cedar/util/serialization/JsonTemplateFieldContentDynamic';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { JsonTemplateElementContent } from '../../../model/cedar/util/serialization/JsonTemplateElementContent';\nimport { JsonAbstractContainerArtifactWriter } from './JsonAbstractContainerArtifactWriter';\nimport { CedarJsonWriters } from './CedarJsonWriters';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\n\nexport class JsonTemplateElementWriter extends JsonAbstractContainerArtifactWriter {\n private constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n public static getFor(behavior: JsonWriterBehavior, writers: CedarJsonWriters): JsonTemplateElementWriter {\n return new JsonTemplateElementWriter(behavior, writers);\n }\n\n private buildProperties(element: TemplateElement): JsonNode {\n // clone, because we will need to modify deep content\n const properties = ReaderUtil.deepClone(JsonTemplateElementContent.PROPERTIES_PARTIAL);\n\n // @language\n if (element.language !== Language.NULL) {\n properties[JsonSchema.atContext][JsonSchema.atLanguage] = this.atomicWriter.write(element.language);\n }\n\n // Include the IRI mapping. The context may require exactly the terms it declares: a child with\n // no property IRI has no term yet, so the repository will add both when it assigns the IRI.\n const childIriMap = element.getChildrenInfo().getIRIMap();\n properties[JsonSchema.atContext][JsonSchema.properties] = {\n ...properties[JsonSchema.atContext][JsonSchema.properties],\n ...childIriMap,\n };\n\n const childNamesForRequired: string[] = Object.keys(childIriMap);\n\n // Omit required if empty\n if (childNamesForRequired.length > 0) {\n properties[JsonSchema.atContext][JsonSchema.required] = [\n ...properties[JsonSchema.atContext][JsonSchema.required],\n ...childNamesForRequired,\n ];\n } else {\n ReaderUtil.deleteNodeKey(properties[JsonSchema.atContext], JsonSchema.required);\n }\n\n // Attribute value modification\n if (element.getChildrenInfo().hasAttributeValue()) {\n properties[JsonSchema.atContext][TemplateProperty.additionalProperties] =\n JsonTemplateFieldContentDynamic.ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_INSIDE;\n }\n\n // include the field/element definitions\n const extendedProperties = {\n ...properties,\n ...this.getChildMapAsJson(element),\n };\n\n this.expandInstanceTypeSpecification(element, extendedProperties);\n\n return extendedProperties;\n }\n\n public getAsJsonString(element: TemplateElement, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(element), null, indent);\n }\n\n public getAsJsonNode(element: TemplateElement): JsonNode {\n const extendedProperties: JsonNode = this.buildProperties(element);\n\n const elementUi: JsonNode = {\n [CedarModel.order]: element.getChildrenInfo().getChildrenNames(),\n [CedarModel.propertyLabels]: element.getChildrenInfo().getPropertyLabelMap(element),\n [CedarModel.propertyDescriptions]: element.getChildrenInfo().getPropertyDescriptionMap(element),\n };\n\n // build the final object\n return {\n [JsonSchema.atId]: this.atomicWriter.write(element.at_id),\n [JsonSchema.atType]: this.atomicWriter.write(CedarArtifactType.TEMPLATE_ELEMENT),\n [JsonSchema.atContext]: this.macroContext(element),\n [CedarModel.type]: this.atomicWriter.write(JavascriptType.OBJECT),\n [TemplateProperty.title]: element.title,\n [TemplateProperty.description]: element.description,\n [CedarModel.ui]: elementUi,\n [JsonSchema.properties]: extendedProperties,\n [JsonSchema.required]: [...JsonTemplateElementContent.REQUIRED_PARTIAL, ...element.getChildrenInfo().getChildrenNamesForRequired()],\n ...this.macroAnnotations(element),\n ...this.macroSchemaNameAndDescription(element),\n ...this.macroProvenance(element, this.atomicWriter),\n ...this.macroSkos(element),\n ...this.macroStatusAndVersion(element, this.atomicWriter),\n ...this.macroDerivedFrom(element),\n ...this.macroPreviousVersion(element),\n [JsonSchema.schemaVersion]: this.atomicWriter.write(element.schema_schemaVersion),\n [TemplateProperty.additionalProperties]: this.atomicWriter.write(element.getAdditionalProperties()),\n ...this.macroSchemaIdentifier(element),\n [CedarModel.schema]: this.atomicWriter.write(ArtifactSchema.CURRENT),\n };\n }\n}\n","import { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { JsonTemplateFieldContentDynamic } from '../../../model/cedar/util/serialization/JsonTemplateFieldContentDynamic';\nimport { JavascriptType } from '../../../model/cedar/types/wrapped-types/JavascriptType';\nimport { TemplateProperty } from '../../../model/cedar/constants/TemplateProperty';\nimport { ArtifactSchema } from '../../../model/cedar/types/wrapped-types/ArtifactSchema';\nimport { JsonAbstractArtifactWriter } from './JsonAbstractArtifactWriter';\nimport { AdditionalProperties } from '../../../model/cedar/types/wrapped-types/AdditionalProperties';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport { CheckboxField } from '../../../model/cedar/field/dynamic/checkbox/CheckboxField';\nimport { ListField } from '../../../model/cedar/field/dynamic/list/ListField';\nimport { RadioField } from '../../../model/cedar/field/dynamic/radio/RadioField';\nimport { ChoiceOptionEntity } from '../../../model/cedar/field/ChoiceOptionEntity';\nimport { CedarJsonWriters } from './CedarJsonWriters';\nimport { AbstractDynamicChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractDynamicChildDeploymentInfo';\nimport { AbstractChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractChildDeploymentInfo';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\nimport { ReaderUtil } from '../../reader/ReaderUtil';\n\nexport abstract class JsonTemplateFieldWriterInternal extends JsonAbstractArtifactWriter {\n protected constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected expandPropertiesNode(propertiesObject: JsonNode): void {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_LITERAL;\n if (!this.behavior.usePropertiesAtLanguage()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_LITERAL_NO_AT_LANGUAGE;\n }\n }\n\n protected expandRequiredNode(requiredObject: JsonNode): void {\n requiredObject[JsonSchema.required] = [JsonSchema.atValue];\n }\n\n protected expandUINode(uiNode: JsonNode, _field: TemplateField, childInfo: AbstractChildDeploymentInfo): void {\n if (childInfo instanceof AbstractDynamicChildDeploymentInfo) {\n if (childInfo.hidden) {\n uiNode[CedarModel.Ui.hidden] = childInfo.hidden;\n }\n if (childInfo.continuePreviousLine) {\n uiNode[CedarModel.Ui.continuePreviousLine] = childInfo.continuePreviousLine;\n }\n if (childInfo.valueRecommendationEnabled && _field.supportsValueRecommendation()) {\n uiNode[CedarModel.Ui.valueRecommendationEnabled] = childInfo.valueRecommendationEnabled;\n }\n }\n }\n\n protected buildUIObject(field: TemplateField, childInfo: AbstractChildDeploymentInfo): JsonNode {\n const uiNode: JsonNode = {\n [CedarModel.inputType]: this.atomicWriter.write(field.cedarFieldType.getUiInputType()),\n };\n const uiObject: JsonNode = {\n [CedarModel.ui]: uiNode,\n };\n this.expandUINode(uiNode, field, childInfo);\n return uiObject;\n }\n\n protected expandTypeNode(_typeNode: JsonNode, _field: TemplateField): void {}\n\n protected expandValueConstraintsNode(vcNode: JsonNode, field: TemplateField, childInfo: AbstractChildDeploymentInfo): void {\n if (childInfo instanceof AbstractDynamicChildDeploymentInfo) {\n vcNode[CedarModel.requiredValue] = childInfo.requiredValue;\n }\n if (childInfo instanceof AbstractDynamicChildDeploymentInfo) {\n if (childInfo.recommendedValue) {\n vcNode[CedarModel.ValueConstraints.recommendedValue] = childInfo.recommendedValue;\n }\n }\n }\n\n protected buildValueConstraintsObject(field: TemplateField, childInfo: AbstractChildDeploymentInfo): JsonNode {\n const vcNode: JsonNode = JsonNode.getEmpty();\n const vcObject = {\n [CedarModel.valueConstraints]: vcNode,\n };\n this.expandValueConstraintsNode(vcNode, field, childInfo);\n return vcObject;\n }\n\n protected expandLiterals(field: CheckboxField | ListField | RadioField, vcNode: JsonNode) {\n const literals: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.literals.forEach((option: ChoiceOptionEntity) => {\n const literal = JsonNode.getEmpty();\n literal[CedarModel.label] = option.label;\n if (option.selectedByDefault) {\n literal[CedarModel.selectedByDefault] = option.selectedByDefault;\n }\n literals.push(literal);\n });\n if (literals.length > 0) {\n vcNode[CedarModel.literals] = literals;\n }\n }\n\n public getAsJsonString(field: TemplateField, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(field, ChildDeploymentInfo.empty()), null, indent);\n }\n\n public getAsJsonNode(field: TemplateField): JsonNode;\n public getAsJsonNode(field: TemplateField, childInfo: AbstractChildDeploymentInfo): JsonNode;\n public getAsJsonNode(field: TemplateField, childInfo: AbstractChildDeploymentInfo = ChildDeploymentInfo.empty()): JsonNode {\n // Build properties wrapper, based on type\n const propertiesObject: JsonNode = JsonNode.getEmpty();\n this.expandPropertiesNode(propertiesObject);\n\n // Build required wrapper\n const requiredObject: JsonNode = JsonNode.getEmpty();\n this.expandRequiredNode(requiredObject);\n\n // Build ui wrapper\n const uiObject: JsonNode = this.buildUIObject(field, childInfo);\n\n // Build value constraints wrapper\n const vcObject: JsonNode = this.buildValueConstraintsObject(field, childInfo);\n\n // Build type wrapper\n const typeNode: JsonNode = {\n [CedarModel.type]: this.atomicWriter.write(JavascriptType.OBJECT),\n };\n this.expandTypeNode(typeNode, field);\n\n // build the final object\n return {\n [JsonSchema.atId]: this.atomicWriter.write(field.at_id),\n [JsonSchema.atType]: this.atomicWriter.write(field.cedarArtifactType),\n [JsonSchema.atContext]: this.macroContext(field),\n ...typeNode,\n [TemplateProperty.title]: field.title,\n [TemplateProperty.description]: field.description,\n ...uiObject,\n ...vcObject,\n ...propertiesObject,\n ...requiredObject,\n ...this.macroAnnotations(field),\n ...this.macroSchemaNameAndDescription(field),\n ...this.macroProvenance(field, this.atomicWriter),\n ...this.macroSkos(field),\n ...this.macroStatusAndVersion(field, this.atomicWriter),\n ...this.macroDerivedFrom(field),\n ...this.macroPreviousVersion(field),\n [JsonSchema.schemaVersion]: this.atomicWriter.write(field.schema_schemaVersion),\n [TemplateProperty.additionalProperties]: this.atomicWriter.write(AdditionalProperties.FALSE),\n ...this.macroSchemaIdentifier(field),\n [CedarModel.schema]: this.atomicWriter.write(ArtifactSchema.CURRENT),\n };\n }\n\n protected macroContext(field: TemplateField) {\n const context = ReaderUtil.deepClone(JsonTemplateFieldContentDynamic.CONTEXT_VERBATIM);\n // @language\n if (field.language !== Language.NULL) {\n context[JsonSchema.atLanguage] = this.atomicWriter.write(field.language);\n }\n return context;\n }\n}\n","import { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { ReaderUtil } from '../../reader/ReaderUtil';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarJsonWriters } from './CedarJsonWriters';\nimport { JsonAbstractArtifactWriter } from './JsonAbstractArtifactWriter';\nimport { TemplateInstance } from '../../../model/cedar/template-instance/TemplateInstance';\nimport { AbstractInstanceArtifact } from '../../../model/cedar/AbstractInstanceArtifact';\nimport { JsonTemplateInstanceContent } from '../../../model/cedar/util/serialization/JsonTemplateInstanceContent';\nimport { InstanceDataContainer } from '../../../model/cedar/template-instance/InstanceDataContainer';\nimport { InstanceDataAtomType } from '../../../model/cedar/template-instance/InstanceDataAtomType';\nimport { InstanceDataStringAtom } from '../../../model/cedar/template-instance/InstanceDataStringAtom';\nimport { InstanceDataTypedAtom } from '../../../model/cedar/template-instance/InstanceDataTypedAtom';\nimport { InstanceDataAttributeValueField } from '../../../model/cedar/template-instance/InstanceDataAttributeValueField';\nimport { InstanceDataAttributeValueFieldName } from '../../../model/cedar/template-instance/InstanceDataAttributeValueFieldName';\nimport { InstanceDataControlledAtom } from '../../../model/cedar/template-instance/InstanceDataControlledAtom';\nimport { InstanceDataLinkAtom } from '../../../model/cedar/template-instance/InstanceDataLinkAtom';\nimport { InstanceDataEmptyAtom } from '../../../model/cedar/template-instance/InstanceDataEmptyAtom';\nimport { InstanceDataEmptyNode } from '../../../model/cedar/template-instance/InstanceDataEmptyNode';\nimport { AttributeValueNamePolicy } from '../../../model/cedar/template-instance/AttributeValueNamePolicy';\n\nexport class JsonTemplateInstanceWriter extends JsonAbstractArtifactWriter {\n private constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected macroContext(_artifact: AbstractInstanceArtifact) {\n return JsonTemplateInstanceContent.CONTEXT_VERBATIM;\n }\n\n public static getFor(behavior: JsonWriterBehavior, writers: CedarJsonWriters): JsonTemplateInstanceWriter {\n return new JsonTemplateInstanceWriter(behavior, writers);\n }\n\n private buildContext(instance: TemplateInstance): JsonNode {\n // clone, because we will need to modify deep content\n const context = ReaderUtil.deepClone(JsonTemplateInstanceContent.CONTEXT_VERBATIM);\n\n Object.keys(instance.dataContainer.iris).forEach((key) => {\n context[key] = instance.dataContainer.iris[key];\n });\n\n // include the field/element definitions\n const extendedContext = {\n ...context,\n };\n\n return extendedContext;\n }\n\n private getDataTree(instance: TemplateInstance): JsonNode {\n const ret: JsonNode = JsonNode.getEmpty();\n this.serializeDataLevelInto(instance.dataContainer, ret, true);\n return ret;\n }\n\n private serializeDataLevelInto(dataContainer: InstanceDataContainer, into: JsonNode, isDocumentRoot: boolean = false) {\n // An element instance carries an identifier whether or not it has one: a template's schema lists\n // @id among an element instance's required properties, so omitting the key leaves an instance that\n // does not validate. A null is what an absent identifier looks like — an empty string is refused,\n // and inventing a URI, as the Java library used to, asserts an identity the artifact does not have\n // and makes every rendering differ from the last.\n //\n // The root is the artifact's own identifier rather than an occurrence's, and `getAsJsonNode` has\n // already written it from `at_id`. Writing it again here would overwrite that with the data\n // container's copy, which a *read* instance carries and a *built* one does not — so an instance a\n // host loaded to edit kept its IRI while one assembled through the builder lost it.\n if (!isDocumentRoot) {\n into[JsonSchema.atId] = dataContainer.id === '' ? null : dataContainer.id;\n }\n Object.keys(dataContainer.values).forEach((key) => {\n const dataAtom: InstanceDataAtomType = dataContainer.values[key];\n if (Array.isArray(dataAtom)) {\n const dataArray: JsonNode[] = JsonNode.getEmptyList();\n into[key] = dataArray;\n dataAtom.forEach((arrayElement: InstanceDataAtomType, _index: number) => {\n if (arrayElement instanceof InstanceDataAttributeValueFieldName) {\n // An attribute-value slot holds the attribute's *name*, and a list\n // can hold names alongside unfilled slots — a field with two slots\n // where the user has named one. `packAttributeValues` only folds a\n // list into an attribute-value field when every entry is a name, so\n // a part-named list arrives here as an ordinary list and the names\n // in it were dropped on the floor: the field came back missing the\n // attribute the user had named, while the property it pointed at\n // stayed behind as an orphan.\n const attributeName: string | null = (arrayElement as InstanceDataAttributeValueFieldName).name;\n // An unnamed row is editor state, not an attribute. Keep it in the\n // in-memory list so the user can finish typing, but never let an\n // empty property name escape in a serializable artifact.\n if (attributeName.trim().length > 0) {\n dataArray.push(attributeName as unknown as JsonNode);\n }\n return;\n }\n const serializedData: JsonNode | null = this.serializeCommonType(arrayElement);\n if (serializedData !== null) {\n dataArray.push(serializedData);\n }\n });\n } else {\n const serializedData: JsonNode | null = this.serializeCommonType(dataAtom);\n if (serializedData !== null) {\n into[key] = serializedData;\n }\n if (dataAtom instanceof InstanceDataAttributeValueField) {\n const keyList: string[] = [];\n Object.keys(dataAtom.values).forEach((subKey) => {\n keyList.push(subKey);\n });\n into[key] = keyList;\n }\n }\n });\n\n this.serializeAttributeValueFields(dataContainer, into);\n\n const atContext: JsonNode = JsonNode.getEmpty();\n Object.keys(dataContainer.iris).forEach((key) => {\n atContext[key] = dataContainer.iris[key];\n });\n into[JsonSchema.atContext] = atContext;\n }\n\n /**\n * One value atom as the JSON a CEDAR instance carries.\n *\n * The mirror of `JsonTemplateInstanceReader.readValueNode`, and public for\n * the same reason: a consumer writing values into an instance otherwise\n * spells the shapes out by hand — `{'@value': …}` here, `{'@id': …,\n * 'rdfs:label': …}` there — and the two ends drift. Values only; an element\n * is a container and needs a writer with the rest of the instance in hand.\n */\n public static writeValueNode(atom: InstanceDataAtomType): JsonNode | null {\n if (atom instanceof InstanceDataStringAtom) {\n return { [JsonSchema.atValue]: atom.value };\n }\n if (atom instanceof InstanceDataTypedAtom) {\n return { [JsonSchema.atValue]: atom.value, [JsonSchema.atType]: atom.type };\n }\n if (atom instanceof InstanceDataControlledAtom) {\n return { [JsonSchema.atId]: atom.id, [JsonSchema.rdfsLabel]: atom.label };\n }\n if (atom instanceof InstanceDataLinkAtom) {\n return { [JsonSchema.atId]: atom.id };\n }\n if (atom instanceof InstanceDataEmptyAtom || atom instanceof InstanceDataEmptyNode) {\n // An empty controlled-term field is `{}` in the instance, and it is a\n // present-but-unfilled field rather than an absent one. Returning null\n // here made the caller skip the key entirely, so the field disappeared\n // from the output — the reader had already classified it correctly as an\n // empty atom, and only the writer lost it.\n return JsonNode.getEmpty();\n }\n return null;\n }\n\n private serializeCommonType(atom: InstanceDataAtomType): JsonNode | null {\n if (atom instanceof InstanceDataContainer) {\n const elementContainer: JsonNode = JsonNode.getEmpty();\n this.serializeDataLevelInto(atom, elementContainer);\n return elementContainer;\n }\n return JsonTemplateInstanceWriter.writeValueNode(atom);\n }\n\n private serializeAtomString(atom: InstanceDataStringAtom) {\n return { [JsonSchema.atValue]: atom.value };\n }\n\n private serializeAttributeValueFields(dataContainer: InstanceDataContainer, into: JsonNode) {\n Object.keys(dataContainer.values).forEach((key) => {\n const dataAtom: InstanceDataAtomType = dataContainer.values[key];\n if (dataAtom instanceof InstanceDataAttributeValueField) {\n Object.keys(dataAtom.values).forEach((subKey) => {\n const atom = dataAtom.values[subKey];\n if (atom instanceof InstanceDataStringAtom) {\n into[subKey] = this.serializeAtomString(atom);\n }\n });\n }\n });\n }\n\n public getAsJsonString(instance: TemplateInstance, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(instance), null, indent);\n }\n\n public getAsJsonNode(instance: TemplateInstance): JsonNode {\n AttributeValueNamePolicy.assertValid(instance.dataContainer);\n const extendedContext: JsonNode = this.buildContext(instance);\n\n // build the final object\n return {\n [JsonSchema.atId]: this.atomicWriter.write(instance.at_id),\n ...this.macroSchemaNameAndDescription(instance),\n ...this.getDataTree(instance),\n ...this.macroAnnotations(instance),\n [JsonSchema.atContext]: extendedContext,\n ...this.macroIsBasedOn(instance),\n ...this.macroProvenance(instance, this.atomicWriter),\n ...this.macroDerivedFrom(instance),\n };\n }\n}\n","import { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { Template } from '../../../model/cedar/template/Template';\nimport { ReaderUtil } from '../../reader/ReaderUtil';\nimport { JsonTemplateContent } from '../../../model/cedar/util/serialization/JsonTemplateContent';\nimport { JsonSchema } from '../../../model/cedar/constants/JsonSchema';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { JavascriptType } from '../../../model/cedar/types/wrapped-types/JavascriptType';\nimport { TemplateProperty } from '../../../model/cedar/constants/TemplateProperty';\nimport { ArtifactSchema } from '../../../model/cedar/types/wrapped-types/ArtifactSchema';\nimport { JsonTemplateFieldContentDynamic } from '../../../model/cedar/util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonAbstractContainerArtifactWriter } from './JsonAbstractContainerArtifactWriter';\nimport { CedarJsonWriters } from './CedarJsonWriters';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\n\nexport class JsonTemplateWriter extends JsonAbstractContainerArtifactWriter {\n private constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n public static getFor(behavior: JsonWriterBehavior, writers: CedarJsonWriters): JsonTemplateWriter {\n return new JsonTemplateWriter(behavior, writers);\n }\n\n private buildProperties(template: Template): JsonNode {\n // clone, because we will need to modify deep content\n const properties = ReaderUtil.deepClone(JsonTemplateContent.PROPERTIES_PARTIAL);\n\n // @language\n if (template.language !== Language.NULL) {\n properties[JsonSchema.atContext][JsonSchema.atLanguage] = this.atomicWriter.write(template.language);\n }\n\n // Include the IRI mapping. The context may require exactly the terms it declares: a child with\n // no property IRI has no term yet, so the repository will add both when it assigns the IRI.\n const childIriMap = template.getChildrenInfo().getIRIMap();\n properties[JsonSchema.atContext][JsonSchema.properties] = {\n ...properties[JsonSchema.atContext][JsonSchema.properties],\n ...childIriMap,\n };\n\n const requiredChildren: string[] = Object.keys(childIriMap);\n\n properties[JsonSchema.atContext][JsonSchema.required] = [...properties[JsonSchema.atContext][JsonSchema.required], ...requiredChildren];\n\n // Attribute value modification\n if (template.getChildrenInfo().hasAttributeValue()) {\n properties[JsonSchema.atContext][TemplateProperty.additionalProperties] =\n JsonTemplateFieldContentDynamic.ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_INSIDE;\n }\n\n // include the field/element definitions\n const extendedProperties = {\n ...properties,\n ...this.getChildMapAsJson(template),\n };\n\n this.expandInstanceTypeSpecification(template, extendedProperties);\n\n return extendedProperties;\n }\n\n public getAsJsonString(template: Template, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(template), null, indent);\n }\n\n public getAsJsonNode(template: Template): JsonNode {\n const extendedProperties: JsonNode = this.buildProperties(template);\n\n const templateUI: JsonNode = {\n [CedarModel.order]: template.getChildrenInfo().getChildrenNames(),\n [CedarModel.propertyLabels]: template.getChildrenInfo().getPropertyLabelMap(template),\n [CedarModel.propertyDescriptions]: template.getChildrenInfo().getPropertyDescriptionMap(template),\n };\n if (this.behavior.outputPages()) {\n templateUI[CedarModel.pages] = [];\n }\n\n if (template.header !== null) {\n templateUI[CedarModel.header] = template.header;\n }\n if (template.footer !== null) {\n templateUI[CedarModel.footer] = template.footer;\n }\n\n // build the final object\n return {\n [JsonSchema.atId]: this.atomicWriter.write(template.at_id),\n [JsonSchema.atType]: this.atomicWriter.write(CedarArtifactType.TEMPLATE),\n [JsonSchema.atContext]: this.macroContext(template),\n [CedarModel.type]: this.atomicWriter.write(JavascriptType.OBJECT),\n [TemplateProperty.title]: template.title,\n [TemplateProperty.description]: template.description,\n [CedarModel.ui]: templateUI,\n [JsonSchema.properties]: extendedProperties,\n [JsonSchema.required]: [...JsonTemplateContent.REQUIRED_PARTIAL, ...template.getChildrenInfo().getChildrenNamesForRequired()],\n [TemplateProperty.additionalProperties]: this.atomicWriter.write(template.getAdditionalProperties()),\n ...this.macroAnnotations(template),\n ...this.macroSchemaNameAndDescription(template),\n ...this.macroProvenance(template, this.atomicWriter),\n ...this.macroStatusAndVersion(template, this.atomicWriter),\n ...this.macroDerivedFrom(template),\n ...this.macroPreviousVersion(template),\n [JsonSchema.schemaVersion]: this.atomicWriter.write(template.schema_schemaVersion),\n ...this.macroSchemaIdentifier(template),\n [CedarModel.schema]: this.atomicWriter.write(ArtifactSchema.CURRENT),\n };\n }\n}\n","import { CedarFieldType } from '../../../model/cedar/types/cedar-types/CedarFieldType';\nimport { YamlTemplateWriter } from './YamlTemplateWriter';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { ControlledTermOntology } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntology';\nimport { ControlledTermAbstractValueConstraint } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermAbstractValueConstraint';\nimport { ControlledTermClass } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClass';\nimport { ControlledTermBranch } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranch';\nimport { ControlledTermValueSet } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSet';\nimport { ControlledTermAction } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermAction';\nimport { YamlTemplateFieldWriterInternal } from './YamlTemplateFieldWriterInternal';\nimport { YamlFieldWriterTextField } from '../../../model/cedar/field/dynamic/textfield/YamlFieldWriterTextField';\nimport { YamlAtomicWriter } from './YamlAtomicWriter';\nimport { YamlAnnotationsWriter } from './YamlAnnotationsWriter';\nimport { YamlFieldWriterTextArea } from '../../../model/cedar/field/dynamic/textarea/YamlFieldWriterTextArea';\nimport { YamlFieldWriterTemporal } from '../../../model/cedar/field/dynamic/temporal/YamlFieldWriterTemporal';\nimport { YamlFieldWriterStaticPageBreak } from '../../../model/cedar/field/static/page-break/YamlFieldWriterStaticPageBreak';\nimport { YamlFieldWriterLink } from '../../../model/cedar/field/dynamic/link/YamlFieldWriterLink';\nimport { YAMLFieldWriterStaticSectionsBreak } from '../../../model/cedar/field/static/section-break/YamlFieldWriterStaticSectionBreak';\nimport { YamlFieldWriterStaticImage } from '../../../model/cedar/field/static/image/YamlFieldWriterStaticImage';\nimport { YamlFieldWriterStaticRichText } from '../../../model/cedar/field/static/rich-text/YamlFieldWriterStaticRichText';\nimport { YamlFieldWriterStaticYoutube } from '../../../model/cedar/field/static/youtube/YamlFieldWriterStaticYoutube';\nimport { YamlTemplateElementWriter } from './YamlTemplateElementWriter';\nimport { YamlFieldWriterAttributeValue } from '../../../model/cedar/field/dynamic/attribute-value/YamlFieldWriterAttributeValue';\nimport { AbstractYamlControlledTermValueConstraintWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/AbstractYamlControlledTermValueConstraintWriter';\nimport { YamlFieldWriterEmail } from '../../../model/cedar/field/dynamic/email/YamlFieldWriterEmail';\nimport { YamlFieldWriterNumeric } from '../../../model/cedar/field/dynamic/numeric/YamlFieldWriterNumeric';\nimport { YamlFieldWriterPhoneNumber } from '../../../model/cedar/field/dynamic/phone-number/YamlFieldWriterPhoneNumber';\nimport { YamlFieldWriterCheckbox } from '../../../model/cedar/field/dynamic/checkbox/YamlFieldWriterCheckbox';\nimport { YamlFieldWriterList } from '../../../model/cedar/field/dynamic/list/YamlFieldWriterList';\nimport { YamlFieldWriterRadio } from '../../../model/cedar/field/dynamic/radio/YamlFieldWriterRadio';\nimport { YamlFieldWriterControlledTerm } from '../../../model/cedar/field/dynamic/controlled-term/YamlFieldWriterControlledTerm';\nimport { YamlValueConstraintsOntologyWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/ontology/YamlValueConstraintsOntologyWriter';\nimport { YamlValueConstraintsClassWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/class/YamlValueConstraintsClassWriter';\nimport { YamlValueConstraintsBranchWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/branch/YamlValueConstraintsBranchWriter';\nimport { YamlValueConstraintsValueSetWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/value-set/YamlValueConstraintsValueSetWriter';\nimport { YamlValueConstraintsActionWriter } from '../../../model/cedar/field/dynamic/controlled-term/value-constraint/action/YamlValueConstraintsActionWriter';\nimport { YamlWriterBehavior } from '../../../behavior/YamlWriterBehavior';\nimport { YamlTemplateInstanceWriter } from './YamlTemplateInstanceWriter';\nimport { YamlFieldWriterExtRor } from '../../../model/cedar/field/dynamic/ext-ror/YamlFieldWriterExtRor';\nimport { YamlFieldWriterExtOrcid } from '../../../model/cedar/field/dynamic/ext-orcid/YamlFieldWriterExtOrcid';\nimport { YamlFieldWriterExtPfas } from '../../../model/cedar/field/dynamic/ext-pfas/YamlFieldWriterExtPfas';\nimport { YamlFieldWriterExtPubmed } from '../../../model/cedar/field/dynamic/ext-pubmed/YamlFieldWriterExtPubmed';\nimport { YamlFieldWriterExtRrid } from '../../../model/cedar/field/dynamic/ext-rrid/YamlFieldWriterExtRrid';\nimport { YamlFieldWriterExtNihGrantId } from '../../../model/cedar/field/dynamic/ext-nih-grant-id/YamlFieldWriterExtNihGrantId';\nimport { YamlFieldWriterExtDoi } from '../../../model/cedar/field/dynamic/ext-doi/YamlFieldWriterExtDoi';\n\nexport class CedarYamlWriters {\n private readonly behavior: YamlWriterBehavior;\n private readonly yamlDynamicFieldWriters: Map<CedarFieldType, YamlTemplateFieldWriterInternal>;\n private readonly yamlStaticFieldWriters: Map<CedarFieldType, YamlTemplateFieldWriterInternal>;\n private readonly yamlValueConstraintsWriters: Map<string, AbstractYamlControlledTermValueConstraintWriter>;\n private readonly yamlAtomicWriter: YamlAtomicWriter;\n private readonly yamlAnnotationsWriter: YamlAnnotationsWriter;\n private readonly yamlTemplateWriter: YamlTemplateWriter;\n private readonly yamlTemplateElementWriter: YamlTemplateElementWriter;\n private readonly yamlTemplateInstanceWriter: YamlTemplateInstanceWriter;\n\n private constructor(behavior: YamlWriterBehavior) {\n this.behavior = behavior;\n // YAML writers. Order is important\n this.yamlAtomicWriter = new YamlAtomicWriter(behavior);\n this.yamlAnnotationsWriter = new YamlAnnotationsWriter(behavior);\n this.yamlTemplateWriter = YamlTemplateWriter.getFor(behavior, this);\n this.yamlTemplateElementWriter = YamlTemplateElementWriter.getFor(behavior, this);\n this.yamlTemplateInstanceWriter = YamlTemplateInstanceWriter.getFor(behavior, this);\n\n this.yamlDynamicFieldWriters = new Map<CedarFieldType, YamlTemplateFieldWriterInternal>([\n [CedarFieldType.TEXT, new YamlFieldWriterTextField(behavior, this)],\n [CedarFieldType.TEXTAREA, new YamlFieldWriterTextArea(behavior, this)],\n [CedarFieldType.CONTROLLED_TERM, new YamlFieldWriterControlledTerm(behavior, this)],\n [CedarFieldType.PHONE_NUMBER, new YamlFieldWriterPhoneNumber(behavior, this)],\n [CedarFieldType.EMAIL, new YamlFieldWriterEmail(behavior, this)],\n [CedarFieldType.LINK, new YamlFieldWriterLink(behavior, this)],\n [CedarFieldType.EXT_ROR, new YamlFieldWriterExtRor(behavior, this)],\n [CedarFieldType.EXT_ORCID, new YamlFieldWriterExtOrcid(behavior, this)],\n [CedarFieldType.EXT_PFAS, new YamlFieldWriterExtPfas(behavior, this)],\n [CedarFieldType.EXT_PUBMED, new YamlFieldWriterExtPubmed(behavior, this)],\n [CedarFieldType.EXT_RRID, new YamlFieldWriterExtRrid(behavior, this)],\n [CedarFieldType.EXT_NIH_GRANT_ID, new YamlFieldWriterExtNihGrantId(behavior, this)],\n [CedarFieldType.EXT_DOI, new YamlFieldWriterExtDoi(behavior, this)],\n [CedarFieldType.NUMERIC, new YamlFieldWriterNumeric(behavior, this)],\n [CedarFieldType.TEMPORAL, new YamlFieldWriterTemporal(behavior, this)],\n [CedarFieldType.RADIO, new YamlFieldWriterRadio(behavior, this)],\n [CedarFieldType.CHECKBOX, new YamlFieldWriterCheckbox(behavior, this)],\n [CedarFieldType.SINGLE_SELECT_LIST, new YamlFieldWriterList(behavior, this)],\n [CedarFieldType.MULTIPLE_SELECT_LIST, new YamlFieldWriterList(behavior, this)],\n [CedarFieldType.ATTRIBUTE_VALUE, new YamlFieldWriterAttributeValue(behavior, this)],\n ]);\n\n this.yamlStaticFieldWriters = new Map<CedarFieldType, YamlTemplateFieldWriterInternal>([\n [CedarFieldType.STATIC_PAGE_BREAK, new YamlFieldWriterStaticPageBreak(behavior, this)],\n [CedarFieldType.STATIC_SECTION_BREAK, new YAMLFieldWriterStaticSectionsBreak(behavior, this)],\n [CedarFieldType.STATIC_IMAGE, new YamlFieldWriterStaticImage(behavior, this)],\n [CedarFieldType.STATIC_RICH_TEXT, new YamlFieldWriterStaticRichText(behavior, this)],\n [CedarFieldType.STATIC_YOUTUBE, new YamlFieldWriterStaticYoutube(behavior, this)],\n ]);\n\n this.yamlValueConstraintsWriters = new Map<string, AbstractYamlControlledTermValueConstraintWriter>([\n [ControlledTermOntology.className, new YamlValueConstraintsOntologyWriter(behavior, this)],\n [ControlledTermClass.className, new YamlValueConstraintsClassWriter(behavior, this)],\n [ControlledTermBranch.className, new YamlValueConstraintsBranchWriter(behavior, this)],\n [ControlledTermValueSet.className, new YamlValueConstraintsValueSetWriter(behavior, this)],\n [ControlledTermAction.className, new YamlValueConstraintsActionWriter(behavior, this)],\n ]);\n }\n\n public static getStrict(): CedarYamlWriters {\n return new CedarYamlWriters(YamlWriterBehavior.STRICT);\n }\n\n public static getFor(behavior: YamlWriterBehavior): CedarYamlWriters {\n return new CedarYamlWriters(behavior);\n }\n\n public getFieldWriterForType(cedarFieldType: CedarFieldType): YamlTemplateFieldWriterInternal {\n let writer: YamlTemplateFieldWriterInternal | undefined;\n if (cedarFieldType.isStaticField) {\n writer = this.yamlStaticFieldWriters.get(cedarFieldType);\n } else {\n writer = this.yamlDynamicFieldWriters.get(cedarFieldType);\n }\n if (writer) {\n return writer;\n }\n throw new Error(`No YAML writer found for field type: ${cedarFieldType.getValue()}`);\n }\n\n public getFieldWriterForField(field: TemplateField): YamlTemplateFieldWriterInternal {\n return this.getFieldWriterForType(field.cedarFieldType);\n }\n\n getAtomicWriter(): YamlAtomicWriter {\n return this.yamlAtomicWriter;\n }\n\n getAnnotationsWriter(): YamlAnnotationsWriter {\n return this.yamlAnnotationsWriter;\n }\n\n getTemplateWriter(): YamlTemplateWriter {\n return this.yamlTemplateWriter;\n }\n\n getTemplateElementWriter(): YamlTemplateElementWriter {\n return this.yamlTemplateElementWriter;\n }\n\n getTemplateInstanceWriter(): YamlTemplateInstanceWriter {\n return this.yamlTemplateInstanceWriter;\n }\n\n public getWriterForValueConstraint(object: ControlledTermAbstractValueConstraint): AbstractYamlControlledTermValueConstraintWriter {\n const className = object.className;\n const writer = this.yamlValueConstraintsWriters.get(className);\n if (writer) {\n return writer;\n }\n throw new Error(`No YAML writer found for class type: ${className}`);\n }\n}\n","import YAML, { isPair, isScalar, Scalar, ToStringOptions, visit } from 'yaml';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { mayWriteYamlValuePlain, plainScalarNeedsQuoting } from './YamlPlainScalarPolicy';\n\nconst options = {\n blockQuote: 'literal',\n doubleQuotedMinMultiLineLength: 1000000000,\n lineWidth: 0,\n minContentWidth: 0,\n defaultStringType: 'QUOTE_DOUBLE',\n defaultKeyType: 'PLAIN',\n doubleQuotedAsJSON: true,\n} as ToStringOptions;\n\nexport class SimpleYamlSerializer {\n static serialize(obj: JsonNode): string {\n const document = new YAML.Document(obj);\n visit(document, {\n Scalar(key, node, path) {\n if (key === 'key' && typeof node.value === 'string' && plainScalarNeedsQuoting(node.value)) {\n node.type = Scalar.QUOTE_DOUBLE;\n } else if (key === 'value' && typeof node.value === 'string') {\n const pair = path.at(-1);\n if (\n isPair(pair) &&\n isScalar(pair.key) &&\n typeof pair.key.value === 'string' &&\n mayWriteYamlValuePlain(pair.key.value, node.value)\n ) {\n node.type = Scalar.PLAIN;\n }\n }\n },\n });\n return document.toString(options).trim() + '\\n';\n }\n}\n","import { AbstractArtifactWriter } from '../AbstractArtifactWriter';\nimport { YamlAtomicWriter } from './YamlAtomicWriter';\nimport { AbstractSchemaArtifact } from '../../../model/cedar/AbstractSchemaArtifact';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { BiboStatus } from '../../../model/cedar/types/wrapped-types/BiboStatus';\nimport { PavVersion } from '../../../model/cedar/types/wrapped-types/PavVersion';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { YamlAnnotationsWriter } from './YamlAnnotationsWriter';\nimport { CedarUser } from '../../../model/cedar/types/cedar-types/CedarUser';\nimport { IsoDate } from '../../../model/cedar/types/wrapped-types/IsoDate';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { AbstractContainerArtifact } from '../../../model/cedar/AbstractContainerArtifact';\nimport { YamlArtifactType } from '../../../model/cedar/types/wrapped-types/YamlArtifactType';\nimport { Template } from '../../../model/cedar/template/Template';\nimport { YamlWriterBehavior } from '../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from './CedarYamlWriters';\nimport { ControlledTermFieldImpl } from '../../../model/cedar/field/dynamic/controlled-term/ControlledTermFieldImpl';\nimport { TextFieldImpl } from '../../../model/cedar/field/dynamic/textfield/TextFieldImpl';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\nimport { SchemaVersion } from '../../../model/cedar/types/wrapped-types/SchemaVersion';\nimport { AbstractArtifact } from '../../../model/cedar/AbstractArtifact';\nimport { AbstractInstanceArtifact } from '../../../model/cedar/AbstractInstanceArtifact';\nimport { TemplateInstance } from '../../../model/cedar/template-instance/TemplateInstance';\n\nexport abstract class YamlAbstractArtifactWriter extends AbstractArtifactWriter {\n protected behavior: YamlWriterBehavior;\n protected writers: CedarYamlWriters;\n\n protected atomicWriter: YamlAtomicWriter;\n protected annotationsWriter: YamlAnnotationsWriter;\n\n protected constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super();\n this.behavior = behavior;\n this.writers = writers;\n this.atomicWriter = writers.getAtomicWriter();\n this.annotationsWriter = writers.getAnnotationsWriter();\n }\n\n protected macroNameAndDescription(artifact: AbstractArtifact): JsonNode {\n const node: JsonNode = JsonNode.getEmpty();\n if (artifact instanceof AbstractSchemaArtifact) {\n if (artifact.language !== Language.NULL) {\n node[YamlKeys.language] = this.atomicWriter.write(artifact.language);\n }\n }\n node[YamlKeys.name] = artifact.schema_name;\n if (artifact.schema_description !== null && artifact.schema_description !== '') {\n node[YamlKeys.description] = artifact.schema_description;\n }\n return node;\n }\n\n protected macroStatusAndVersion(artifact: AbstractSchemaArtifact, isCompact: boolean): JsonNode {\n const svObject: JsonNode = JsonNode.getEmpty();\n if (!isCompact) {\n if (artifact.bibo_status !== BiboStatus.NULL) {\n svObject[YamlKeys.status] = this.atomicWriter.write(artifact.bibo_status);\n }\n if (artifact.pav_version !== PavVersion.NULL) {\n svObject[YamlKeys.version] = this.atomicWriter.write(artifact.pav_version);\n }\n svObject[YamlKeys.modelVersion] = this.atomicWriter.write(SchemaVersion.CURRENT);\n }\n return svObject;\n }\n\n /**\n * The type an instance of this container declares itself to be.\n *\n * The JSON Schema states it as an enum of one inside the `@type` property specification, which is\n * where both libraries read it from; the YAML says it in a key. Kept in the compact form too, since\n * it is part of what the artifact says rather than something the system recorded about it.\n */\n protected macroInstanceType(container: AbstractContainerArtifact): JsonNode {\n const ret: JsonNode = JsonNode.getEmpty();\n if (container.instanceTypeSpecification !== null) {\n ret[YamlKeys.instanceType] = container.instanceTypeSpecification;\n }\n return ret;\n }\n\n /** An element carries a preferred label and alternatives as a field does, and the JSON writer has\n * always written both for either. */\n protected macroSkos(artifact: TemplateField | TemplateElement): JsonNode {\n const skosObject: JsonNode = JsonNode.getEmpty();\n if (artifact.skos_prefLabel !== null) {\n skosObject[YamlKeys.prefLabel] = artifact.skos_prefLabel;\n }\n if (artifact.skos_altLabel !== null && artifact.skos_altLabel.length > 0) {\n skosObject[YamlKeys.altLabels] = artifact.skos_altLabel;\n }\n return skosObject;\n }\n\n protected macroValueRecommendation(field: TemplateField): JsonNode {\n const ret: JsonNode = JsonNode.getEmpty();\n if (field instanceof ControlledTermFieldImpl || field instanceof TextFieldImpl) {\n if (field.valueRecommendationEnabled) {\n ret[YamlKeys.valueRecommendation] = field.valueRecommendationEnabled;\n }\n }\n return ret;\n }\n\n protected macroProvenance(artifact: AbstractArtifact, isCompact: boolean): JsonNode {\n const prov = JsonNode.getEmpty();\n if (!isCompact) {\n if (artifact.pav_createdOn !== IsoDate.NULL) {\n prov[YamlKeys.createdOn] = this.atomicWriter.write(artifact.pav_createdOn);\n }\n if (artifact.pav_createdBy !== CedarUser.NULL) {\n prov[YamlKeys.createdBy] = this.atomicWriter.write(artifact.pav_createdBy);\n }\n if (artifact.pav_lastUpdatedOn !== IsoDate.NULL) {\n prov[YamlKeys.modifiedOn] = this.atomicWriter.write(artifact.pav_lastUpdatedOn);\n }\n if (artifact.oslc_modifiedBy !== CedarUser.NULL) {\n prov[YamlKeys.modifiedBy] = this.atomicWriter.write(artifact.oslc_modifiedBy);\n }\n }\n return prov;\n }\n\n protected macroSchemaIdentifier(artifact: AbstractSchemaArtifact): JsonNode {\n const schemaIdentifier: JsonNode = JsonNode.getEmpty();\n if (artifact.schema_identifier !== null) {\n schemaIdentifier[YamlKeys.identifier] = artifact.schema_identifier;\n }\n return schemaIdentifier;\n }\n\n protected macroType(artifact: AbstractArtifact): JsonNode {\n const typeAndId: JsonNode = JsonNode.getEmpty();\n typeAndId[YamlKeys.type] = this.getYamlType(artifact);\n return typeAndId;\n }\n\n /**\n * The artifact's own identifier.\n *\n * Compact schema YAML is an identity-free structural description. Repository identifiers belong\n * to stored schema artifacts, including embedded fields and elements, and therefore appear only in\n * the full form. The position parameter remains for source compatibility with existing specialized\n * writers; compactness alone determines whether an identifier is emitted.\n */\n protected macroId(artifact: AbstractArtifact, isCompact: boolean = false, _isDocumentRoot: boolean = true): JsonNode {\n const typeAndId: JsonNode = JsonNode.getEmpty();\n if (artifact.at_id !== CedarArtifactId.NULL && !isCompact) {\n typeAndId[YamlKeys.id] = this.atomicWriter.write(artifact.at_id);\n }\n return typeAndId;\n }\n\n protected macroDerivedFrom(artifact: AbstractArtifact, isCompact: boolean): JsonNode {\n const derivedFrom: JsonNode = JsonNode.getEmpty();\n if (!isCompact) {\n if (artifact.pav_derivedFrom !== CedarArtifactId.NULL) {\n derivedFrom[YamlKeys.derivedFrom] = this.atomicWriter.write(artifact.pav_derivedFrom);\n }\n }\n return derivedFrom;\n }\n\n protected macroIsBasedOn(artifact: AbstractInstanceArtifact): JsonNode {\n const isBasedOn: JsonNode = JsonNode.getEmpty();\n if (artifact.schema_isBasedOn !== CedarArtifactId.NULL) {\n isBasedOn[YamlKeys.isBasedOn] = this.atomicWriter.write(artifact.schema_isBasedOn);\n }\n return isBasedOn;\n }\n\n protected macroPreviousVersion(artifact: AbstractSchemaArtifact, isCompact: boolean): JsonNode {\n const previousVersion: JsonNode = JsonNode.getEmpty();\n if (!isCompact) {\n if (artifact.pav_previousVersion !== CedarArtifactId.NULL) {\n previousVersion[YamlKeys.previousVersion] = this.atomicWriter.write(artifact.pav_previousVersion);\n }\n }\n return previousVersion;\n }\n\n protected macroAnnotations(artifact: AbstractArtifact): JsonNode {\n return this.annotationsWriter.write(artifact.annotations);\n }\n\n protected getYamlType(artifact: AbstractArtifact) {\n if (artifact instanceof Template) {\n return YamlArtifactType.TEMPLATE.getValue();\n } else if (artifact instanceof TemplateElement) {\n return YamlArtifactType.ELEMENT.getValue();\n } else if (artifact instanceof TemplateField) {\n return artifact.cedarFieldType.getYamlType().getValue();\n } else if (artifact instanceof TemplateInstance) {\n return YamlArtifactType.TEMPLATE_INSTANCE.getValue();\n }\n return undefined;\n }\n}\n","import { AbstractContainerArtifact } from '../../../model/cedar/AbstractContainerArtifact';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateChild } from '../../../model/cedar/types/basic-types/TemplateChild';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { YamlAbstractArtifactWriter } from './YamlAbstractArtifactWriter';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { AbstractDynamicChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractDynamicChildDeploymentInfo';\nimport { WriterUtil } from '../WriterUtil';\nimport { isSizedStaticField } from '../../../model/cedar/field/static/SizedStaticField';\nimport { AbstractChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractChildDeploymentInfo';\n\nexport abstract class YamlAbstractContainerArtifactWriter extends YamlAbstractArtifactWriter {\n protected getChildListAsJSON(container: AbstractContainerArtifact, isCompact: boolean): JsonNode[] {\n const childList: JsonNode[] = JsonNode.getEmptyList();\n\n container\n .getChildrenInfo()\n .getChildrenNames()\n .forEach((childName: string) => {\n const child: TemplateChild | null = container.getChild(childName);\n if (child != null) {\n let childDefinition: JsonNode = JsonNode.getEmpty();\n const childMetaAbstract: AbstractChildDeploymentInfo | null = container.getChildrenInfo().get(childName);\n if (childMetaAbstract !== null) {\n // Put child deployment name\n childDefinition[YamlKeys.key] = childName;\n if (child instanceof TemplateField) {\n childDefinition = {\n ...childDefinition,\n ...this.writers.getFieldWriterForType(child.cedarFieldType).getYamlAsJsonNode(child, childMetaAbstract, isCompact, false),\n };\n } else {\n childDefinition = {\n ...childDefinition,\n ...this.writers.getTemplateElementWriter().getYamlAsJsonNode(child, isCompact, false),\n };\n }\n const deploymentInfo: JsonNode = this.getDeploymentInfo(child, childMetaAbstract, isCompact);\n if (JsonNode.hasEntries(deploymentInfo)) {\n childDefinition[YamlKeys.configuration] = deploymentInfo;\n }\n childList.push(childDefinition);\n }\n }\n });\n\n return childList;\n }\n\n private getDeploymentInfo(child: TemplateChild | null, childMeta: AbstractChildDeploymentInfo, isCompact: boolean): JsonNode {\n const childConfiguration: JsonNode = JsonNode.getEmpty();\n if (childMeta instanceof AbstractDynamicChildDeploymentInfo) {\n if (childMeta.requiredValue) {\n childConfiguration[YamlKeys.required] = true;\n }\n if (childMeta.hidden) {\n childConfiguration[YamlKeys.hidden] = true;\n }\n if (childMeta.recommendedValue) {\n childConfiguration[YamlKeys.recommended] = true;\n }\n if (childMeta.iri !== null) {\n if (!isCompact) {\n childConfiguration[YamlKeys.propertyIri] = childMeta.iri;\n }\n }\n }\n if (childMeta.label !== null && childMeta.label !== child?.schema_name) {\n childConfiguration[YamlKeys.overrideLabel] = childMeta.label;\n }\n if (childMeta.description !== null && childMeta.description !== child?.schema_description) {\n childConfiguration[YamlKeys.overrideDescription] = childMeta.description;\n }\n if (childMeta instanceof AbstractDynamicChildDeploymentInfo) {\n if (childMeta.continuePreviousLine) {\n childConfiguration[YamlKeys.continuePreviousLine] = true;\n }\n if (childMeta.valueRecommendationEnabled && child instanceof TemplateField && child.supportsValueRecommendation()) {\n childConfiguration[YamlKeys.valueRecommendation] = true;\n }\n }\n\n const { isMultiInstance, minItems: constMinItems, maxItems: constMaxItems } = WriterUtil.getMultiMinMax(child!, childMeta);\n let minItems = constMinItems;\n let maxItems = constMaxItems;\n\n if (isMultiInstance) {\n if (minItems === null) {\n minItems = 0;\n }\n if (maxItems !== null && maxItems < minItems) {\n maxItems = minItems;\n }\n if (child?.isMultiInstanceByDefinition() || child?.isSingleInstanceByDefinition()) {\n // Do not add multi info\n } else {\n childConfiguration[YamlKeys.multiple] = true;\n childConfiguration[YamlKeys.minItems] = minItems;\n if (maxItems !== null) {\n childConfiguration[YamlKeys.maxItems] = maxItems;\n }\n }\n }\n\n // A static field's display size is the parent's business, so it goes here rather than among the\n // field's own keys — where it sat, and where the specification puts it only for a field written\n // standalone, with no parent to hold it.\n if (isSizedStaticField(child)) {\n if (child.width !== null) {\n childConfiguration[YamlKeys.width] = child.width;\n }\n if (child.height !== null) {\n childConfiguration[YamlKeys.height] = child.height;\n }\n }\n return childConfiguration;\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { Annotations } from '../../../model/cedar/annotation/Annotations';\nimport { AnnotationAtId } from '../../../model/cedar/annotation/AnnotationAtId';\nimport { AnnotationAtValue } from '../../../model/cedar/annotation/AnnotationAtValue';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { YamlWriterBehavior } from '../../../behavior/YamlWriterBehavior';\n\nexport class YamlAnnotationsWriter {\n private behavior: YamlWriterBehavior;\n\n public constructor(behavior: YamlWriterBehavior) {\n this.behavior = behavior;\n }\n\n public write(annotations: Annotations | null): JsonNode {\n const annotationsJson: JsonNode = JsonNode.getEmpty();\n const annotationMap: JsonNode = JsonNode.getEmpty();\n if (annotations !== null && annotations.getSize() > 0) {\n annotations.getAnnotationNames().forEach((name) => {\n const src = annotations.get(name);\n if (src instanceof AnnotationAtId) {\n const annotation = {\n [YamlKeys.id]: src.getAtId(),\n };\n annotationMap[name] = annotation;\n } else if (src instanceof AnnotationAtValue) {\n const annotation = {\n [YamlKeys.value]: src.getAtValue(),\n };\n annotationMap[name] = annotation;\n }\n });\n annotationsJson[YamlKeys.annotations] = annotationMap;\n }\n return annotationsJson;\n }\n}\n","import { JsonWriterBehavior } from '../../../behavior/JsonWriterBehavior';\nimport { JsonAtomicWriter } from '../json/JsonAtomicWriter';\nimport { CedarArtifactType } from '../../../model/cedar/types/cedar-types/CedarArtifactType';\nimport { NullableString } from '../../../model/cedar/types/basic-types/NullableString';\nimport { BioportalTermType, BioportalTermTypeYamlValue } from '../../../model/cedar/types/bioportal-types/BioportalTermType';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { CedarArtifactId } from '../../../model/cedar/types/cedar-types/CedarArtifactId';\nimport { JavascriptType } from '../../../model/cedar/types/wrapped-types/JavascriptType';\nimport { IsoDate } from '../../../model/cedar/types/wrapped-types/IsoDate';\nimport { CedarUser } from '../../../model/cedar/types/cedar-types/CedarUser';\nimport { BiboStatus } from '../../../model/cedar/types/wrapped-types/BiboStatus';\nimport { PavVersion } from '../../../model/cedar/types/wrapped-types/PavVersion';\nimport { ArtifactSchema } from '../../../model/cedar/types/wrapped-types/ArtifactSchema';\nimport { SchemaVersion } from '../../../model/cedar/types/wrapped-types/SchemaVersion';\nimport { NumberType } from '../../../model/cedar/types/wrapped-types/NumberType';\nimport { TemporalType } from '../../../model/cedar/types/wrapped-types/TemporalType';\nimport { TemporalGranularity } from '../../../model/cedar/types/wrapped-types/TemporalGranularity';\nimport { TimeFormat } from '../../../model/cedar/types/wrapped-types/TimeFormat';\nimport { UiInputType } from '../../../model/cedar/types/wrapped-types/UiInputType';\nimport { AdditionalProperties } from '../../../model/cedar/types/wrapped-types/AdditionalProperties';\nimport { Iri } from '../../../model/cedar/types/wrapped-types/Iri';\nimport { YamlWriterBehavior } from '../../../behavior/YamlWriterBehavior';\nimport { Language } from '../../../model/cedar/types/wrapped-types/Language';\n\nexport class YamlAtomicWriter extends JsonAtomicWriter {\n public constructor(_behavior: YamlWriterBehavior) {\n super(JsonWriterBehavior.STRICT);\n }\n\n protected override writeCedarArtifactType(type: CedarArtifactType): NullableString {\n return type.getYamlValue();\n }\n\n public write(\n arg:\n | CedarArtifactId\n | CedarArtifactType\n | JavascriptType\n | IsoDate\n | CedarUser\n | BiboStatus\n | PavVersion\n | ArtifactSchema\n | SchemaVersion\n | NumberType\n | TemporalType\n | TemporalGranularity\n | TimeFormat\n | UiInputType\n | AdditionalProperties\n | Iri\n | BioportalTermType\n | Language\n | null,\n ): string | number | boolean | JsonNode | null {\n if (arg == null) {\n return null;\n }\n if (arg instanceof BiboStatus) {\n return this.writeBiboStatusYaml(arg);\n } else if (arg instanceof BioportalTermType) {\n return this.writeBioportalTermTypeYaml(arg);\n } else {\n return super.write(arg);\n }\n }\n\n private writeBiboStatusYaml(status: BiboStatus): NullableString {\n return status.getYamlValue();\n }\n\n private writeBioportalTermTypeYaml(termType: BioportalTermType): BioportalTermTypeYamlValue {\n return termType.getYamlValue();\n }\n}\n","import { YamlValues } from '../../../model/cedar/constants/YamlValues';\nimport { BioportalTermTypeYamlValues } from '../../../model/cedar/types/bioportal-types/BioportalTermType';\nimport { BiboStatusYamlValues } from '../../../model/cedar/types/wrapped-types/BiboStatus';\nimport { NumberTypeValues } from '../../../model/cedar/types/wrapped-types/NumberType';\nimport { TemporalGranularityValues } from '../../../model/cedar/types/wrapped-types/TemporalGranularity';\nimport { TemporalTypeValues } from '../../../model/cedar/types/wrapped-types/TemporalType';\nimport { TimeFormatValues } from '../../../model/cedar/types/wrapped-types/TimeFormat';\nimport { YamlArtifactTypeValues } from '../../../model/cedar/types/wrapped-types/YamlArtifactType';\n\n// Spellings resolved as numbers, booleans, or null by a YAML 1.1 or 1.2 reader. The Java library's\n// YamlScalarQuotingChecker applies the same cross-version boundary.\nconst someReaderWouldClaim = [\n /^(y|Y|n|N|yes|Yes|YES|no|No|NO|on|On|ON|off|Off|OFF|true|True|TRUE|false|False|FALSE)$/,\n /^(null|Null|NULL|~|<<|=)$/,\n /^[-+]?[0-9][0-9_]*$/,\n /^[-+]?0[xX][0-9a-fA-F_]+$/,\n /^[-+]?0[bB][01_]+$/,\n /^[-+]?0[oO]?[0-7_]+$/,\n /^[-+]?[0-9_]*\\.?[0-9_]+([eE][-+]?[0-9]+)?$/,\n /^[-+]?\\.(inf|Inf|INF|nan|NaN|NAN)$/,\n /^[-+]?[0-9][0-9_]*(:[0-5]?[0-9])+(\\.[0-9_]*)?$/,\n];\n\nfunction plainCannotCarry(text: string): boolean {\n for (const character of text) {\n const codePoint = character.codePointAt(0) ?? 0;\n const control =\n codePoint === 0x09 || codePoint === 0x0d || (codePoint <= 0x1f && codePoint !== 0x0a) || (codePoint >= 0x7f && codePoint <= 0xa0);\n const exoticSpace =\n codePoint === 0x1680 ||\n (codePoint >= 0x2000 && codePoint <= 0x200a) ||\n codePoint === 0x2028 ||\n codePoint === 0x2029 ||\n codePoint === 0x202f ||\n codePoint === 0x205f ||\n codePoint === 0x3000 ||\n codePoint === 0xfeff;\n if (control || exoticSpace) {\n return true;\n }\n }\n return text.startsWith(' ') || text.endsWith(' ') || text.includes(' \\n') || text.length === 0;\n}\n\nexport function plainScalarNeedsQuoting(text: string): boolean {\n return someReaderWouldClaim.some((pattern) => pattern.test(text)) || plainCannotCarry(text);\n}\n\nconst typeValues = new Set<string>([\n ...Object.values(YamlArtifactTypeValues),\n 'element-instance',\n YamlValues.Controlled.class,\n BioportalTermTypeYamlValues.VALUE,\n YamlValues.Controlled.ontology,\n YamlValues.Controlled.branch,\n YamlValues.Controlled.valueSet,\n]);\n\nconst datatypeValues = new Set<string>([\n 'xsd:string',\n 'xsd:anyUri',\n ...Object.values(TemporalTypeValues),\n ...Object.values(NumberTypeValues),\n YamlValues.iri,\n]);\n\nconst versionPattern = /^\\d+\\.\\d+\\.\\d+$/;\n\n// These are the only string-valued YAML positions owned completely by CEDAR. Every other string is\n// left double-quoted, even when its current spelling happens to be safe as a plain scalar.\nconst closedVocabularies: ReadonlyMap<string, ReadonlySet<string>> = new Map([\n ['type', typeValues],\n ['status', new Set(Object.values(BiboStatusYamlValues))],\n ['datatype', datatypeValues],\n ['action', new Set(['move', 'delete'])],\n ['granularity', new Set(Object.values(TemporalGranularityValues))],\n ['termType', new Set(Object.values(BioportalTermTypeYamlValues))],\n ['inputTimeFormat', new Set(Object.values(TimeFormatValues))],\n]);\n\nexport const yamlPlainScalarFields: ReadonlySet<string> = new Set([...closedVocabularies.keys(), 'version', 'modelVersion']);\n\nexport function mayWriteYamlValuePlain(field: string, value: string): boolean {\n const inVocabulary =\n closedVocabularies.get(field)?.has(value) ?? ((field === 'version' || field === 'modelVersion') && versionPattern.test(value));\n return inVocabulary && !plainScalarNeedsQuoting(value);\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { SimpleYamlSerializer } from './SimpleYamlSerializer';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { YamlAbstractContainerArtifactWriter } from './YamlAbstractContainerArtifactWriter';\nimport { TemplateElement } from '../../../model/cedar/element/TemplateElement';\nimport { YamlWriterBehavior } from '../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from './CedarYamlWriters';\n\nexport class YamlTemplateElementWriter extends YamlAbstractContainerArtifactWriter {\n private constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n public static getFor(behavior: YamlWriterBehavior, writers: CedarYamlWriters): YamlTemplateElementWriter {\n return new YamlTemplateElementWriter(behavior, writers);\n }\n\n public getYamlAsJsonNode(element: TemplateElement, isCompact: boolean = false, isDocumentRoot: boolean = true): JsonNode {\n // build the final object\n const template: JsonNode = {\n ...this.macroType(element),\n ...this.macroNameAndDescription(element),\n ...this.macroSchemaIdentifier(element),\n ...this.macroId(element, isCompact, isDocumentRoot),\n ...this.macroStatusAndVersion(element, isCompact),\n ...this.macroInstanceType(element),\n ...this.macroPreviousVersion(element, isCompact),\n ...this.macroDerivedFrom(element, isCompact),\n ...this.macroProvenance(element, isCompact),\n ...this.macroSkos(element),\n ...this.macroAnnotations(element),\n };\n const children: JsonNode[] = this.getChildListAsJSON(element, isCompact);\n if (children.length > 0) {\n template[YamlKeys.children] = children;\n }\n return template;\n }\n\n public getAsYamlString(element: TemplateElement, isCompact: boolean = false): string {\n return SimpleYamlSerializer.serialize(this.getYamlAsJsonNode(element, isCompact));\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { TemplateField } from '../../../model/cedar/field/TemplateField';\nimport { CedarModel } from '../../../model/cedar/constants/CedarModel';\nimport { ChildDeploymentInfo } from '../../../model/cedar/deployment/ChildDeploymentInfo';\nimport { CheckboxField } from '../../../model/cedar/field/dynamic/checkbox/CheckboxField';\nimport { ListField } from '../../../model/cedar/field/dynamic/list/ListField';\nimport { RadioField } from '../../../model/cedar/field/dynamic/radio/RadioField';\nimport { ChoiceOptionEntity } from '../../../model/cedar/field/ChoiceOptionEntity';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { YamlAbstractArtifactWriter } from './YamlAbstractArtifactWriter';\nimport { SimpleYamlSerializer } from './SimpleYamlSerializer';\nimport { YamlWriterBehavior } from '../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from './CedarYamlWriters';\nimport { AbstractChildDeploymentInfo } from '../../../model/cedar/deployment/AbstractChildDeploymentInfo';\n\nexport abstract class YamlTemplateFieldWriterInternal extends YamlAbstractArtifactWriter {\n protected constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n public getAsYamlString(field: TemplateField, isCompact: boolean = false): string {\n return SimpleYamlSerializer.serialize(this.getYamlAsJsonNode(field, ChildDeploymentInfo.empty(), isCompact));\n }\n\n public getYamlAsJsonNode(field: TemplateField): JsonNode;\n\n public getYamlAsJsonNode(field: TemplateField, childInfo: AbstractChildDeploymentInfo): JsonNode;\n\n public getYamlAsJsonNode(field: TemplateField, childInfo: AbstractChildDeploymentInfo, isCompact: boolean): JsonNode;\n\n public getYamlAsJsonNode(\n field: TemplateField,\n childInfo: AbstractChildDeploymentInfo,\n isCompact: boolean,\n isDocumentRoot: boolean,\n ): JsonNode;\n\n public getYamlAsJsonNode(\n field: TemplateField,\n childInfo: AbstractChildDeploymentInfo = ChildDeploymentInfo.empty(),\n isCompact: boolean = false,\n isDocumentRoot: boolean = true,\n ): JsonNode {\n // Build ui wrapper\n const uiObject: JsonNode = this.buildUIObject(field, childInfo);\n\n // Build value constraints wrapper\n const vcObject: JsonNode = this.buildValueConstraintsObject(field, childInfo);\n\n // build the final object\n return {\n ...this.macroType(field),\n ...this.macroNameAndDescription(field),\n ...this.macroSchemaIdentifier(field),\n ...this.macroId(field, isCompact, isDocumentRoot),\n ...this.macroStatusAndVersion(field, isCompact),\n ...this.macroSkos(field),\n ...uiObject,\n ...vcObject,\n ...this.macroValueRecommendation(field),\n ...this.macroPreviousVersion(field, isCompact),\n ...this.macroDerivedFrom(field, isCompact),\n ...this.macroProvenance(field, isCompact),\n ...this.macroAnnotations(field),\n };\n }\n\n protected expandUINodeForYAML(_field: TemplateField): JsonNode {\n return JsonNode.getEmpty();\n }\n\n protected expandValueConstraintsNodeForYAML(_vcNode: JsonNode, _field: TemplateField, _childInfo: AbstractChildDeploymentInfo): void {}\n\n protected buildValueConstraintsObject(field: TemplateField, childInfo: AbstractChildDeploymentInfo): JsonNode {\n const vcNode: JsonNode = JsonNode.getEmpty();\n this.expandValueConstraintsNodeForYAML(vcNode, field, childInfo);\n return vcNode;\n }\n\n protected expandLiterals(field: CheckboxField | ListField | RadioField, vcNode: JsonNode) {\n const literals: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.literals.forEach((option: ChoiceOptionEntity) => {\n const literal = JsonNode.getEmpty();\n literal[CedarModel.label] = option.label;\n if (option.selectedByDefault) {\n literal[YamlKeys.selected] = option.selectedByDefault;\n }\n literals.push(literal);\n });\n if (literals.length > 0) {\n vcNode[YamlKeys.values] = literals;\n }\n }\n\n protected buildUIObject(field: TemplateField, _childInfo: AbstractChildDeploymentInfo): JsonNode {\n return this.expandUINodeForYAML(field);\n }\n}\n","import { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { SimpleYamlSerializer } from './SimpleYamlSerializer';\nimport { YamlWriterBehavior } from '../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from './CedarYamlWriters';\nimport { YamlAbstractArtifactWriter } from './YamlAbstractArtifactWriter';\nimport { TemplateInstance } from '../../../model/cedar/template-instance/TemplateInstance';\nimport { InstanceDataContainer } from '../../../model/cedar/template-instance/InstanceDataContainer';\nimport { InstanceDataAtomType } from '../../../model/cedar/template-instance/InstanceDataAtomType';\nimport { InstanceDataAttributeValueField } from '../../../model/cedar/template-instance/InstanceDataAttributeValueField';\nimport { InstanceDataStringAtom } from '../../../model/cedar/template-instance/InstanceDataStringAtom';\nimport { InstanceDataLinkAtom } from '../../../model/cedar/template-instance/InstanceDataLinkAtom';\nimport { InstanceDataTypedAtom } from '../../../model/cedar/template-instance/InstanceDataTypedAtom';\nimport { InstanceDataControlledAtom } from '../../../model/cedar/template-instance/InstanceDataControlledAtom';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { AttributeValueNamePolicy } from '../../../model/cedar/template-instance/AttributeValueNamePolicy';\nimport { InstanceDataAttributeValueFieldName } from '../../../model/cedar/template-instance/InstanceDataAttributeValueFieldName';\n\nconst ELEMENT_INSTANCE_TYPE = 'element-instance';\n\nexport class YamlTemplateInstanceWriter extends YamlAbstractArtifactWriter {\n private constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n public static getFor(behavior: YamlWriterBehavior, writers: CedarYamlWriters): YamlTemplateInstanceWriter {\n return new YamlTemplateInstanceWriter(behavior, writers);\n }\n\n public getYamlAsJsonNode(instance: TemplateInstance, isCompact: boolean = false): JsonNode {\n AttributeValueNamePolicy.assertValid(instance.dataContainer);\n // build the final object\n return {\n ...this.macroType(instance),\n ...this.macroNameAndDescription(instance),\n ...this.macroId(instance, isCompact, true),\n ...this.macroIsBasedOn(instance),\n ...this.macroDerivedFrom(instance, isCompact),\n ...this.macroProvenance(instance, isCompact),\n ...this.getDataTree(instance, isCompact),\n ...this.macroAnnotations(instance),\n } as JsonNode;\n }\n\n public getAsYamlString(instance: TemplateInstance, isCompact: boolean = false): string {\n return SimpleYamlSerializer.serialize(this.getYamlAsJsonNode(instance, isCompact));\n }\n\n private getDataTree(instance: TemplateInstance, isCompact: boolean): JsonNode {\n const ret: JsonNode = JsonNode.getEmpty();\n this.serializeDataLevelInto(instance.dataContainer, ret, isCompact, true);\n return ret;\n }\n\n private serializeDataLevelInto(\n dataContainer: InstanceDataContainer,\n into: JsonNode,\n isCompact: boolean,\n isDocumentRoot: boolean = false,\n ): void {\n const target = JsonNode.getEmpty();\n const unpackedAttributeValueGroups = this.getUnpackedAttributeValueGroups(dataContainer);\n const unpackedAttributeNames = new Set(Array.from(unpackedAttributeValueGroups.values()).flat());\n Object.keys(dataContainer.values).forEach((key) => {\n // CEE edits attribute-value fields as a list of name slots plus sibling\n // value atoms. They belong at the container level under their field name,\n // not in `children` as unrelated ordinary fields.\n if (unpackedAttributeValueGroups.has(key) || unpackedAttributeNames.has(key)) {\n return;\n }\n const dataAtom: InstanceDataAtomType = dataContainer.values[key];\n if (Array.isArray(dataAtom)) {\n const dataArray: JsonNode[] = JsonNode.getEmptyList();\n dataAtom.forEach((arrayElement: InstanceDataAtomType, _index: number) => {\n const serializedData: JsonNode | null = this.serializeCommonType(arrayElement, isCompact);\n if (serializedData !== null && JsonNode.hasEntries(serializedData)) {\n dataArray.push(serializedData);\n } else if (arrayElement instanceof InstanceDataContainer) {\n // The number and order of repeated element occurrences is data. An\n // appended-but-empty element therefore cannot disappear, while an\n // empty repeated field can. The discriminator is the same one the\n // Java YAML reader uses to distinguish this stub from a field.\n const stub: JsonNode = { [YamlKeys.type]: ELEMENT_INSTANCE_TYPE };\n if (this.hasId(arrayElement.id)) {\n stub[YamlKeys.id] = arrayElement.id;\n }\n dataArray.push(stub);\n }\n });\n if (dataArray.length > 0) {\n target[key] = dataArray;\n }\n } else {\n const serializedData: JsonNode | null = this.serializeCommonType(dataAtom, isCompact);\n if (serializedData !== null && JsonNode.hasEntries(serializedData)) {\n target[key] = serializedData;\n }\n }\n });\n\n // A container is meaningful only when it carries a child value or an\n // attribute-value group. Its generated JSON-LD id alone is reconstructable\n // from the template and would be ambiguous with a field in YAML.\n if (JsonNode.hasEntries(target)) {\n // The instance's own identifier stays out of the compact form, with the rest of what a\n // repository assigns; a nested element occurrence keeps its own, which is data.\n if (this.hasId(dataContainer.id) && !(isCompact && isDocumentRoot)) {\n into[YamlKeys.id] = dataContainer.id;\n }\n into[YamlKeys.children] = target;\n }\n this.serializeAttributeValueFields(dataContainer, into, unpackedAttributeValueGroups);\n }\n\n private serializeAttributeValueFields(\n dataContainer: InstanceDataContainer,\n into: JsonNode,\n unpackedGroups: ReadonlyMap<string, string[]>,\n ) {\n Object.keys(dataContainer.values).forEach((key) => {\n const dataAtom: InstanceDataAtomType = dataContainer.values[key];\n if (dataAtom instanceof InstanceDataAttributeValueField) {\n const wrapper: JsonNode = JsonNode.getEmpty();\n let addedav = false;\n Object.keys(dataAtom.values).forEach((subKey) => {\n const atom = dataAtom.values[subKey];\n if (atom instanceof InstanceDataStringAtom) {\n const serialized = this.serializeAtomString(atom);\n if (serialized !== null) {\n wrapper[subKey] = serialized;\n addedav = true;\n }\n }\n });\n if (addedav) {\n into[key] = wrapper;\n }\n }\n });\n\n for (const [groupName, attributeNames] of unpackedGroups) {\n const wrapper: JsonNode = JsonNode.getEmpty();\n for (const attributeName of attributeNames) {\n const atom = dataContainer.values[attributeName];\n if (atom instanceof InstanceDataStringAtom) {\n const serialized = this.serializeAtomString(atom);\n if (serialized !== null) {\n wrapper[attributeName] = serialized;\n }\n }\n }\n if (JsonNode.hasEntries(wrapper)) {\n into[groupName] = wrapper;\n }\n }\n }\n\n private getUnpackedAttributeValueGroups(dataContainer: InstanceDataContainer): Map<string, string[]> {\n const groups = new Map<string, string[]>();\n for (const [key, value] of Object.entries(dataContainer.values)) {\n if (!Array.isArray(value)) {\n continue;\n }\n const names = value\n .filter((item): item is InstanceDataAttributeValueFieldName => item instanceof InstanceDataAttributeValueFieldName)\n .map((item) => item.name)\n .filter((name) => name.trim().length > 0);\n if (names.length > 0) {\n groups.set(key, names);\n }\n }\n return groups;\n }\n\n private serializeCommonType(atom: InstanceDataAtomType, isCompact: boolean): JsonNode | null {\n if (atom instanceof InstanceDataStringAtom) {\n return this.serializeAtomString(atom);\n }\n if (atom instanceof InstanceDataTypedAtom) {\n return atom.value === null ? null : { [YamlKeys.datatype]: atom.type, [YamlKeys.value]: atom.value };\n }\n if (atom instanceof InstanceDataControlledAtom) {\n const controlled: JsonNode = JsonNode.getEmpty();\n if (this.hasId(atom.id)) {\n controlled[YamlKeys.id] = atom.id;\n }\n if (atom.label !== null) {\n controlled[YamlKeys.label] = atom.label;\n }\n return JsonNode.hasEntries(controlled) ? controlled : null;\n }\n if (atom instanceof InstanceDataLinkAtom) {\n return this.serializeAtomLink(atom);\n }\n if (atom instanceof InstanceDataContainer) {\n const elementContainer: JsonNode = JsonNode.getEmpty();\n this.serializeDataLevelInto(atom, elementContainer, isCompact);\n return elementContainer;\n }\n\n return null;\n }\n\n private serializeAtomString(atom: InstanceDataStringAtom): JsonNode | null {\n return atom.value === null ? null : { [YamlKeys.value]: atom.value };\n }\n\n private serializeAtomLink(atom: InstanceDataLinkAtom): JsonNode | null {\n return this.hasId(atom.id) ? { [YamlKeys.id]: atom.id } : null;\n }\n\n private hasId(id: string | null): id is string {\n return id !== null && id !== '';\n }\n}\n","import { Template } from '../../../model/cedar/template/Template';\nimport { JsonNode } from '../../../model/cedar/types/basic-types/JsonNode';\nimport { SimpleYamlSerializer } from './SimpleYamlSerializer';\nimport { YamlKeys } from '../../../model/cedar/constants/YamlKeys';\nimport { YamlAbstractContainerArtifactWriter } from './YamlAbstractContainerArtifactWriter';\nimport { YamlWriterBehavior } from '../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from './CedarYamlWriters';\n\nexport class YamlTemplateWriter extends YamlAbstractContainerArtifactWriter {\n private constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n public static getFor(behavior: YamlWriterBehavior, writers: CedarYamlWriters): YamlTemplateWriter {\n return new YamlTemplateWriter(behavior, writers);\n }\n\n public getYamlAsJsonNode(template: Template, isCompact: boolean = false): JsonNode {\n const uiObject: JsonNode = JsonNode.getEmpty();\n if (template.header !== null) {\n uiObject[YamlKeys.header] = template.header;\n }\n if (template.footer !== null) {\n uiObject[YamlKeys.footer] = template.footer;\n }\n // build the final object\n const element: JsonNode = {\n ...this.macroType(template),\n ...this.macroNameAndDescription(template),\n ...this.macroSchemaIdentifier(template),\n ...this.macroId(template, isCompact, true),\n ...this.macroStatusAndVersion(template, isCompact),\n ...this.macroInstanceType(template),\n ...uiObject,\n ...this.macroPreviousVersion(template, isCompact),\n ...this.macroDerivedFrom(template, isCompact),\n ...this.macroProvenance(template, isCompact),\n ...this.macroAnnotations(template),\n };\n const children: JsonNode[] = this.getChildListAsJSON(template, isCompact);\n if (children.length > 0) {\n element[YamlKeys.children] = children;\n }\n\n return element;\n }\n\n public getAsYamlString(template: Template, isCompact: boolean = false): string {\n return SimpleYamlSerializer.serialize(this.getYamlAsJsonNode(template, isCompact));\n }\n}\n","import { IsoDate } from './types/wrapped-types/IsoDate';\nimport { CedarUser } from './types/cedar-types/CedarUser';\nimport { PavVersion } from './types/wrapped-types/PavVersion';\nimport { BiboStatus } from './types/wrapped-types/BiboStatus';\nimport { CedarArtifactId } from './types/cedar-types/CedarArtifactId';\nimport { SchemaVersion } from './types/wrapped-types/SchemaVersion';\nimport { AbstractSchemaArtifact } from './AbstractSchemaArtifact';\n\nexport abstract class AbstractArtifactBuilder {\n protected at_id: CedarArtifactId = CedarArtifactId.NULL;\n protected title: string | null = null;\n protected description: string | null = null;\n protected schema_schemaVersion: SchemaVersion = SchemaVersion.CURRENT;\n // provenance\n protected pav_createdOn: IsoDate = IsoDate.NULL;\n protected pav_createdBy: CedarUser = CedarUser.NULL;\n protected pav_lastUpdatedOn: IsoDate = IsoDate.NULL;\n protected oslc_modifiedBy: CedarUser = CedarUser.NULL;\n // status and version\n protected pav_version: PavVersion = PavVersion.DEFAULT;\n protected bibo_status: BiboStatus = BiboStatus.DRAFT;\n // schema name and description\n protected schema_name: string | null = null;\n protected schema_description: string | null = null;\n protected schema_identifier: string | null = null;\n //\n protected pav_derivedFrom: CedarArtifactId = CedarArtifactId.NULL;\n\n withAtId(at_id: CedarArtifactId | string): this {\n if (at_id instanceof CedarArtifactId) {\n this.at_id = at_id;\n } else {\n this.at_id = CedarArtifactId.forValue(at_id);\n }\n return this;\n }\n\n withTitle(title: string | null): this {\n this.title = title;\n return this;\n }\n\n withDescription(description: string | null): this {\n this.description = description;\n return this;\n }\n\n withSchemaVersion(schema_schemaVersion: SchemaVersion): this {\n this.schema_schemaVersion = schema_schemaVersion;\n return this;\n }\n\n withCreatedOn(createdOn: IsoDate | string | null): this {\n if (createdOn instanceof IsoDate) {\n this.pav_createdOn = createdOn;\n } else {\n this.pav_createdOn = IsoDate.forValue(createdOn);\n }\n return this;\n }\n\n withCreatedBy(createdBy: CedarUser | string): this {\n if (createdBy instanceof CedarUser) {\n this.pav_createdBy = createdBy;\n } else {\n this.pav_createdBy = CedarUser.forValue(createdBy);\n }\n return this;\n }\n\n withLastUpdatedOn(lastUpdatedOn: IsoDate | string | null): this {\n if (lastUpdatedOn instanceof IsoDate) {\n this.pav_lastUpdatedOn = lastUpdatedOn;\n } else {\n this.pav_lastUpdatedOn = IsoDate.forValue(lastUpdatedOn);\n }\n return this;\n }\n\n withModifiedBy(modifiedBy: CedarUser | string): this {\n if (modifiedBy instanceof CedarUser) {\n this.oslc_modifiedBy = modifiedBy;\n } else {\n this.oslc_modifiedBy = CedarUser.forValue(modifiedBy);\n }\n return this;\n }\n\n withVersion(version: PavVersion | string): this {\n if (version instanceof PavVersion) {\n this.pav_version = version;\n } else {\n this.pav_version = PavVersion.forValue(version);\n }\n return this;\n }\n\n withStatus(bibo_status: BiboStatus | string): this {\n if (bibo_status instanceof BiboStatus) {\n this.bibo_status = bibo_status;\n } else {\n this.bibo_status = BiboStatus.forJsonValue(bibo_status);\n }\n return this;\n }\n\n withSchemaName(schema_name: string | null): this {\n this.schema_name = schema_name;\n return this;\n }\n\n withSchemaDescription(schema_description: string | null): this {\n this.schema_description = schema_description;\n return this;\n }\n\n withDerivedFrom(pav_derivedFrom: CedarArtifactId): this {\n this.pav_derivedFrom = pav_derivedFrom;\n return this;\n }\n\n public withSchemaIdentifier(schema_identifier: string): this {\n this.schema_identifier = schema_identifier;\n return this;\n }\n\n protected buildInternal(artifact: AbstractSchemaArtifact): void {\n artifact.at_id = this.at_id;\n artifact.title = this.title;\n artifact.description = this.description;\n artifact.schema_schemaVersion = this.schema_schemaVersion;\n\n artifact.pav_createdOn = this.pav_createdOn;\n artifact.pav_createdBy = this.pav_createdBy;\n artifact.pav_lastUpdatedOn = this.pav_lastUpdatedOn;\n artifact.oslc_modifiedBy = this.oslc_modifiedBy;\n\n artifact.pav_version = this.pav_version;\n artifact.bibo_status = this.bibo_status;\n\n artifact.schema_name = this.schema_name;\n artifact.schema_description = this.schema_description;\n artifact.schema_identifier = this.schema_identifier;\n\n artifact.pav_derivedFrom = this.pav_derivedFrom;\n }\n}\n","import { IsoDate } from './types/wrapped-types/IsoDate';\nimport { CedarUser } from './types/cedar-types/CedarUser';\nimport { CedarArtifactId } from './types/cedar-types/CedarArtifactId';\nimport { CedarArtifactType } from './types/cedar-types/CedarArtifactType';\nimport { NullableString } from './types/basic-types/NullableString';\nimport { Annotations } from './annotation/Annotations';\n\nexport abstract class AbstractArtifact {\n public at_id: CedarArtifactId = CedarArtifactId.NULL;\n // provenance\n public pav_createdOn: IsoDate = IsoDate.NULL;\n public pav_createdBy: CedarUser = CedarUser.NULL;\n public pav_lastUpdatedOn: IsoDate = IsoDate.NULL;\n public oslc_modifiedBy: CedarUser = CedarUser.NULL;\n public pav_derivedFrom: CedarArtifactId = CedarArtifactId.NULL;\n\n // schema name and description\n public schema_name: NullableString = null;\n public schema_description: NullableString = null;\n //\n public cedarArtifactType: CedarArtifactType = CedarArtifactType.NULL;\n\n //\n public annotations: Annotations | null = null;\n}\n","import { AbstractSchemaArtifact } from './AbstractSchemaArtifact';\nimport { ContainerArtifactChildrenInfo } from './deployment/ContainerArtifactChildrenInfo';\nimport { TemplateChild } from './types/basic-types/TemplateChild';\nimport { AdditionalProperties } from './types/wrapped-types/AdditionalProperties';\nimport { TemplateElement } from './element/TemplateElement';\nimport { TemplateField } from './field/TemplateField';\nimport { CedarArtifactType } from './types/cedar-types/CedarArtifactType';\nimport { AbstractChildDeploymentInfo } from './deployment/AbstractChildDeploymentInfo';\n\nexport abstract class AbstractContainerArtifact extends AbstractSchemaArtifact {\n // Children\n private childrenInfo: ContainerArtifactChildrenInfo = new ContainerArtifactChildrenInfo();\n private childMap: Map<string, TemplateChild> = new Map<string, TemplateChild>();\n public instanceTypeSpecification: string | null = null;\n\n addChild(templateChild: TemplateChild, deploymentInfo: AbstractChildDeploymentInfo): void {\n this.childrenInfo.add(deploymentInfo);\n this.childMap.set(deploymentInfo.name, templateChild);\n }\n\n getChildrenInfo(): ContainerArtifactChildrenInfo {\n return this.childrenInfo;\n }\n\n getAdditionalProperties(): AdditionalProperties {\n if (this.childrenInfo.hasAttributeValue()) {\n return AdditionalProperties.ALLOW_ATTRIBUTE_VALUE;\n } else {\n return AdditionalProperties.FALSE;\n }\n }\n\n getChild(childName: string): TemplateChild | null {\n return this.childMap.get(childName) ?? null;\n }\n\n getElement(childName: string): TemplateElement | null {\n const templateChild: TemplateChild | null = this.getChild(childName);\n if (templateChild !== null && templateChild.cedarArtifactType === CedarArtifactType.TEMPLATE_ELEMENT) {\n return templateChild as TemplateElement;\n }\n return null;\n }\n\n getField(childName: string): TemplateField | null {\n const templateChild: TemplateChild | null = this.getChild(childName);\n if (templateChild !== null && templateChild.cedarArtifactType === CedarArtifactType.TEMPLATE_FIELD) {\n return templateChild as TemplateField;\n }\n return null;\n }\n\n getChildInfo(childName: string): AbstractChildDeploymentInfo | null {\n return this.childrenInfo.get(childName);\n }\n}\n","import { CedarArtifactId } from './types/cedar-types/CedarArtifactId';\nimport { AbstractArtifact } from './AbstractArtifact';\n\nexport abstract class AbstractInstanceArtifact extends AbstractArtifact {\n public schema_isBasedOn: CedarArtifactId = CedarArtifactId.NULL;\n}\n","import { PavVersion } from './types/wrapped-types/PavVersion';\nimport { BiboStatus } from './types/wrapped-types/BiboStatus';\nimport { CedarArtifactId } from './types/cedar-types/CedarArtifactId';\nimport { SchemaVersion } from './types/wrapped-types/SchemaVersion';\nimport { NullableString } from './types/basic-types/NullableString';\nimport { AbstractArtifact } from './AbstractArtifact';\nimport { AbstractChildDeploymentInfoBuilder } from './deployment/AbstractChildDeploymentInfoBuilder';\nimport { Language } from './types/wrapped-types/Language';\n\nexport abstract class AbstractSchemaArtifact extends AbstractArtifact {\n public title: NullableString = null;\n public description: NullableString = null;\n public schema_schemaVersion: SchemaVersion = SchemaVersion.NULL;\n // status and version\n public pav_version: PavVersion = PavVersion.NULL;\n public bibo_status: BiboStatus = BiboStatus.NULL;\n\n public schema_identifier: NullableString = null;\n //\n public pav_previousVersion: CedarArtifactId = CedarArtifactId.NULL;\n //\n public language: Language = Language.NULL;\n\n abstract isMultiInstanceByDefinition(): boolean;\n\n abstract isSingleInstanceByDefinition(): boolean;\n\n abstract createDeploymentBuilder(childName: string): AbstractChildDeploymentInfoBuilder;\n}\n","import { Annotation } from './Annotation';\n\nexport class AnnotationAtId implements Annotation {\n private readonly name: string;\n private readonly id: string;\n\n constructor(name: string, id: string) {\n this.name = name;\n this.id = id;\n }\n\n getName(): string {\n return this.name;\n }\n\n getAtId() {\n return this.id;\n }\n}\n","import { Annotation } from './Annotation';\n\nexport class AnnotationAtValue implements Annotation {\n private readonly name: string;\n private readonly value: string;\n\n constructor(name: string, value: string) {\n this.name = name;\n this.value = value;\n }\n getName(): string {\n return this.name;\n }\n\n getAtValue(): string {\n return this.value;\n }\n}\n","import { Annotation } from './Annotation';\n\nexport class Annotations {\n private annotations: Map<string, Annotation> = new Map<string, Annotation>();\n\n add(annotation: Annotation) {\n this.annotations.set(annotation.getName(), annotation);\n }\n\n getSize(): number {\n return this.annotations.size;\n }\n\n getAnnotationNames(): Array<string> {\n return Array.from(this.annotations.keys());\n }\n\n get(name: string): Annotation | null {\n if (this.annotations.has(name)) {\n return this.annotations.get(name)!;\n } else {\n return null;\n }\n }\n}\n","export class CedarModel {\n static ui = '_ui';\n static schema = '$schema';\n static order = 'order';\n static inputType = 'inputType';\n static type = 'type';\n static items = 'items';\n static valueConstraints = '_valueConstraints';\n static requiredValue = 'requiredValue';\n static defaultValue = 'defaultValue';\n static minItems = 'minItems';\n static maxItems = 'maxItems';\n static minLength = 'minLength';\n static maxLength = 'maxLength';\n static numberType = 'numberType';\n static temporalType = 'temporalType';\n static temporalGranularity = 'temporalGranularity';\n static timezoneEnabled = 'timezoneEnabled';\n static inputTimeFormat = 'inputTimeFormat';\n static unitOfMeasure = 'unitOfMeasure';\n static minValue = 'minValue';\n static maxValue = 'maxValue';\n static decimalPlace = 'decimalPlace';\n static content = '_content';\n static size = '_size';\n static width = 'width';\n static height = 'height';\n static regex = 'regex';\n static pages = 'pages';\n static header = 'header';\n static footer = 'footer';\n\n static ontologies = 'ontologies';\n static valueSets = 'valueSets';\n static classes = 'classes';\n static branches = 'branches';\n static actions = 'actions';\n\n static multipleChoice = 'multipleChoice';\n static literals = 'literals';\n static label = 'label';\n static selectedByDefault = 'selectedByDefault';\n\n static propertyDescriptions = 'propertyDescriptions';\n static propertyLabels = 'propertyLabels';\n\n static skosPrefLabel = 'skos:prefLabel';\n static skosAltLabel = 'skos:altLabel';\n static skosNotation = 'skos:notation';\n\n static format = 'format';\n static enum = 'enum';\n\n static annotations = '_annotations';\n\n /**\n * The IRI prefix a child property is addressed by in an instance's `@context`.\n *\n * Was commented out here while the same string stayed hardcoded in\n * `ContainerArtifactChildrenInfo.getChildIriMap`, which mints one for any child\n * whose template declares none — so the prefix existed twice, once as a literal\n * and once as a comment. CEE mints the same shape for a newly named\n * attribute-value property and had its own copy of the constant to do it.\n *\n * One definition, used by both.\n */\n static propertyIriPrefix = 'https://schema.metadatacenter.org/properties/';\n\n // static baseTemplateURL = 'https://schema.metadatacenter.org';\n // static templateFieldType = CedarModel.baseTemplateURL + '/core/TemplateField';\n // static templateElementType = CedarModel.baseTemplateURL + '/core/TemplateElement';\n // static templateStaticFieldType = CedarModel.baseTemplateURL + '/core/StaticTemplateField';\n\n static ValueConstraints = class {\n static acronym = 'acronym';\n static name = 'name';\n static uri = 'uri';\n static numTerms: string = 'numTerms';\n\n static label = 'label';\n static source = 'source';\n static type = 'type';\n static termType = 'termType';\n static prefLabel: string = 'prefLabel';\n\n static maxDepth: string = 'maxDepth';\n\n static vsCollection: string = 'vsCollection';\n\n static termUri: string = 'termUri';\n static sourceUri: string = 'sourceUri';\n\n // The source-explicit keys. All optional, and a constraint written before they existed carries\n // none of them: `iri` is the source ontology's canonical identity, `sourceSystem` names the system\n // serving it, and `version` pins one snapshot.\n static iri: string = 'iri';\n static sourceSystem: string = 'sourceSystem';\n static version: string = 'version';\n static versionId: string = 'id';\n static versionEffectiveDate: string = 'effectiveDate';\n static versionDeclaredVersion: string = 'declaredVersion';\n\n static action: string = 'action';\n static to: string = 'to';\n\n static recommendedValue = 'recommendedValue';\n };\n\n static Ui = class {\n static hidden = 'hidden';\n static continuePreviousLine = 'continuePreviousLine';\n static valueRecommendationEnabled = 'valueRecommendationEnabled';\n };\n\n static nullEnabled = 'nullEnabled';\n static trueLabel = 'true';\n static falseLabel = 'false';\n static nullLabel = 'null';\n static labels = 'labels';\n}\n","export class JsonSchema {\n static properties: string = 'properties';\n static required: string = 'required';\n\n static atContext: string = '@context';\n static atId: string = '@id';\n static atType: string = '@type';\n static atValue: string = '@value';\n static atLanguage: string = '@language';\n static schemaIsBasedOn: string = 'schema:isBasedOn';\n static schemaName: string = 'schema:name';\n static schemaDescription: string = 'schema:description';\n static schemaVersion: string = 'schema:schemaVersion';\n static schemaIdentifier: string = 'schema:identifier';\n static pavDerivedFrom: string = 'pav:derivedFrom';\n static pavPreviousVersion: string = 'pav:previousVersion';\n static pavCreatedOn: string = 'pav:createdOn';\n static pavCreatedBy: string = 'pav:createdBy';\n static pavLastUpdatedOn: string = 'pav:lastUpdatedOn';\n static oslcModifiedBy: string = 'oslc:modifiedBy';\n static pavVersion: string = 'pav:version';\n static biboStatus: string = 'bibo:status';\n static rdfsLabel: string = 'rdfs:label';\n static termUri: string = 'termUri';\n static enum: string = 'enum';\n static oneOf: string = 'oneOf';\n static type: string = 'type';\n static items: string = 'items';\n\n // special properties used to add attribute-value fields to the model\n}\n","export class NonStandardDatatype {\n static IRI: string = 'iri';\n}\n","export class TemplateProperty {\n static title = 'title';\n static description = 'description';\n static additionalProperties = 'additionalProperties';\n}\n","export class YamlKeys {\n static id: string = 'id';\n static type: string = 'type';\n static name: string = 'name';\n static description: string = 'description';\n static modelVersion: string = 'modelVersion';\n static status: string = 'status';\n static version: string = 'version';\n\n static language: string = 'language';\n\n static label: string = 'label';\n static prefLabel: string = 'prefLabel';\n static altLabels: string = 'altLabels';\n\n static datatype: string = 'datatype';\n static valueRecommendation: string = 'valueRecommendation';\n\n static required: string = 'required';\n static recommended: string = 'recommended';\n static hidden: string = 'hidden';\n static continuePreviousLine = 'continuePreviousLine';\n static propertyIri: string = 'propertyIri';\n static overrideLabel: string = 'overrideLabel';\n static overrideDescription: string = 'overrideDescription';\n\n static default: string = 'default';\n static minLength: string = 'minLength';\n static maxLength: string = 'maxLength';\n static regex: string = 'regex';\n\n static identifier: string = 'identifier';\n\n static derivedFrom: string = 'derivedFrom';\n static previousVersion: string = 'previousVersion';\n static createdOn: string = 'createdOn';\n static createdBy: string = 'createdBy';\n static modifiedOn: string = 'modifiedOn';\n static modifiedBy: string = 'modifiedBy';\n static isBasedOn: string = 'isBasedOn';\n\n /** The type an instance of this template or element declares itself to be. */\n static instanceType: string = 'instanceType';\n\n static annotations: string = 'annotations';\n static value: string = 'value';\n\n static granularity: string = 'granularity';\n static inputTimeZone: string = 'inputTimeZone';\n static inputTimeFormat: string = 'inputTimeFormat';\n\n static header: string = 'header';\n static footer: string = 'footer';\n\n static children: string = 'children';\n\n static multiple: string = 'multiple';\n static minItems: string = 'minItems';\n static maxItems: string = 'maxItems';\n\n static content: string = 'content';\n static height: string = 'height';\n static width: string = 'width';\n\n static key: string = 'key';\n\n static minValue: string = 'minValue';\n static maxValue: string = 'maxValue';\n static decimalPlaces: string = 'decimalPlaces';\n static unit: string = 'unit';\n\n static multipleChoice: string = 'multipleChoice';\n\n static values: string = 'values';\n static selected: string = 'selected';\n\n static actions: string = 'actions';\n static action: string = 'action';\n\n static configuration: string = 'configuration';\n\n static Controlled = class {\n // A value-constraint entry names a vocabulary and a term within it, and the two groups of keys say\n // which: `source*` is the vocabulary, `term*` the term or branch. The keys were once a mix of\n // `acronym`, `ontologyName`, `iri` and `valueSetName`, where `iri` identified a different thing in\n // each of the four entry kinds and no key said which vocabulary system served it.\n static sourceSystem: string = 'sourceSystem';\n static sourceAcronym: string = 'sourceAcronym';\n static sourceName: string = 'sourceName';\n static sourceIri: string = 'sourceIri';\n static termIri: string = 'termIri';\n static termType: string = 'termType';\n static termLabel: string = 'termLabel';\n static termDisplayLabel: string = 'termDisplayLabel';\n static termBaseIri: string = 'termBaseIri';\n static termBaseLabel: string = 'termBaseLabel';\n static termMaxDepth: string = 'termMaxDepth';\n static termCount: string = 'termCount';\n\n // The version triple, nested under `version`. Absent means the entry resolves against the latest\n // snapshot of its source.\n static versionId: string = 'id';\n static versionEffectiveDate: string = 'effectiveDate';\n static versionDeclaredVersion: string = 'declaredVersion';\n\n static to: string = 'to';\n };\n\n static nullEnabled: string = 'nullEnabled';\n // A boolean field's labels are a block keyed by the value they label, as the JSON nests them and as\n // the Java library writes them. They were three flat keys here, which neither of the other two\n // recognised, so the labels were lost whenever a document crossed between them.\n static labels: string = 'labels';\n static trueLabel: string = 'true';\n static falseLabel: string = 'false';\n static nullLabel: string = 'null';\n}\n","export class YamlValues {\n static id: string = 'id';\n static value: string = 'value';\n static iri: string = 'iri';\n static string: string = 'string';\n\n static Controlled = class {\n static class: string = 'class';\n static ontology: string = 'ontology';\n static valueSet: string = 'valueSet';\n static branch: string = 'branch';\n };\n}\n","import { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\nimport { UiInputType } from '../types/wrapped-types/UiInputType';\nimport { NullableString } from '../types/basic-types/NullableString';\n\nexport abstract class AbstractChildDeploymentInfo {\n protected readonly _name: string;\n protected _atType: CedarArtifactType = CedarArtifactType.NULL;\n protected _uiInputType: UiInputType = UiInputType.NULL;\n\n protected _label: NullableString = null;\n protected _description: NullableString = null;\n\n /**\n * `_ui.hidden`, which any child can carry — element and static alike, not\n * only the dynamic fields that used to declare it. It lived on the dynamic\n * subclass, so a hidden element or a hidden static field parsed as visible\n * and any consumer rendering from the parsed model showed it.\n */\n protected _hidden: boolean = false;\n\n protected constructor(name: string) {\n this._name = name;\n }\n\n get name(): string {\n return this._name;\n }\n\n /**\n * Whether this describes a child held by a parent.\n *\n * A parent names every child it holds, so an unnamed deployment is the one a field written on its\n * own carries: nothing decides anything about it, because nothing holds it. What a parent decides —\n * the override labels, the cardinality, a static field's display size — is written only for a child.\n */\n hasParent(): boolean {\n return this._name !== '';\n }\n\n get atType(): CedarArtifactType {\n return this._atType;\n }\n\n set atType(value: CedarArtifactType) {\n this._atType = value;\n }\n\n get uiInputType(): UiInputType {\n return this._uiInputType;\n }\n\n set uiInputType(value: UiInputType) {\n this._uiInputType = value;\n }\n\n get label(): NullableString {\n return this._label;\n }\n\n set label(value: NullableString) {\n this._label = value;\n }\n\n get description(): NullableString {\n return this._description;\n }\n\n set description(value: NullableString) {\n this._description = value;\n }\n\n get hidden(): boolean {\n return this._hidden;\n }\n\n set hidden(value: boolean) {\n this._hidden = value;\n }\n\n abstract isMultiInAnyWay(): boolean;\n}\n","import { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\nimport { UiInputType } from '../types/wrapped-types/UiInputType';\nimport { TemplateChild } from '../types/basic-types/TemplateChild';\nimport { TemplateField } from '../field/TemplateField';\nimport { NullableString } from '../types/basic-types/NullableString';\nimport { AbstractChildDeploymentInfo } from './AbstractChildDeploymentInfo';\n\nexport abstract class AbstractChildDeploymentInfoBuilder {\n protected readonly child: TemplateChild | null = null;\n protected readonly name: string = '';\n protected atType: CedarArtifactType = CedarArtifactType.NULL;\n protected uiInputType: UiInputType = UiInputType.NULL;\n\n protected label: NullableString = null;\n protected description: NullableString = null;\n protected hidden: boolean = false;\n\n protected constructor(child: TemplateChild, name: string) {\n this.child = child;\n this.name = name;\n }\n\n public withLabel(label: NullableString): this {\n this.label = label;\n return this;\n }\n\n public withDescription(description: NullableString): this {\n this.description = description;\n return this;\n }\n\n public withHidden(hidden: boolean): this {\n this.hidden = hidden;\n return this;\n }\n\n abstract build(): AbstractChildDeploymentInfo;\n\n protected setCommonData(info: AbstractChildDeploymentInfo) {\n info.label = this.label;\n info.description = this.description;\n info.hidden = this.hidden;\n\n info.atType = this.atType;\n info.uiInputType = this.uiInputType;\n\n if (this.child != null) {\n info.atType = this.child.cedarArtifactType;\n if (this.child instanceof TemplateField) {\n info.uiInputType = this.child.cedarFieldType.getUiInputType();\n }\n }\n }\n}\n","import { NullableNumber } from '../types/basic-types/NullableNumber';\nimport { NullableString } from '../types/basic-types/NullableString';\nimport { AbstractChildDeploymentInfo } from './AbstractChildDeploymentInfo';\n\nexport abstract class AbstractDynamicChildDeploymentInfo extends AbstractChildDeploymentInfo {\n protected _iri: NullableString = null;\n\n protected _requiredValue: boolean = false;\n private _recommendedValue: boolean = false;\n protected _continuePreviousLine: boolean = false;\n private _valueRecommendationEnabled: boolean = false;\n\n protected constructor(name: string) {\n super(name);\n }\n\n get iri(): NullableString {\n return this._iri;\n }\n\n set iri(value: NullableString) {\n this._iri = value;\n }\n\n get requiredValue(): boolean {\n return this._requiredValue;\n }\n\n set requiredValue(value: boolean) {\n this._requiredValue = value;\n }\n\n get recommendedValue(): boolean {\n return this._recommendedValue;\n }\n\n set recommendedValue(value: boolean) {\n this._recommendedValue = value;\n }\n\n get continuePreviousLine(): boolean {\n return this._continuePreviousLine;\n }\n\n set continuePreviousLine(value: boolean) {\n this._continuePreviousLine = value;\n }\n\n get valueRecommendationEnabled(): boolean {\n return this._valueRecommendationEnabled;\n }\n\n set valueRecommendationEnabled(value: boolean) {\n this._valueRecommendationEnabled = value;\n }\n\n abstract isMultiInAnyWay(): boolean;\n\n /**\n * How many instances of this child the template allows.\n *\n * Answerable for every dynamic child, not only the ones whose cardinality is\n * spelled out in the schema: a checkbox or a multiple-choice list is multiple\n * by definition and its bounds follow from `requiredValue`, and an\n * attribute-value field always starts at zero. `WriterUtil.getMultiMinMax`\n * knew those rules but kept them to itself, so a consumer reading the parsed\n * model saw nothing where the template — and the JSON either library writes\n * — has `minItems`. Null means unbounded.\n */\n get minItems(): NullableNumber {\n return null;\n }\n\n get maxItems(): NullableNumber {\n return null;\n }\n}\n","import { NullableString } from '../types/basic-types/NullableString';\nimport { TemplateChild } from '../types/basic-types/TemplateChild';\nimport { AbstractDynamicChildDeploymentInfo } from './AbstractDynamicChildDeploymentInfo';\nimport { ChildDeploymentInfo } from './ChildDeploymentInfo';\nimport { AbstractChildDeploymentInfoBuilder } from './AbstractChildDeploymentInfoBuilder';\n\nexport class AbstractDynamicChildDeploymentInfoBuilder extends AbstractChildDeploymentInfoBuilder {\n protected iri: NullableString = null;\n protected requiredValue: boolean = false;\n protected recommendedValue: boolean = false;\n protected continuePreviousLine: boolean = false;\n protected valueRecommendationEnabled: boolean = false;\n\n constructor(child: TemplateChild, name: string) {\n super(child, name);\n }\n\n public withIri(iri: NullableString): this {\n this.iri = iri;\n return this;\n }\n\n public withRequiredValue(requiredValue: boolean): this {\n this.requiredValue = requiredValue;\n return this;\n }\n\n public withRecommendedValue(recommendedValue: boolean): this {\n this.recommendedValue = recommendedValue;\n return this;\n }\n\n public withContinuePreviousLine(continuePreviousLine: boolean): this {\n this.continuePreviousLine = continuePreviousLine;\n return this;\n }\n\n public withValueRecommendationEnabled(enabled: boolean): this {\n this.valueRecommendationEnabled = enabled;\n return this;\n }\n\n public build(): AbstractDynamicChildDeploymentInfo {\n const info: ChildDeploymentInfo = new ChildDeploymentInfo(this.name);\n this.setCommonData(info);\n return info;\n }\n\n protected setCommonData(info: AbstractDynamicChildDeploymentInfo) {\n super.setCommonData(info);\n info.iri = this.iri;\n info.requiredValue = this.requiredValue;\n info.recommendedValue = this.recommendedValue;\n info.continuePreviousLine = this.continuePreviousLine;\n info.valueRecommendationEnabled = this.valueRecommendationEnabled;\n }\n}\n","import { NullableNumber } from '../types/basic-types/NullableNumber';\nimport { AbstractDynamicChildDeploymentInfo } from './AbstractDynamicChildDeploymentInfo';\n\nexport class ChildDeploymentInfo extends AbstractDynamicChildDeploymentInfo {\n protected _multiInstance: boolean = false;\n protected _minItems: NullableNumber = null;\n protected _maxItems: NullableNumber = null;\n protected _standalone: boolean = false;\n\n public static empty(): ChildDeploymentInfo {\n return new ChildDeploymentInfo('');\n }\n\n public static standalone(): ChildDeploymentInfo {\n const info: ChildDeploymentInfo = new ChildDeploymentInfo('');\n info._standalone = true;\n return info;\n }\n\n constructor(name: string) {\n super(name);\n }\n\n get multiInstance(): boolean {\n return this._multiInstance;\n }\n\n set multiInstance(value: boolean) {\n this._multiInstance = value;\n }\n\n get minItems(): NullableNumber {\n return this._minItems;\n }\n\n set minItems(value: NullableNumber) {\n this._minItems = value;\n }\n\n get maxItems(): NullableNumber {\n return this._maxItems;\n }\n\n set maxItems(value: NullableNumber) {\n this._maxItems = value;\n }\n\n isMultiInAnyWay(): boolean {\n return this._multiInstance;\n }\n\n isStandalone(): boolean {\n return this._standalone;\n }\n}\n","import { NullableNumber } from '../types/basic-types/NullableNumber';\nimport { UiInputType } from '../types/wrapped-types/UiInputType';\nimport { AbstractDynamicChildDeploymentInfo } from './AbstractDynamicChildDeploymentInfo';\n\nexport class ChildDeploymentInfoAlwaysMultiple extends AbstractDynamicChildDeploymentInfo {\n private _declaredMinItems: NullableNumber = null;\n private _declaredMaxItems: NullableNumber = null;\n\n public static empty(): ChildDeploymentInfoAlwaysMultiple {\n return new ChildDeploymentInfoAlwaysMultiple('');\n }\n\n constructor(name: string) {\n super(name);\n }\n\n isMultiInAnyWay(): boolean {\n return true;\n }\n\n set declaredMinItems(value: NullableNumber) {\n this._declaredMinItems = value;\n }\n\n set declaredMaxItems(value: NullableNumber) {\n this._declaredMaxItems = value;\n }\n\n /**\n * What the template declared, when it declared anything; otherwise the\n * default for the kind of field.\n *\n * Checkbox and multiple-choice list default to one when the field is\n * required and zero otherwise; an attribute-value field defaults to zero,\n * since requiring one would mean requiring an attribute nobody has named\n * yet. These fields are multiple by nature, so most templates leave the\n * bounds out and the default is all there is — but a template may state them,\n * and then the statement stands. `template-029` declares `minItems: 1` on a\n * list that is not required; the Java artifact library keeps the 1 and this\n * one used to replace it with the default 0, which was the only place the two\n * libraries disagreed across the whole numbered corpus.\n *\n * The JSON writer reads these same accessors — see `WriterUtil.getMultiMinMax`\n * — so a reader of the parsed model and a writer of the JSON cannot drift\n * apart.\n */\n override get minItems(): NullableNumber {\n if (this._declaredMinItems !== null) {\n return this._declaredMinItems;\n }\n if (this.uiInputType === UiInputType.ATTRIBUTE_VALUE) {\n return 0;\n }\n return this.requiredValue ? 1 : 0;\n }\n\n override get maxItems(): NullableNumber {\n return this._declaredMaxItems;\n }\n}\n","import { NullableNumber } from '../types/basic-types/NullableNumber';\nimport { TemplateChild } from '../types/basic-types/TemplateChild';\nimport { ChildDeploymentInfoAlwaysMultiple } from './ChildDeploymentInfoAlwaysMultiple';\nimport { AbstractDynamicChildDeploymentInfoBuilder } from './AbstractDynamicChildDeploymentInfoBuilder';\n\nexport class ChildDeploymentInfoAlwaysMultipleBuilder extends AbstractDynamicChildDeploymentInfoBuilder {\n private declaredMinItems: NullableNumber = null;\n private declaredMaxItems: NullableNumber = null;\n\n constructor(child: TemplateChild, name: string) {\n super(child, name);\n }\n\n /**\n * These fields are multiple by nature, so a template usually leaves the\n * bounds out and the deployment info supplies the default. When one is\n * stated, it has to survive the trip through here — dropping it was how a\n * declared `minItems` got rewritten on the way back out.\n */\n public withMinItems(minItems: NullableNumber): this {\n this.declaredMinItems = minItems;\n return this;\n }\n\n public withMaxItems(maxItems: NullableNumber): this {\n this.declaredMaxItems = maxItems;\n return this;\n }\n\n public build(): ChildDeploymentInfoAlwaysMultiple {\n const info: ChildDeploymentInfoAlwaysMultiple = new ChildDeploymentInfoAlwaysMultiple(this.name);\n this.setCommonData(info);\n info.declaredMinItems = this.declaredMinItems;\n info.declaredMaxItems = this.declaredMaxItems;\n return info;\n }\n}\n","import { AbstractDynamicChildDeploymentInfo } from './AbstractDynamicChildDeploymentInfo';\n\nexport class ChildDeploymentInfoAlwaysSingle extends AbstractDynamicChildDeploymentInfo {\n public static empty(): ChildDeploymentInfoAlwaysSingle {\n return new ChildDeploymentInfoAlwaysSingle('');\n }\n\n constructor(name: string) {\n super(name);\n }\n\n isMultiInAnyWay(): boolean {\n return false;\n }\n}\n","import { TemplateChild } from '../types/basic-types/TemplateChild';\nimport { ChildDeploymentInfoAlwaysSingle } from './ChildDeploymentInfoAlwaysSingle';\nimport { AbstractDynamicChildDeploymentInfoBuilder } from './AbstractDynamicChildDeploymentInfoBuilder';\n\nexport class ChildDeploymentInfoAlwaysSingleBuilder extends AbstractDynamicChildDeploymentInfoBuilder {\n constructor(child: TemplateChild, name: string) {\n super(child, name);\n }\n\n public build(): ChildDeploymentInfoAlwaysSingle {\n const info: ChildDeploymentInfoAlwaysSingle = new ChildDeploymentInfoAlwaysSingle(this.name);\n this.setCommonData(info);\n return info;\n }\n}\n","import { NullableNumber } from '../types/basic-types/NullableNumber';\nimport { ChildDeploymentInfo } from './ChildDeploymentInfo';\nimport { TemplateChild } from '../types/basic-types/TemplateChild';\nimport { AbstractDynamicChildDeploymentInfoBuilder } from './AbstractDynamicChildDeploymentInfoBuilder';\n\nexport class ChildDeploymentInfoBuilder extends AbstractDynamicChildDeploymentInfoBuilder {\n private multiInstance: boolean = false;\n private minItems: NullableNumber = null;\n private maxItems: NullableNumber = null;\n\n constructor(child: TemplateChild, name: string) {\n super(child, name);\n }\n\n public withMultiInstance(multiInstance: boolean): ChildDeploymentInfoBuilder {\n this.multiInstance = multiInstance;\n return this;\n }\n\n public withMinItems(minItems: NullableNumber): ChildDeploymentInfoBuilder {\n this.minItems = minItems;\n return this;\n }\n\n public withMaxItems(maxItems: NullableNumber): ChildDeploymentInfoBuilder {\n this.maxItems = maxItems;\n return this;\n }\n\n public build(): ChildDeploymentInfo {\n const info = new ChildDeploymentInfo(this.name);\n this.setCommonData(info);\n info.multiInstance = this.multiInstance;\n info.minItems = this.minItems;\n info.maxItems = this.maxItems;\n return info;\n }\n}\n","import { AbstractChildDeploymentInfo } from './AbstractChildDeploymentInfo';\n\nexport class ChildDeploymentInfoStatic extends AbstractChildDeploymentInfo {\n public static empty(): ChildDeploymentInfoStatic {\n return new ChildDeploymentInfoStatic('');\n }\n\n constructor(name: string) {\n super(name);\n }\n\n isMultiInAnyWay(): boolean {\n return false;\n }\n}\n","import { TemplateChild } from '../types/basic-types/TemplateChild';\nimport { AbstractChildDeploymentInfoBuilder } from './AbstractChildDeploymentInfoBuilder';\nimport { ChildDeploymentInfoStatic } from './ChildDeploymentInfoStatic';\n\nexport class ChildDeploymentInfoStaticBuilder extends AbstractChildDeploymentInfoBuilder {\n constructor(child: TemplateChild, name: string) {\n super(child, name);\n }\n\n public build(): ChildDeploymentInfoStatic {\n const info: ChildDeploymentInfoStatic = new ChildDeploymentInfoStatic(this.name);\n super.setCommonData(info);\n return info;\n }\n\n // protected setCommonData(info: AbstractDynamicChildDeploymentInfo) {\n // super.setCommonData(info);\n // info.label = this.label;\n // info.description = this.description;\n // info.iri = this.iri;\n // info.requiredValue = this.requiredValue;\n // info.hidden = this.hidden;\n // }\n}\n","import { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\nimport { JsonSchema } from '../constants/JsonSchema';\nimport { UiInputType } from '../types/wrapped-types/UiInputType';\nimport { NullableString } from '../types/basic-types/NullableString';\nimport { AbstractChildDeploymentInfo } from './AbstractChildDeploymentInfo';\nimport { AbstractDynamicChildDeploymentInfo } from './AbstractDynamicChildDeploymentInfo';\nimport { AbstractContainerArtifact } from '../AbstractContainerArtifact';\n\nexport class ContainerArtifactChildrenInfo {\n private childNameList: Array<string> = [];\n private childMap: Map<string, AbstractChildDeploymentInfo> = new Map<string, AbstractChildDeploymentInfo>();\n\n add(childInfo: AbstractChildDeploymentInfo) {\n this.childNameList.push(childInfo.name);\n this.childMap.set(childInfo.name, childInfo);\n }\n\n get children(): Array<AbstractChildDeploymentInfo> {\n return this.childNameList.map((name) => this.childMap.get(name)!);\n }\n\n has(name: string) {\n return this.childMap.has(name);\n }\n\n get(name: string): AbstractChildDeploymentInfo | null {\n return this.childMap.get(name) ?? null;\n }\n\n public getChildrenNames(): Array<string> {\n return Array.from(this.childMap.keys());\n }\n\n public getChildrenNamesForRequiredInProperties(): Array<string> {\n const result: Array<string> = [];\n for (const [name, childInfo] of this.childMap.entries()) {\n if (childInfo.atType !== CedarArtifactType.STATIC_TEMPLATE_FIELD && childInfo.uiInputType !== UiInputType.ATTRIBUTE_VALUE) {\n result.push(name);\n }\n }\n return result;\n }\n\n public getChildrenNamesForRequired(): Array<string> {\n const result: Array<string> = [];\n for (const [name, childInfo] of this.childMap.entries()) {\n if (childInfo.atType !== CedarArtifactType.STATIC_TEMPLATE_FIELD && childInfo.uiInputType !== UiInputType.ATTRIBUTE_VALUE) {\n result.push(name);\n }\n }\n return result;\n }\n\n public getOnlyElementNamesForPropertiesContextRequired(): Array<string> {\n const result: Array<string> = [];\n for (const [name, childInfo] of this.childMap.entries()) {\n if (childInfo.atType === CedarArtifactType.TEMPLATE_ELEMENT) {\n result.push(name);\n }\n }\n return result;\n }\n\n /**\n * What the container says about how its children are labelled, and nothing more.\n *\n * A key here names a child, so a key naming none of them — which real templates carry — is dropped\n * on the way through, along with the whole entry it stood for. What was also dropped, less\n * defensibly, was the distinction between a child the container labels and one it does not: a child\n * with no label of its own got the field's own name written in as if the container had asked for it,\n * and a child with no description got an empty string. The container declares these or it does not.\n */\n public getPropertyLabelMap(_container: AbstractContainerArtifact): Record<string, NullableString> {\n const labelMap: { [key: string]: NullableString } = {};\n this.childNameList.forEach((childName) => {\n const childInfo = this.getChildInfo(childName);\n if (childInfo.label !== null) {\n labelMap[childInfo.name] = childInfo.label;\n }\n });\n return labelMap;\n }\n\n /** As the labels above: what the container declares, with nothing filled in for what it does not. */\n public getPropertyDescriptionMap(_container: AbstractContainerArtifact): Record<string, NullableString> {\n const descriptionMap: { [key: string]: NullableString } = {};\n this.childNameList.forEach((childName) => {\n const childInfo = this.getChildInfo(childName);\n if (childInfo.description !== null) {\n descriptionMap[childInfo.name] = childInfo.description;\n }\n });\n return descriptionMap;\n }\n\n /**\n * Each child's property IRI, as a plain mapping of name to IRI.\n *\n * The IRI a child is addressed by in an instance's `@context`. Declared by the\n * template where there is one, minted from the child's name where there is\n * not — which is the interesting part, and the reason a consumer cannot simply\n * read `childInfo.iri` and be done.\n *\n * Static fields and attribute-value fields are absent: neither is a property\n * of the instance. A static field renders and holds nothing; an attribute-value\n * field's *attributes* become properties, under names the template does not\n * know.\n *\n * This is the model-level answer. `getIRIMap` wraps the same thing in the shape\n * JSON Schema wants it in, which is a serialisation concern — a consumer that\n * only wants the IRIs had to reach through `[JsonSchema.enum][0]` to get at\n * them, and reaching into a JSON shape is exactly what asking the model is\n * supposed to replace.\n */\n public getChildIriMap(): Record<string, string> {\n const iriMap: Record<string, string> = {};\n this.childNameList.forEach((childName) => {\n const childInfo = this.getChildInfo(childName);\n if (childInfo.atType !== CedarArtifactType.STATIC_TEMPLATE_FIELD && childInfo.uiInputType !== UiInputType.ATTRIBUTE_VALUE) {\n if (childInfo instanceof AbstractDynamicChildDeploymentInfo) {\n // A child with no IRI of its own gets no mapping. The IRI is identity, so the repository\n // assigns it when the artifact is uploaded, as it assigns an attribute's; deriving one from\n // the child's name asserted an identity nothing had assigned, and one that would change the\n // moment the author renamed the child.\n if (childInfo.iri !== null) {\n iriMap[childInfo.name] = childInfo.iri;\n }\n }\n }\n });\n return iriMap;\n }\n\n /**\n * The same mapping in the shape a template's `@context` block takes.\n *\n * `{ name: { enum: [iri] } }`, which is what the JSON writer splats straight\n * into `properties.@context.properties`. Derived from `getChildIriMap` so the\n * two cannot disagree.\n */\n public getIRIMap(): { [key: string]: { [key in typeof JsonSchema.enum]: Array<NullableString> } } {\n const iriMap: { [key: string]: { [key in typeof JsonSchema.enum]: Array<string | null> } } = {};\n const plain = this.getChildIriMap();\n Object.keys(plain).forEach((name) => {\n iriMap[name] = { [JsonSchema.enum]: [plain[name]] };\n });\n return iriMap;\n }\n\n // public getNonStaticNonAttributeValueIRIMap(): { [key: string]: { [key in typeof JsonSchema.enum]: Array<NullableString> } } {\n // const iriMap: { [key: string]: { [key in typeof JsonSchema.enum]: Array<string | null> } } = {};\n // this.childNameList.forEach((childName) => {\n // const childInfo = this.getChildInfo(childName);\n // if (childInfo.atType !== CedarArtifactType.STATIC_TEMPLATE_FIELD && childInfo.uiInputType !== UiInputType.ATTRIBUTE_VALUE) {\n // if (childInfo instanceof AbstractDynamicChildDeploymentInfo) {\n // iriMap[childInfo.name] = { [JsonSchema.enum]: [childInfo.iri] };\n // }\n // }\n // });\n // return iriMap;\n // }\n\n hasAttributeValue(): boolean {\n for (const childInfo of this.childMap.values()) {\n if (childInfo.uiInputType === UiInputType.ATTRIBUTE_VALUE) {\n return true;\n }\n }\n return false;\n }\n\n private getChildInfo(name: string): AbstractChildDeploymentInfo {\n return this.childMap.get(name)!;\n }\n}\n","import { BiboStatus } from '../types/wrapped-types/BiboStatus';\nimport { SchemaVersion } from '../types/wrapped-types/SchemaVersion';\nimport { PavVersion } from '../types/wrapped-types/PavVersion';\nimport { AbstractContainerArtifact } from '../AbstractContainerArtifact';\nimport { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\nimport { ChildDeploymentInfoBuilder } from '../deployment/ChildDeploymentInfoBuilder';\n\nexport class TemplateElement extends AbstractContainerArtifact {\n public skos_altLabel: Array<string> | null = null;\n public skos_prefLabel: string | null = null;\n private constructor() {\n super();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_ELEMENT;\n }\n\n public static buildEmptyWithNullValues(): TemplateElement {\n return new TemplateElement();\n }\n\n // TODO :probably should be removed\n public static buildEmptyWithDefaultValues(): TemplateElement {\n const r = new TemplateElement();\n r.schema_schemaVersion = SchemaVersion.CURRENT;\n r.bibo_status = BiboStatus.DRAFT;\n r.pav_version = PavVersion.DEFAULT;\n return r;\n }\n\n override isMultiInstanceByDefinition(): boolean {\n return false;\n }\n\n override isSingleInstanceByDefinition(): boolean {\n return false;\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { TemplateChild } from '../types/basic-types/TemplateChild';\nimport { AbstractArtifactBuilder } from '../AbstractArtifacBuilder';\nimport { TemplateElement } from './TemplateElement';\nimport { AbstractChildDeploymentInfo } from '../deployment/AbstractChildDeploymentInfo';\n\nexport class TemplateElementBuilder extends AbstractArtifactBuilder {\n private children: Array<[TemplateChild, AbstractChildDeploymentInfo]> = [];\n private instanceTypeSpecification: string | null = null;\n\n /** The type an instance of this element declares itself to be. */\n public withInstanceTypeSpecification(instanceTypeSpecification: string): TemplateElementBuilder {\n this.instanceTypeSpecification = instanceTypeSpecification;\n return this;\n }\n\n public addChild(child: TemplateChild, deploymentInfo: AbstractChildDeploymentInfo): TemplateElementBuilder {\n this.children.push([child, deploymentInfo]);\n return this;\n }\n\n public build(): TemplateElement {\n const templateElement: TemplateElement = TemplateElement.buildEmptyWithNullValues();\n super.buildInternal(templateElement);\n templateElement.instanceTypeSpecification = this.instanceTypeSpecification;\n\n this.children.forEach(([child, deploymentInfo]: [TemplateChild, AbstractChildDeploymentInfo]) => {\n templateElement.addChild(child, deploymentInfo);\n });\n\n return templateElement;\n }\n}\n","export class ChoiceOptionEntity {\n public label: string;\n public selectedByDefault: boolean;\n\n protected constructor(label: string, selectedByDefault: boolean) {\n this.label = label;\n this.selectedByDefault = selectedByDefault;\n }\n}\n","import { JsonAbstractArtifactWriter } from '../../../io/writer/json/JsonAbstractArtifactWriter';\n\nexport abstract class JsonValueConstraintsWriter extends JsonAbstractArtifactWriter {}\n","import { ValueConstraints } from './ValueConstraints';\nimport { CedarFieldType } from '../types/cedar-types/CedarFieldType';\nimport { AbstractSchemaArtifact } from '../AbstractSchemaArtifact';\n\nexport abstract class TemplateField extends AbstractSchemaArtifact {\n public skos_altLabel: Array<string> | null = null;\n public skos_prefLabel: string | null = null;\n\n public valueConstraints: ValueConstraints = new ValueConstraints();\n public cedarFieldType: CedarFieldType = CedarFieldType.NULL;\n\n override isMultiInstanceByDefinition(): boolean {\n return false;\n }\n\n override isSingleInstanceByDefinition(): boolean {\n return false;\n }\n\n supportsValueRecommendation(): boolean {\n return false;\n }\n}\n","import { AbstractArtifactBuilder } from '../AbstractArtifacBuilder';\nimport { TemplateField } from './TemplateField';\n\nexport abstract class TemplateFieldBuilder extends AbstractArtifactBuilder {\n protected skos_altLabel: Array<string> | null = null;\n protected skos_prefLabel: string | null = null;\n\n withAlternateLabels(altLabels: Array<string> | null): this {\n this.skos_altLabel = altLabels;\n return this;\n }\n\n addAlternateLabel(label: string): this {\n if (this.skos_altLabel === null) {\n this.skos_altLabel = [];\n }\n this.skos_altLabel.push(label);\n return this;\n }\n\n withPreferredLabel(prefLabel: string | null): this {\n this.skos_prefLabel = prefLabel;\n return this;\n }\n\n protected buildInternal(artifact: TemplateField): void {\n super.buildInternal(artifact);\n artifact.skos_altLabel = this.skos_altLabel;\n artifact.skos_prefLabel = this.skos_prefLabel;\n }\n}\n","import { TemplateField } from './TemplateField';\nimport { CedarFieldType } from '../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\nimport { ChildDeploymentInfoBuilder } from '../deployment/ChildDeploymentInfoBuilder';\n\nexport class UnknownTemplateField extends TemplateField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.NULL;\n this.cedarArtifactType = CedarArtifactType.NULL;\n }\n\n public static build(): UnknownTemplateField {\n return new UnknownTemplateField();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","export class ValueConstraints {\n public constructor() {}\n}\n","import { YamlAbstractArtifactWriter } from '../../../io/writer/yaml/YamlAbstractArtifactWriter';\n\nexport abstract class YamlValueConstraintsWriter extends YamlAbstractArtifactWriter {}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { AttributeValueField } from './AttributeValueField';\nimport { AttributeValueFieldImpl } from './AttributeValueFieldImpl';\nimport { AttributeValueFieldBuilder } from './AttributeValueFieldBuilder';\n\nexport class AttributeValueFieldBuilderImpl extends TemplateFieldBuilder implements AttributeValueFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): AttributeValueFieldBuilder {\n return new AttributeValueFieldBuilderImpl();\n }\n\n public build(): AttributeValueField {\n const avField = AttributeValueFieldImpl.buildEmpty();\n super.buildInternal(avField);\n\n return avField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { AttributeValueField } from './AttributeValueField';\nimport { ChildDeploymentInfoAlwaysMultipleBuilder } from '../../../deployment/ChildDeploymentInfoAlwaysMultipleBuilder';\n\nexport class AttributeValueFieldImpl extends TemplateField implements AttributeValueField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.ATTRIBUTE_VALUE;\n this.valueConstraints = new ValueConstraints();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): AttributeValueField {\n return new AttributeValueFieldImpl();\n }\n\n override isMultiInstanceByDefinition(): boolean {\n return true;\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoAlwaysMultipleBuilder {\n return new ChildDeploymentInfoAlwaysMultipleBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { AttributeValueField } from './AttributeValueField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { AttributeValueFieldImpl } from './AttributeValueFieldImpl';\n\nexport class JsonFieldReaderAttributeValue extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): AttributeValueField {\n const field = AttributeValueFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { TemplateField } from '../../TemplateField';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JavascriptType } from '../../../types/wrapped-types/JavascriptType';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterAttributeValue extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(_propertiesObject: JsonNode): void {\n // Properties node must not be present for attribute-value field\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // Required node must not be present for attribute-value field\n }\n\n protected expandTypeNode(typeNode: JsonNode, _field: TemplateField): void {\n typeNode[CedarModel.type] = this.atomicWriter.write(JavascriptType.STRING);\n }\n\n protected buildValueConstraintsObject(_field: TemplateField): JsonNode {\n return JsonNode.getEmpty();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { AttributeValueField } from './AttributeValueField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { AttributeValueFieldImpl } from './AttributeValueFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderAttributeValue extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): AttributeValueField {\n return AttributeValueFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterAttributeValue extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { CheckboxOption } from './CheckboxOption';\nimport { CheckboxField } from './CheckboxField';\nimport { CheckboxFieldBuilder } from './CheckboxFieldBuilder';\nimport { CheckboxFieldImpl } from './CheckboxFieldImpl';\n\nexport class CheckboxFieldBuilderImpl extends TemplateFieldBuilder implements CheckboxFieldBuilder {\n private literals: Array<CheckboxOption> = [];\n\n private constructor() {\n super();\n }\n\n public static create(): CheckboxFieldBuilder {\n return new CheckboxFieldBuilderImpl();\n }\n\n public addCheckboxOption(label: string, selectedByDefault: boolean = false): CheckboxFieldBuilder {\n this.literals.push(new CheckboxOption(label, selectedByDefault));\n return this;\n }\n\n public build(): CheckboxField {\n const checkboxField = CheckboxFieldImpl.buildEmpty();\n super.buildInternal(checkboxField);\n\n checkboxField.valueConstraints.literals = this.literals;\n\n return checkboxField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraintsCheckboxField } from './ValueConstraintsCheckboxField';\nimport { CheckboxField } from './CheckboxField';\nimport { ChildDeploymentInfoAlwaysMultipleBuilder } from '../../../deployment/ChildDeploymentInfoAlwaysMultipleBuilder';\n\nexport class CheckboxFieldImpl extends TemplateField implements CheckboxField {\n // Redeclare valueConstraints with a more specific type\n public valueConstraints: ValueConstraintsCheckboxField;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.CHECKBOX;\n this.valueConstraints = new ValueConstraintsCheckboxField();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): CheckboxField {\n return new CheckboxFieldImpl();\n }\n\n override isMultiInstanceByDefinition(): boolean {\n return true;\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoAlwaysMultipleBuilder {\n return new ChildDeploymentInfoAlwaysMultipleBuilder(this, childName);\n }\n}\n","import { ChoiceOptionEntity } from '../../ChoiceOptionEntity';\n\nexport class CheckboxOption extends ChoiceOptionEntity {\n public constructor(label: string, selectedByDefault: boolean) {\n super(label, selectedByDefault);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { CheckboxField } from './CheckboxField';\nimport { CheckboxOption } from './CheckboxOption';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { CheckboxFieldImpl } from './CheckboxFieldImpl';\n\nexport class JsonFieldReaderCheckbox extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): CheckboxField {\n const field = CheckboxFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n const literals: Array<JsonNode> = ReaderUtil.getNodeList(valueConstraints, CedarModel.literals);\n if (literals !== null) {\n literals.forEach((literal) => {\n const label = ReaderUtil.getString(literal, CedarModel.label);\n const selectedByDefault = ReaderUtil.getBoolean(literal, CedarModel.selectedByDefault);\n if (label != null) {\n const option = new CheckboxOption(label, selectedByDefault);\n field.valueConstraints.literals.push(option);\n }\n });\n }\n }\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CheckboxField } from './CheckboxField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterCheckbox extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNode(vcNode: JsonNode, field: CheckboxField, childInfo: ChildDeploymentInfo): void {\n this.expandLiterals(field, vcNode);\n super.expandValueConstraintsNode(vcNode, field, childInfo);\n vcNode[CedarModel.multipleChoice] = true;\n }\n}\n","import { ValueConstraints } from '../../ValueConstraints';\nimport { CheckboxOption } from './CheckboxOption';\n\nexport class ValueConstraintsCheckboxField extends ValueConstraints {\n literals: Array<CheckboxOption> = [];\n\n public constructor() {\n super();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CheckboxField } from './CheckboxField';\nimport { CheckboxOption } from './CheckboxOption';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { CheckboxFieldImpl } from './CheckboxFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderCheckbox extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): CheckboxField {\n const field = CheckboxFieldImpl.buildEmpty();\n const literals: Array<JsonNode> = ReaderUtil.getNodeList(fieldSourceObject, YamlKeys.values);\n if (literals !== null) {\n literals.forEach((literal) => {\n const label = ReaderUtil.getString(literal, YamlKeys.label);\n const selectedByDefault = ReaderUtil.getBoolean(literal, YamlKeys.selected);\n if (label != null) {\n const option = new CheckboxOption(label, selectedByDefault);\n field.valueConstraints.literals.push(option);\n }\n });\n }\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { CheckboxField } from './CheckboxField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterCheckbox extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNodeForYAML(vcNode: JsonNode, field: CheckboxField, _childInfo: ChildDeploymentInfo): void {\n this.expandLiterals(field, vcNode);\n }\n}\n","import { ControlledTermField } from './ControlledTermField';\nimport { ValueConstraintsControlledTermField } from './ValueConstraintsControlledTermField';\nimport { ControlledTermDefaultValue } from './value-constraint/ControlledTermDefaultValue';\nimport { ControlledTermOntology } from './value-constraint/ontology/ControlledTermOntology';\nimport { ControlledTermValueSet } from './value-constraint/value-set/ControlledTermValueSet';\nimport { ControlledTermClass } from './value-constraint/class/ControlledTermClass';\nimport { ControlledTermBranch } from './value-constraint/branch/ControlledTermBranch';\nimport { ControlledTermAction } from './value-constraint/action/ControlledTermAction';\nimport { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ControlledTermFieldBuilder } from './ControlledTermFieldBuilder';\nimport { ControlledTermFieldImpl } from './ControlledTermFieldImpl';\n\nexport class ControlledTermFieldBuilderImpl extends TemplateFieldBuilder implements ControlledTermFieldBuilder {\n private valueConstraints: ValueConstraintsControlledTermField = new ValueConstraintsControlledTermField();\n\n private constructor() {\n super();\n }\n\n public static create(): ControlledTermFieldBuilder {\n return new ControlledTermFieldBuilderImpl();\n }\n\n public withDefaultValue(defaultValue: ControlledTermDefaultValue): ControlledTermFieldBuilder {\n this.valueConstraints.defaultValue = defaultValue;\n return this;\n }\n\n public addOntology(ontology: ControlledTermOntology): ControlledTermFieldBuilder {\n this.valueConstraints.ontologies.push(ontology);\n return this;\n }\n\n public addValueSet(valueSet: ControlledTermValueSet): ControlledTermFieldBuilder {\n this.valueConstraints.valueSets.push(valueSet);\n return this;\n }\n\n public addClass(cls: ControlledTermClass): ControlledTermFieldBuilder {\n this.valueConstraints.classes.push(cls);\n return this;\n }\n\n public addBranch(branch: ControlledTermBranch): ControlledTermFieldBuilder {\n this.valueConstraints.branches.push(branch);\n return this;\n }\n\n public addAction(action: ControlledTermAction): ControlledTermFieldBuilder {\n this.valueConstraints.actions.push(action);\n return this;\n }\n\n public build(): ControlledTermField {\n const controlledTermField = ControlledTermFieldImpl.buildEmpty();\n super.buildInternal(controlledTermField);\n controlledTermField.valueConstraints = this.valueConstraints;\n return controlledTermField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { ValueConstraintsControlledTermField } from './ValueConstraintsControlledTermField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ControlledTermField } from './ControlledTermField';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\n\nexport class ControlledTermFieldImpl extends TemplateField implements ControlledTermField {\n // Redeclare valueConstraints with a more specific type\n public valueConstraints: ValueConstraintsControlledTermField;\n\n public valueRecommendationEnabled: boolean = false;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.CONTROLLED_TERM;\n this.valueConstraints = new ValueConstraintsControlledTermField();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): ControlledTermField {\n return new ControlledTermFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n\n override supportsValueRecommendation(): boolean {\n return true;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ControlledTermField } from './ControlledTermField';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ControlledTermOntology } from './value-constraint/ontology/ControlledTermOntology';\nimport { ControlledTermClass } from './value-constraint/class/ControlledTermClass';\nimport { ControlledTermBranch } from './value-constraint/branch/ControlledTermBranch';\nimport { ControlledTermValueSet } from './value-constraint/value-set/ControlledTermValueSet';\nimport { ControlledTermDefaultValue } from './value-constraint/ControlledTermDefaultValue';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { ControlledTermAction } from './value-constraint/action/ControlledTermAction';\nimport { BioportalTermType } from '../../../types/bioportal-types/BioportalTermType';\nimport { ControlledTermFieldImpl } from './ControlledTermFieldImpl';\nimport { ControlledTermVersion } from './value-constraint/ControlledTermVersion';\nimport { Iri } from '../../../types/wrapped-types/Iri';\n\nexport class JsonFieldReaderControlledTerm extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ControlledTermField {\n const field = ControlledTermFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n field.valueConstraints.ontologies = this.getOntologies(ReaderUtil.getNodeList(valueConstraints, CedarModel.ontologies));\n field.valueConstraints.classes = this.getClasses(ReaderUtil.getNodeList(valueConstraints, CedarModel.classes));\n field.valueConstraints.branches = this.getBranches(ReaderUtil.getNodeList(valueConstraints, CedarModel.branches));\n field.valueConstraints.valueSets = this.getValueSets(ReaderUtil.getNodeList(valueConstraints, CedarModel.valueSets));\n field.valueConstraints.defaultValue = this.getDefaultValue(ReaderUtil.getNodeOrNull(valueConstraints, CedarModel.defaultValue));\n field.valueConstraints.actions = this.getActions(ReaderUtil.getNodeList(valueConstraints, CedarModel.actions));\n }\n return field;\n }\n\n private getOntologies(nodeList: Array<JsonNode>): Array<ControlledTermOntology> {\n const ret: Array<ControlledTermOntology> = [];\n nodeList.forEach((o) => {\n const ontology = new ControlledTermOntology(\n ReaderUtil.getStringOrEmpty(o, CedarModel.ValueConstraints.acronym),\n ReaderUtil.getStringOrEmpty(o, CedarModel.ValueConstraints.name),\n ReaderUtil.getNumberOrNull(o, CedarModel.ValueConstraints.numTerms),\n ReaderUtil.getURI(o, CedarModel.ValueConstraints.uri),\n ...JsonFieldReaderControlledTerm.readSourceAndVersion(o),\n );\n ret.push(ontology);\n });\n return ret;\n }\n\n private getClasses(nodeList: Array<JsonNode>): Array<ControlledTermClass> {\n const ret: Array<ControlledTermClass> = [];\n nodeList.forEach((c) => {\n const clazz = new ControlledTermClass(\n ReaderUtil.getStringOrEmpty(c, CedarModel.ValueConstraints.label),\n ReaderUtil.getStringOrEmpty(c, CedarModel.ValueConstraints.source),\n BioportalTermType.forJsonValue(ReaderUtil.getStringOrEmpty(c, CedarModel.ValueConstraints.type)),\n ReaderUtil.getStringOrEmpty(c, CedarModel.ValueConstraints.prefLabel),\n ReaderUtil.getURI(c, CedarModel.ValueConstraints.uri),\n ...JsonFieldReaderControlledTerm.readSourceAndVersion(c),\n );\n ret.push(clazz);\n });\n return ret;\n }\n\n private getBranches(nodeList: Array<JsonNode>): Array<ControlledTermBranch> {\n const ret: Array<ControlledTermBranch> = [];\n nodeList.forEach((b) => {\n const branch = new ControlledTermBranch(\n ReaderUtil.getStringOrEmpty(b, CedarModel.ValueConstraints.source),\n ReaderUtil.getStringOrEmpty(b, CedarModel.ValueConstraints.acronym),\n ReaderUtil.getStringOrEmpty(b, CedarModel.ValueConstraints.name),\n ReaderUtil.getNumberOrZero(b, CedarModel.ValueConstraints.maxDepth),\n ReaderUtil.getURI(b, CedarModel.ValueConstraints.uri),\n ...JsonFieldReaderControlledTerm.readSourceAndVersion(b),\n );\n ret.push(branch);\n });\n return ret;\n }\n\n private getValueSets(nodeList: Array<JsonNode>): Array<ControlledTermValueSet> {\n const ret: Array<ControlledTermValueSet> = [];\n nodeList.forEach((vs) => {\n const valueSet = new ControlledTermValueSet(\n ReaderUtil.getStringOrEmpty(vs, CedarModel.ValueConstraints.vsCollection),\n ReaderUtil.getStringOrEmpty(vs, CedarModel.ValueConstraints.name),\n ReaderUtil.getNumberOrNull(vs, CedarModel.ValueConstraints.numTerms),\n ReaderUtil.getURI(vs, CedarModel.ValueConstraints.uri),\n ...JsonFieldReaderControlledTerm.readSourceAndVersion(vs),\n );\n ret.push(valueSet);\n });\n return ret;\n }\n\n private getActions(nodeList: Array<JsonNode>): Array<ControlledTermAction> {\n const ret: Array<ControlledTermAction> = [];\n nodeList.forEach((vs) => {\n const action = new ControlledTermAction(\n ReaderUtil.getNumber(vs, CedarModel.ValueConstraints.to),\n ReaderUtil.getStringOrEmpty(vs, CedarModel.ValueConstraints.action),\n ReaderUtil.getURI(vs, CedarModel.ValueConstraints.termUri),\n ReaderUtil.getURI(vs, CedarModel.ValueConstraints.sourceUri),\n ReaderUtil.getStringOrEmpty(vs, CedarModel.ValueConstraints.source),\n BioportalTermType.forJsonValue(ReaderUtil.getStringOrEmpty(vs, CedarModel.ValueConstraints.type)),\n );\n ret.push(action);\n });\n return ret;\n }\n\n /**\n * The three source-explicit keys, in the order every constraint constructor takes them. Optional and\n * usually absent: a constraint written before they existed has none, and reads as it always did.\n */\n private static readSourceAndVersion(node: JsonNode): [Iri | null, string | null, ControlledTermVersion | null] {\n const iri = ReaderUtil.getURI(node, CedarModel.ValueConstraints.iri);\n const versionNode: JsonNode | null = ReaderUtil.getNodeOrNull(node, CedarModel.ValueConstraints.version);\n const version =\n versionNode === null\n ? null\n : new ControlledTermVersion(\n ReaderUtil.getStringOrEmpty(versionNode, CedarModel.ValueConstraints.versionId),\n ReaderUtil.getString(versionNode, CedarModel.ValueConstraints.versionEffectiveDate),\n ReaderUtil.getString(versionNode, CedarModel.ValueConstraints.versionDeclaredVersion),\n );\n return [iri.isEmpty() ? null : iri, ReaderUtil.getString(node, CedarModel.ValueConstraints.sourceSystem), version];\n }\n\n private getDefaultValue(node: JsonNode | null): ControlledTermDefaultValue | null {\n if (node == null) {\n return null;\n }\n const uri = ReaderUtil.getURI(node, JsonSchema.termUri);\n const rdfsLabel: string | null = ReaderUtil.getString(node, JsonSchema.rdfsLabel);\n if (!uri.isEmpty() || rdfsLabel !== null) {\n return new ControlledTermDefaultValue(uri, rdfsLabel ?? '');\n } else {\n return null;\n }\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { ControlledTermField } from './ControlledTermField';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterControlledTerm extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of a controlled term? or @value?\n }\n\n override expandValueConstraintsNode(vcNode: JsonNode, field: ControlledTermField, childInfo: ChildDeploymentInfo): void {\n const ontologiesList: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.ontologies.forEach((ontology) => {\n ontologiesList.push(this.writers.getWriterForValueConstraint(ontology).getAsJsonNode(ontology));\n });\n vcNode[CedarModel.ontologies] = ontologiesList;\n\n const valueSetList: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.valueSets.forEach((clazz) => {\n valueSetList.push(this.writers.getWriterForValueConstraint(clazz).getAsJsonNode(clazz));\n });\n vcNode[CedarModel.valueSets] = valueSetList;\n\n const classesList: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.classes.forEach((clazz) => {\n classesList.push(this.writers.getWriterForValueConstraint(clazz).getAsJsonNode(clazz));\n });\n vcNode[CedarModel.classes] = classesList;\n\n const branchesList: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.branches.forEach((clazz) => {\n branchesList.push(this.writers.getWriterForValueConstraint(clazz).getAsJsonNode(clazz));\n });\n vcNode[CedarModel.branches] = branchesList;\n\n const actionsList: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.actions.forEach((clazz) => {\n actionsList.push(this.writers.getWriterForValueConstraint(clazz).getAsJsonNode(clazz));\n });\n if (actionsList.length > 0) {\n vcNode[CedarModel.actions] = actionsList;\n }\n\n if (field.valueConstraints.defaultValue != null) {\n const defaultValue = JsonNode.getEmpty();\n defaultValue[JsonSchema.rdfsLabel] = field.valueConstraints.defaultValue.rdfsLabel;\n defaultValue[JsonSchema.termUri] = this.atomicWriter.write(field.valueConstraints.defaultValue.termUri);\n vcNode[CedarModel.defaultValue] = defaultValue;\n }\n\n // TODO: this should be not in the model\n // TODO: clarify why was this here then\n // vcNode[CedarModel.multipleChoice] = false;\n super.expandValueConstraintsNode(vcNode, field, childInfo);\n }\n}\n","import { ValueConstraints } from '../../ValueConstraints';\nimport { ControlledTermDefaultValue } from './value-constraint/ControlledTermDefaultValue';\nimport { ControlledTermOntology } from './value-constraint/ontology/ControlledTermOntology';\nimport { ControlledTermValueSet } from './value-constraint/value-set/ControlledTermValueSet';\nimport { ControlledTermClass } from './value-constraint/class/ControlledTermClass';\nimport { ControlledTermBranch } from './value-constraint/branch/ControlledTermBranch';\nimport { ControlledTermAction } from './value-constraint/action/ControlledTermAction';\n\nexport class ValueConstraintsControlledTermField extends ValueConstraints {\n public defaultValue: ControlledTermDefaultValue | null = null;\n public ontologies: Array<ControlledTermOntology> = [];\n public valueSets: Array<ControlledTermValueSet> = [];\n public classes: Array<ControlledTermClass> = [];\n public branches: Array<ControlledTermBranch> = [];\n public actions: Array<ControlledTermAction> = [];\n\n public constructor() {\n super();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ControlledTermField } from './ControlledTermField';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { ControlledTermDefaultValue } from './value-constraint/ControlledTermDefaultValue';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { BioportalTermType } from '../../../types/bioportal-types/BioportalTermType';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { YamlValues } from '../../../constants/YamlValues';\nimport { ControlledTermOntologyBuilder } from './value-constraint/ontology/ControlledTermOntologyBuilder';\nimport { ControlledTermClassBuilder } from './value-constraint/class/ControlledTermClassBuilder';\nimport { ControlledTermBranchBuilder } from './value-constraint/branch/ControlledTermBranchBuilder';\nimport { ControlledTermValueSetBuilder } from './value-constraint/value-set/ControlledTermValueSetBuilder';\nimport { ControlledTermActionBuilder } from './value-constraint/action/ControlledTermActionBuilder';\nimport { ControlledTermFieldImpl } from './ControlledTermFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { Iri } from '../../../types/wrapped-types/Iri';\nimport { ControlledTermVersion } from './value-constraint/ControlledTermVersion';\n\nexport class YamlFieldReaderControlledTerm extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): ControlledTermField {\n const field = ControlledTermFieldImpl.buildEmpty();\n\n const values: JsonNode[] = ReaderUtil.getNodeList(fieldSourceObject, YamlKeys.values);\n values.forEach((valueNode) => {\n const type = ReaderUtil.getString(valueNode, YamlKeys.type);\n if (type === YamlValues.Controlled.ontology) {\n const ontologyBuilder = new ControlledTermOntologyBuilder()\n .withAcronym(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.sourceAcronym))\n .withName(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.sourceName))\n .withUri(this.deriveOntologyUri(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.sourceAcronym)))\n .withNumTerms(ReaderUtil.getNumberOrNull(valueNode, YamlKeys.Controlled.termCount));\n this.readSourceAndVersion(valueNode, ontologyBuilder);\n field.valueConstraints.ontologies.push(ontologyBuilder.build());\n } else if (type === YamlValues.Controlled.class) {\n const prefLabel = ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.termLabel);\n // A display label of the template's own where the author set one, the ontology's preferred\n // label otherwise.\n const displayLabel = ReaderUtil.getString(valueNode, YamlKeys.Controlled.termDisplayLabel);\n const classBuilder = new ControlledTermClassBuilder()\n .withUri(ReaderUtil.getURI(valueNode, YamlKeys.Controlled.termIri))\n .withSource(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.sourceAcronym))\n .withLabel(displayLabel ?? prefLabel)\n .withPrefLabel(prefLabel)\n .withType(BioportalTermType.forYamlValue(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.termType)));\n this.readSourceAndVersion(valueNode, classBuilder);\n field.valueConstraints.classes.push(classBuilder.build());\n } else if (type === YamlValues.Controlled.branch) {\n const branchBuilder = new ControlledTermBranchBuilder()\n .withUri(ReaderUtil.getURI(valueNode, YamlKeys.Controlled.termBaseIri))\n .withSource(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.sourceName))\n .withName(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.termBaseLabel))\n .withAcronym(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.sourceAcronym))\n .withMaxDepth(ReaderUtil.getNumberOrZero(valueNode, YamlKeys.Controlled.termMaxDepth));\n this.readSourceAndVersion(valueNode, branchBuilder);\n field.valueConstraints.branches.push(branchBuilder.build());\n } else if (type === YamlValues.Controlled.valueSet) {\n const valueSetBuilder = new ControlledTermValueSetBuilder()\n .withUri(ReaderUtil.getURI(valueNode, YamlKeys.Controlled.termBaseIri))\n // Absent means the count is unknown, as it does for an ontology; zero would claim the set\n // is empty, which is a different thing and one the schema takes literally.\n .withNumTerms(ReaderUtil.getNumberOrNull(valueNode, YamlKeys.Controlled.termCount))\n .withVsCollection(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.sourceAcronym))\n .withName(ReaderUtil.getStringOrEmpty(valueNode, YamlKeys.Controlled.termBaseLabel));\n this.readSourceAndVersion(valueNode, valueSetBuilder);\n field.valueConstraints.valueSets.push(valueSetBuilder.build());\n }\n });\n\n const defaultNode: JsonNode | null = ReaderUtil.getNodeOrNull(fieldSourceObject, YamlKeys.default);\n if (defaultNode !== null) {\n const uri = ReaderUtil.getURI(defaultNode, YamlKeys.value);\n const label = ReaderUtil.getStringOrEmpty(defaultNode, YamlKeys.label);\n field.valueConstraints.defaultValue = new ControlledTermDefaultValue(uri, label);\n }\n\n const actions: JsonNode[] = ReaderUtil.getNodeList(fieldSourceObject, YamlKeys.actions);\n actions.forEach((actionNode) => {\n const actionBuilder = new ControlledTermActionBuilder()\n .withAction(ReaderUtil.getStringOrEmpty(actionNode, YamlKeys.action))\n .withSource(ReaderUtil.getStringOrEmpty(actionNode, YamlKeys.Controlled.sourceAcronym))\n .withType(BioportalTermType.forYamlValue(ReaderUtil.getStringOrEmpty(actionNode, YamlKeys.type)))\n .withTermUri(ReaderUtil.getURI(actionNode, YamlKeys.Controlled.termIri))\n .withTo(ReaderUtil.getNumber(actionNode, YamlKeys.Controlled.to))\n .withSourceUri(ReaderUtil.getURI(actionNode, YamlKeys.Controlled.sourceIri));\n field.valueConstraints.actions.push(actionBuilder.build());\n });\n return field;\n }\n\n /**\n * Reconstruct an ontology's BioPortal address from its acronym.\n *\n * The entry carries no such key: the address is derivable, and what identifies the ontology across\n * systems is its `sourceIri`. The model and the JSON Schema it renders to still require the address,\n * and BioPortal — the only system served today, and what an absent `sourceSystem` means — addresses\n * every ontology the same way. Another system would need its own rule.\n */\n private deriveOntologyUri(acronym: string): Iri {\n return new Iri(`https://data.bioontology.org/ontologies/${acronym}`);\n }\n\n /** The keys every constraint kind shares: which vocabulary, on which system, at which snapshot. */\n private readSourceAndVersion(valueNode: JsonNode, builder: SourceExplicitBuilder): void {\n const sourceIri = ReaderUtil.getURI(valueNode, YamlKeys.Controlled.sourceIri);\n if (!sourceIri.isEmpty()) {\n builder.withIri(sourceIri);\n }\n builder.withSourceSystem(ReaderUtil.getString(valueNode, YamlKeys.Controlled.sourceSystem));\n\n const versionNode: JsonNode | null = ReaderUtil.getNodeOrNull(valueNode, YamlKeys.version);\n if (versionNode !== null) {\n builder.withVersion(\n new ControlledTermVersion(\n ReaderUtil.getStringOrEmpty(versionNode, YamlKeys.Controlled.versionId),\n ReaderUtil.getString(versionNode, YamlKeys.Controlled.versionEffectiveDate),\n ReaderUtil.getString(versionNode, YamlKeys.Controlled.versionDeclaredVersion),\n ),\n );\n }\n }\n}\n\n/** What the four constraint builders have in common, which is what the shared keys are read into. */\ninterface SourceExplicitBuilder {\n withIri(iri: Iri | null): unknown;\n withSourceSystem(sourceSystem: string | null): unknown;\n withVersion(version: ControlledTermVersion | null): unknown;\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { ControlledTermField } from './ControlledTermField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { NonStandardDatatype } from '../../../constants/NonStandardDatatype';\n\nexport class YamlFieldWriterControlledTerm extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override expandUINodeForYAML(_field: ControlledTermField): JsonNode {\n const ret: JsonNode = {\n [YamlKeys.datatype]: NonStandardDatatype.IRI,\n };\n return ret;\n }\n\n override expandValueConstraintsNodeForYAML(vcNode: JsonNode, field: ControlledTermField, _childInfo: ChildDeploymentInfo): void {\n if (field.valueConstraints.defaultValue != null) {\n const defaultNode = {\n [YamlKeys.value]: this.atomicWriter.write(field.valueConstraints.defaultValue.termUri),\n [YamlKeys.label]: field.valueConstraints.defaultValue.rdfsLabel,\n };\n vcNode[YamlKeys.default] = defaultNode;\n }\n\n const valuesList: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.ontologies.forEach((ontology) => {\n valuesList.push(this.writers.getWriterForValueConstraint(ontology).getAsJsonNode(ontology));\n });\n field.valueConstraints.classes.forEach((clazz) => {\n valuesList.push(this.writers.getWriterForValueConstraint(clazz).getAsJsonNode(clazz));\n });\n field.valueConstraints.branches.forEach((clazz) => {\n valuesList.push(this.writers.getWriterForValueConstraint(clazz).getAsJsonNode(clazz));\n });\n field.valueConstraints.valueSets.forEach((clazz) => {\n valuesList.push(this.writers.getWriterForValueConstraint(clazz).getAsJsonNode(clazz));\n });\n if (valuesList.length > 0) {\n vcNode[YamlKeys.values] = valuesList;\n }\n\n const actionsList: Array<JsonNode> = JsonNode.getEmptyList();\n field.valueConstraints.actions.forEach((clazz) => {\n actionsList.push(this.writers.getWriterForValueConstraint(clazz).getAsJsonNode(clazz));\n });\n if (actionsList.length > 0) {\n vcNode[YamlKeys.actions] = actionsList;\n }\n }\n}\n","import { JsonNode } from '../../../../types/basic-types/JsonNode';\nimport { ControlledTermAbstractValueConstraint } from './ControlledTermAbstractValueConstraint';\nimport { JsonValueConstraintsWriter } from '../../../JsonValueConstraintsWriter';\nimport { CedarModel } from '../../../../constants/CedarModel';\n\nexport abstract class AbstractJsonControlledTermValueConstraintWriter extends JsonValueConstraintsWriter {\n abstract getAsJsonNode(ontology: ControlledTermAbstractValueConstraint): JsonNode;\n\n /**\n * The source-explicit keys, written after the ones every constraint has always carried and in the\n * order the Java library writes them. A constraint naming none of them renders exactly as before.\n */\n protected writeSourceAndVersion(entry: JsonNode, constraint: ControlledTermAbstractValueConstraint): void {\n if (constraint.iri !== null && !constraint.iri.isEmpty()) {\n entry[CedarModel.ValueConstraints.iri] = this.atomicWriter.write(constraint.iri);\n }\n if (constraint.sourceSystem !== null) {\n entry[CedarModel.ValueConstraints.sourceSystem] = constraint.sourceSystem;\n }\n const version = constraint.version;\n if (version !== null) {\n const rendering = JsonNode.getEmpty();\n rendering[CedarModel.ValueConstraints.versionId] = version.id;\n if (version.effectiveDate !== null) {\n rendering[CedarModel.ValueConstraints.versionEffectiveDate] = version.effectiveDate;\n }\n if (version.declaredVersion !== null) {\n rendering[CedarModel.ValueConstraints.versionDeclaredVersion] = version.declaredVersion;\n }\n entry[CedarModel.ValueConstraints.version] = rendering;\n }\n }\n}\n","import { JsonNode } from '../../../../types/basic-types/JsonNode';\nimport { ControlledTermAbstractValueConstraint } from './ControlledTermAbstractValueConstraint';\nimport { YamlValueConstraintsWriter } from '../../../YamlValueConstraintsWriter';\nimport { YamlKeys } from '../../../../constants/YamlKeys';\n\nexport abstract class AbstractYamlControlledTermValueConstraintWriter extends YamlValueConstraintsWriter {\n abstract getAsJsonNode(ontology: ControlledTermAbstractValueConstraint): JsonNode;\n\n /**\n * The system serving the vocabulary, written directly after the entry's type. Omitted when the\n * constraint names none, which means BioPortal.\n */\n protected writeSourceSystem(entry: JsonNode, constraint: ControlledTermAbstractValueConstraint): void {\n if (constraint.sourceSystem !== null) {\n entry[YamlKeys.Controlled.sourceSystem] = constraint.sourceSystem;\n }\n }\n\n /** The source ontology's canonical identity, written after the keys naming the source. */\n protected writeSourceIri(entry: JsonNode, constraint: ControlledTermAbstractValueConstraint): void {\n if (constraint.iri !== null && !constraint.iri.isEmpty()) {\n entry[YamlKeys.Controlled.sourceIri] = this.atomicWriter.write(constraint.iri);\n }\n }\n\n /** The pinned snapshot, written last. Omitted when the entry resolves against the latest. */\n protected writeVersion(entry: JsonNode, constraint: ControlledTermAbstractValueConstraint): void {\n const version = constraint.version;\n if (version === null) {\n return;\n }\n const rendering = JsonNode.getEmpty();\n rendering[YamlKeys.Controlled.versionId] = version.id;\n if (version.effectiveDate !== null) {\n rendering[YamlKeys.Controlled.versionEffectiveDate] = version.effectiveDate;\n }\n if (version.declaredVersion !== null) {\n rendering[YamlKeys.Controlled.versionDeclaredVersion] = version.declaredVersion;\n }\n entry[YamlKeys.version] = rendering;\n }\n}\n","import { ValueConstraints } from '../../../ValueConstraints';\nimport { Iri } from '../../../../types/wrapped-types/Iri';\nimport { ControlledTermVersion } from './ControlledTermVersion';\n\ninterface ClassWithClassName {\n className: string;\n}\n\n/**\n * What the four controlled-term constraints have in common: which vocabulary the terms come from,\n * and which snapshot of it.\n *\n * All three are optional, and a constraint written before they existed carries none of them. `iri`\n * is the source ontology's canonical identity, the one that holds whichever system serves it — not\n * to be confused with an ontology constraint's `uri`, which is the address BioPortal answers at.\n * `sourceSystem` names that system, and its absence means BioPortal. `version` pins the snapshot,\n * and its absence means the latest one.\n */\nexport abstract class ControlledTermAbstractValueConstraint extends ValueConstraints implements ClassWithClassName {\n className = 'ControlledTermAbstractValueConstraint';\n private readonly _iri: Iri | null;\n private readonly _sourceSystem: string | null;\n private readonly _version: ControlledTermVersion | null;\n\n protected constructor(iri: Iri | null = null, sourceSystem: string | null = null, version: ControlledTermVersion | null = null) {\n super();\n this._iri = iri;\n this._sourceSystem = sourceSystem;\n this._version = version;\n }\n\n get iri(): Iri | null {\n return this._iri;\n }\n\n get sourceSystem(): string | null {\n return this._sourceSystem;\n }\n\n get version(): ControlledTermVersion | null {\n return this._version;\n }\n}\n","import { Iri } from '../../../../types/wrapped-types/Iri';\n\nexport class ControlledTermDefaultValue {\n private readonly _termUri: Iri;\n private readonly _rdfsLabel: string;\n\n constructor(termUri: Iri, rdfsLabel: string) {\n this._termUri = termUri;\n this._rdfsLabel = rdfsLabel;\n }\n\n get termUri(): Iri {\n return this._termUri;\n }\n\n get rdfsLabel(): string {\n return this._rdfsLabel;\n }\n\n isControlledDefaultValue() {\n return false;\n }\n}\n","import { Iri } from '../../../../types/wrapped-types/Iri';\nimport { ControlledTermDefaultValue } from './ControlledTermDefaultValue';\nimport { ValueConstraintRequirements } from './ValueConstraintRequirements';\n\nexport class ControlledTermDefaultValueBuilder {\n private termUri: Iri = Iri.empty();\n private rdfsLabel: string = '';\n\n public withTermUri(termUri: Iri): ControlledTermDefaultValueBuilder {\n this.termUri = termUri;\n return this;\n }\n\n public withRdfsLabel(rdfsLabel: string): ControlledTermDefaultValueBuilder {\n this.rdfsLabel = rdfsLabel;\n return this;\n }\n\n public build(): ControlledTermDefaultValue {\n ValueConstraintRequirements.requireIri(this.termUri, 'a term URI', 'A controlled-term default value');\n ValueConstraintRequirements.requireText(this.rdfsLabel, 'a label', 'A controlled-term default value');\n return new ControlledTermDefaultValue(this.termUri, this.rdfsLabel);\n }\n}\n","/**\n * The version triple that pins a value-constraint entry to one vocabulary snapshot.\n *\n * `id` is the snapshot's content hash and the only part resolution reads: taken with the source\n * ontology's canonical identity it names one exact snapshot. `effectiveDate` and `declaredVersion`\n * are labels for people — when the snapshot entered circulation, and whatever version string the\n * source declared for itself, which is neither guaranteed present nor unique.\n *\n * An entry with no version resolves against the latest snapshot the terminology server serves.\n */\nexport class ControlledTermVersion {\n private readonly _id: string;\n private readonly _effectiveDate: string | null;\n private readonly _declaredVersion: string | null;\n\n constructor(id: string, effectiveDate: string | null = null, declaredVersion: string | null = null) {\n this._id = id;\n this._effectiveDate = effectiveDate;\n this._declaredVersion = declaredVersion;\n }\n\n get id(): string {\n return this._id;\n }\n\n get effectiveDate(): string | null {\n return this._effectiveDate;\n }\n\n get declaredVersion(): string | null {\n return this._declaredVersion;\n }\n}\n","import { Iri } from '../../../../types/wrapped-types/Iri';\nimport { BioportalTermType } from '../../../../types/bioportal-types/BioportalTermType';\n\n/**\n * What a controlled-term constraint must carry to be one.\n *\n * Each of the six builders in this family declared every field with an empty\n * default — `''` for a string, `Iri.empty()` for a URI — so `build()` succeeded\n * whatever the caller had supplied, and an ontology constraint naming no\n * ontology serialized as `{\"uri\": \"\", \"acronym\": \"DOID\", \"name\": \"Disease\"}`. A\n * constraint that points at nothing is not a constraint; it is a request the\n * terminology server cannot answer.\n *\n * Which fields are required is measured rather than assumed. Across the 437\n * artifacts in `cedar-test-artifacts`, every field checked below is present on\n * every occurrence of its constraint and empty on none:\n *\n * | constraint | occurrences | always present |\n * |---|---|---|\n * | class | 109 | `uri`, `prefLabel`, `label`, `source`, `type` |\n * | branch | 219 | `uri`, `source`, `acronym`, `name` |\n * | ontology | 32 | `uri`, `acronym`, `name` |\n * | value set | 10 | `uri`, `vsCollection`, `name` |\n * | action | 48 | `termUri`, `sourceUri`, `action`, `source`, `type` |\n * | default value | 30 | `termUri`, `rdfs:label` |\n *\n * The fields left unchecked are the ones that measurement shows are optional —\n * an ontology's `numTerms` (26 of 32) and an action's `to` (32 of 48), both\n * already nullable — and the two numeric fields, `maxDepth` and a value set's\n * `numTerms`, where zero is a value rather than an absence.\n *\n * Only the deployment-info builders are used by the readers, so nothing here\n * can turn a malformed document into an exception on the way in. A constraint\n * read from a real template goes through the constraint classes directly.\n */\nexport class ValueConstraintRequirements {\n static requireText(value: string, field: string, constraint: string): void {\n if (value === null || value === undefined || value === '') {\n throw new Error(`${constraint} requires ${field}.`);\n }\n }\n\n static requireIri(value: Iri, field: string, constraint: string): void {\n if (value === null || value === undefined || value.isEmpty()) {\n throw new Error(`${constraint} requires ${field}. A constraint that points at nothing cannot be resolved.`);\n }\n }\n\n static requireTermType(value: BioportalTermType, constraint: string): void {\n if (value === null || value === undefined || value.getJsonValue() === null) {\n throw new Error(`${constraint} requires a term type.`);\n }\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermAbstractValueConstraint } from '../ControlledTermAbstractValueConstraint';\nimport { BioportalTermType } from '../../../../../types/bioportal-types/BioportalTermType';\n\nexport class ControlledTermAction extends ControlledTermAbstractValueConstraint {\n static className = 'ControlledTermAction';\n public className = 'ControlledTermAction';\n private readonly _to: number | null = null;\n private readonly _action: string; //move, delete\n private readonly _termUri: Iri;\n private readonly _sourceUri: Iri;\n private readonly _source: string; // source acronym\n private readonly _type: BioportalTermType;\n\n constructor(to: number | null, action: string, termUri: Iri, sourceUri: Iri, source: string, type: BioportalTermType) {\n super();\n this._to = to;\n this._action = action;\n this._termUri = termUri;\n this._sourceUri = sourceUri;\n this._source = source;\n this._type = type;\n }\n\n get to(): number | null {\n return this._to;\n }\n\n get action(): string {\n return this._action;\n }\n\n get termUri(): Iri {\n return this._termUri;\n }\n\n get sourceUri(): Iri {\n return this._sourceUri;\n }\n\n get source(): string {\n return this._source;\n }\n\n get type(): BioportalTermType {\n return this._type;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermAction } from './ControlledTermAction';\nimport { ValueConstraintRequirements } from '../ValueConstraintRequirements';\nimport { BioportalTermType } from '../../../../../types/bioportal-types/BioportalTermType';\n\nexport class ControlledTermActionBuilder {\n private _to: number | null = null;\n private _action: string = '';\n private _termUri: Iri = Iri.empty();\n private _sourceUri: Iri = Iri.empty();\n private _source: string = '';\n private _type: BioportalTermType = BioportalTermType.NULL;\n\n public withTo(to: number | null): ControlledTermActionBuilder {\n this._to = to;\n return this;\n }\n\n public withAction(action: string): ControlledTermActionBuilder {\n this._action = action;\n return this;\n }\n\n public withTermUri(termUri: Iri): ControlledTermActionBuilder {\n this._termUri = termUri;\n return this;\n }\n\n public withSourceUri(sourceUri: Iri): ControlledTermActionBuilder {\n this._sourceUri = sourceUri;\n return this;\n }\n\n public withSource(source: string): ControlledTermActionBuilder {\n this._source = source;\n return this;\n }\n\n public withType(type: BioportalTermType): ControlledTermActionBuilder {\n this._type = type;\n return this;\n }\n\n public build(): ControlledTermAction {\n ValueConstraintRequirements.requireText(this._action, 'an action', 'A controlled-term action');\n ValueConstraintRequirements.requireIri(this._termUri, 'a term URI', 'A controlled-term action');\n ValueConstraintRequirements.requireIri(this._sourceUri, 'a source URI', 'A controlled-term action');\n ValueConstraintRequirements.requireText(this._source, 'a source', 'A controlled-term action');\n ValueConstraintRequirements.requireTermType(this._type, 'A controlled-term action');\n return new ControlledTermAction(this._to, this._action, this._termUri, this._sourceUri, this._source, this._type);\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../../../constants/CedarModel';\nimport { JsonWriterBehavior } from '../../../../../../../behavior/JsonWriterBehavior';\nimport { AbstractJsonControlledTermValueConstraintWriter } from '../AbstractJsonControlledTermValueConstraintWriter';\nimport { ControlledTermAction } from './ControlledTermAction';\nimport { CedarJsonWriters } from '../../../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonValueConstraintsActionWriter extends AbstractJsonControlledTermValueConstraintWriter {\n public constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n public getAsJsonString(action: ControlledTermAction, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(action), null, indent);\n }\n\n override getAsJsonNode(action: ControlledTermAction): JsonNode {\n const ret = JsonNode.getEmpty();\n if (action.to !== null) {\n ret[CedarModel.ValueConstraints.to] = action.to;\n }\n ret[CedarModel.ValueConstraints.action] = action.action;\n ret[CedarModel.ValueConstraints.termUri] = this.atomicWriter.write(action.termUri);\n ret[CedarModel.ValueConstraints.sourceUri] = this.atomicWriter.write(action.sourceUri);\n ret[CedarModel.ValueConstraints.source] = action.source;\n ret[CedarModel.ValueConstraints.type] = this.atomicWriter.write(action.type);\n return ret;\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { ControlledTermAction } from './ControlledTermAction';\nimport { AbstractYamlControlledTermValueConstraintWriter } from '../AbstractYamlControlledTermValueConstraintWriter';\nimport { YamlKeys } from '../../../../../constants/YamlKeys';\nimport { YamlWriterBehavior } from '../../../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlValueConstraintsActionWriter extends AbstractYamlControlledTermValueConstraintWriter {\n public constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override getAsJsonNode(action: ControlledTermAction): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[YamlKeys.action] = action.action;\n if (action.to !== null) {\n ret[YamlKeys.Controlled.to] = action.to;\n }\n ret[YamlKeys.Controlled.termIri] = this.atomicWriter.write(action.termUri);\n ret[YamlKeys.Controlled.sourceIri] = this.atomicWriter.write(action.sourceUri);\n ret[YamlKeys.Controlled.sourceAcronym] = action.source;\n ret[YamlKeys.type] = this.atomicWriter.write(action.type);\n return ret;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermAbstractValueConstraint } from '../ControlledTermAbstractValueConstraint';\nimport { ControlledTermVersion } from '../ControlledTermVersion';\n\nexport class ControlledTermBranch extends ControlledTermAbstractValueConstraint {\n static className = 'ControlledTermBranch';\n public className = 'ControlledTermBranch';\n private readonly _source: string;\n private readonly _acronym: string;\n private readonly _name: string;\n private readonly _uri: Iri;\n private readonly _maxDepth: number = 0;\n\n constructor(\n source: string,\n acronym: string,\n name: string,\n maxDepth: number,\n uri: Iri,\n iri: Iri | null = null,\n sourceSystem: string | null = null,\n version: ControlledTermVersion | null = null,\n ) {\n super(iri, sourceSystem, version);\n this._source = source;\n this._acronym = acronym;\n this._uri = uri;\n this._name = name;\n this._maxDepth = maxDepth;\n }\n\n get source(): string {\n return this._source;\n }\n\n get acronym(): string {\n return this._acronym;\n }\n\n get name(): string {\n return this._name;\n }\n\n get uri(): Iri {\n return this._uri;\n }\n\n get maxDepth(): number {\n return this._maxDepth;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermBranch } from './ControlledTermBranch';\nimport { ValueConstraintRequirements } from '../ValueConstraintRequirements';\nimport { ControlledTermVersion } from '../ControlledTermVersion';\n\nexport class ControlledTermBranchBuilder {\n private _source: string = '';\n private _acronym: string = '';\n private _name: string = '';\n private _uri: Iri = Iri.empty();\n private _maxDepth: number = 0;\n private _iri: Iri | null = null;\n private _sourceSystem: string | null = null;\n private _version: ControlledTermVersion | null = null;\n\n public withSource(source: string): ControlledTermBranchBuilder {\n this._source = source;\n return this;\n }\n\n public withAcronym(acronym: string): ControlledTermBranchBuilder {\n this._acronym = acronym;\n return this;\n }\n\n public withName(name: string): ControlledTermBranchBuilder {\n this._name = name;\n return this;\n }\n\n public withUri(uri: Iri): ControlledTermBranchBuilder {\n this._uri = uri;\n return this;\n }\n\n public withMaxDepth(maxDepth: number): ControlledTermBranchBuilder {\n this._maxDepth = maxDepth;\n return this;\n }\n\n /** The source ontology's canonical identity, which holds whichever system serves it. */\n public withIri(iri: Iri | null): ControlledTermBranchBuilder {\n this._iri = iri;\n return this;\n }\n\n /** The system serving the vocabulary; null means BioPortal. */\n public withSourceSystem(sourceSystem: string | null): ControlledTermBranchBuilder {\n this._sourceSystem = sourceSystem;\n return this;\n }\n\n /** The snapshot this entry is pinned to; null resolves against the latest. */\n public withVersion(version: ControlledTermVersion | null): ControlledTermBranchBuilder {\n this._version = version;\n return this;\n }\n\n public build(): ControlledTermBranch {\n ValueConstraintRequirements.requireIri(this._uri, 'a URI', 'A branch constraint');\n ValueConstraintRequirements.requireText(this._source, 'a source', 'A branch constraint');\n ValueConstraintRequirements.requireText(this._acronym, 'an acronym', 'A branch constraint');\n ValueConstraintRequirements.requireText(this._name, 'a name', 'A branch constraint');\n return new ControlledTermBranch(\n this._source,\n this._acronym,\n this._name,\n this._maxDepth,\n this._uri,\n this._iri,\n this._sourceSystem,\n this._version,\n );\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../../../constants/CedarModel';\nimport { JsonWriterBehavior } from '../../../../../../../behavior/JsonWriterBehavior';\nimport { AbstractJsonControlledTermValueConstraintWriter } from '../AbstractJsonControlledTermValueConstraintWriter';\nimport { ControlledTermBranch } from './ControlledTermBranch';\nimport { CedarJsonWriters } from '../../../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonValueConstraintsBranchWriter extends AbstractJsonControlledTermValueConstraintWriter {\n public constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n public getAsJsonString(branch: ControlledTermBranch, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(branch), null, indent);\n }\n\n override getAsJsonNode(branch: ControlledTermBranch): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[CedarModel.ValueConstraints.uri] = this.atomicWriter.write(branch.uri);\n ret[CedarModel.ValueConstraints.source] = branch.source;\n ret[CedarModel.ValueConstraints.acronym] = branch.acronym;\n ret[CedarModel.ValueConstraints.name] = branch.name;\n ret[CedarModel.ValueConstraints.maxDepth] = branch.maxDepth;\n this.writeSourceAndVersion(ret, branch);\n return ret;\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { ControlledTermBranch } from './ControlledTermBranch';\nimport { AbstractYamlControlledTermValueConstraintWriter } from '../AbstractYamlControlledTermValueConstraintWriter';\nimport { YamlKeys } from '../../../../../constants/YamlKeys';\nimport { YamlValues } from '../../../../../constants/YamlValues';\nimport { YamlWriterBehavior } from '../../../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlValueConstraintsBranchWriter extends AbstractYamlControlledTermValueConstraintWriter {\n public constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override getAsJsonNode(branch: ControlledTermBranch): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[YamlKeys.type] = YamlValues.Controlled.branch;\n this.writeSourceSystem(ret, branch);\n ret[YamlKeys.Controlled.sourceAcronym] = branch.acronym;\n ret[YamlKeys.Controlled.sourceName] = branch.source;\n this.writeSourceIri(ret, branch);\n ret[YamlKeys.Controlled.termBaseIri] = this.atomicWriter.write(branch.uri);\n ret[YamlKeys.Controlled.termBaseLabel] = branch.name;\n ret[YamlKeys.Controlled.termMaxDepth] = branch.maxDepth;\n this.writeVersion(ret, branch);\n return ret;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermAbstractValueConstraint } from '../ControlledTermAbstractValueConstraint';\nimport { ControlledTermVersion } from '../ControlledTermVersion';\nimport { BioportalTermType } from '../../../../../types/bioportal-types/BioportalTermType';\n\nexport class ControlledTermClass extends ControlledTermAbstractValueConstraint {\n static className = 'ControlledTermClass';\n public className = 'ControlledTermClass';\n private readonly _label: string;\n private readonly _source: string;\n private readonly _type: BioportalTermType;\n private readonly _prefLabel: string;\n private readonly _uri: Iri;\n\n constructor(\n label: string,\n source: string,\n type: BioportalTermType,\n prefLabel: string,\n uri: Iri,\n iri: Iri | null = null,\n sourceSystem: string | null = null,\n version: ControlledTermVersion | null = null,\n ) {\n super(iri, sourceSystem, version);\n this._label = label;\n this._source = source;\n this._type = type;\n this._prefLabel = prefLabel;\n this._uri = uri;\n }\n\n get label(): string {\n return this._label;\n }\n\n get source(): string {\n return this._source;\n }\n\n get type(): BioportalTermType {\n return this._type;\n }\n\n get prefLabel(): string {\n return this._prefLabel;\n }\n\n get uri(): Iri {\n return this._uri;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermClass } from './ControlledTermClass';\nimport { ValueConstraintRequirements } from '../ValueConstraintRequirements';\nimport { ControlledTermVersion } from '../ControlledTermVersion';\nimport { BioportalTermType } from '../../../../../types/bioportal-types/BioportalTermType';\n\nexport class ControlledTermClassBuilder {\n private _label: string = '';\n private _source: string = '';\n private _type: BioportalTermType = BioportalTermType.NULL;\n private _prefLabel: string = '';\n private _uri: Iri = Iri.empty();\n private _iri: Iri | null = null;\n private _sourceSystem: string | null = null;\n private _version: ControlledTermVersion | null = null;\n\n public withLabel(label: string): ControlledTermClassBuilder {\n this._label = label;\n return this;\n }\n\n public withSource(source: string): ControlledTermClassBuilder {\n this._source = source;\n return this;\n }\n\n public withType(type: BioportalTermType): ControlledTermClassBuilder {\n this._type = type;\n return this;\n }\n\n public withPrefLabel(prefLabel: string): ControlledTermClassBuilder {\n this._prefLabel = prefLabel;\n return this;\n }\n\n public withUri(uri: Iri): ControlledTermClassBuilder {\n this._uri = uri;\n return this;\n }\n\n /** The source ontology's canonical identity, which holds whichever system serves it. */\n public withIri(iri: Iri | null): ControlledTermClassBuilder {\n this._iri = iri;\n return this;\n }\n\n /** The system serving the vocabulary; null means BioPortal. */\n public withSourceSystem(sourceSystem: string | null): ControlledTermClassBuilder {\n this._sourceSystem = sourceSystem;\n return this;\n }\n\n /** The snapshot this entry is pinned to; null resolves against the latest. */\n public withVersion(version: ControlledTermVersion | null): ControlledTermClassBuilder {\n this._version = version;\n return this;\n }\n\n public build(): ControlledTermClass {\n ValueConstraintRequirements.requireIri(this._uri, 'a URI', 'A class constraint');\n ValueConstraintRequirements.requireText(this._label, 'a label', 'A class constraint');\n ValueConstraintRequirements.requireText(this._prefLabel, 'a preferred label', 'A class constraint');\n ValueConstraintRequirements.requireText(this._source, 'a source', 'A class constraint');\n ValueConstraintRequirements.requireTermType(this._type, 'A class constraint');\n return new ControlledTermClass(\n this._label,\n this._source,\n this._type,\n this._prefLabel,\n this._uri,\n this._iri,\n this._sourceSystem,\n this._version,\n );\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../../../constants/CedarModel';\nimport { JsonWriterBehavior } from '../../../../../../../behavior/JsonWriterBehavior';\nimport { AbstractJsonControlledTermValueConstraintWriter } from '../AbstractJsonControlledTermValueConstraintWriter';\nimport { ControlledTermClass } from './ControlledTermClass';\nimport { CedarJsonWriters } from '../../../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonValueConstraintsClassWriter extends AbstractJsonControlledTermValueConstraintWriter {\n public constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n public getAsJsonString(clazz: ControlledTermClass, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(clazz), null, indent);\n }\n\n override getAsJsonNode(clazz: ControlledTermClass): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[CedarModel.ValueConstraints.uri] = this.atomicWriter.write(clazz.uri);\n ret[CedarModel.ValueConstraints.source] = clazz.source;\n ret[CedarModel.ValueConstraints.label] = clazz.label;\n ret[CedarModel.ValueConstraints.prefLabel] = clazz.prefLabel;\n ret[CedarModel.ValueConstraints.type] = this.atomicWriter.write(clazz.type);\n this.writeSourceAndVersion(ret, clazz);\n return ret;\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { ControlledTermClass } from './ControlledTermClass';\nimport { AbstractYamlControlledTermValueConstraintWriter } from '../AbstractYamlControlledTermValueConstraintWriter';\nimport { YamlKeys } from '../../../../../constants/YamlKeys';\nimport { YamlValues } from '../../../../../constants/YamlValues';\nimport { YamlWriterBehavior } from '../../../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlValueConstraintsClassWriter extends AbstractYamlControlledTermValueConstraintWriter {\n public constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override getAsJsonNode(clazz: ControlledTermClass): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[YamlKeys.type] = YamlValues.Controlled.class;\n this.writeSourceSystem(ret, clazz);\n ret[YamlKeys.Controlled.sourceAcronym] = clazz.source;\n this.writeSourceIri(ret, clazz);\n ret[YamlKeys.Controlled.termIri] = this.atomicWriter.write(clazz.uri);\n ret[YamlKeys.Controlled.termType] = this.atomicWriter.write(clazz.type);\n ret[YamlKeys.Controlled.termLabel] = clazz.prefLabel;\n // What the ontology calls the term, then what this template calls it, the second only where an\n // author has made them differ. A class read back with no display label of its own takes the\n // preferred one, so the ordinary entry stays a single key.\n if (clazz.label !== clazz.prefLabel) {\n ret[YamlKeys.Controlled.termDisplayLabel] = clazz.label;\n }\n this.writeVersion(ret, clazz);\n return ret;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermAbstractValueConstraint } from '../ControlledTermAbstractValueConstraint';\nimport { ControlledTermVersion } from '../ControlledTermVersion';\n\nexport class ControlledTermOntology extends ControlledTermAbstractValueConstraint {\n static className = 'ControlledTermOntology';\n public className = 'ControlledTermOntology';\n private readonly _acronym: string;\n private readonly _name: string;\n private readonly _uri: Iri;\n private readonly _numTerms: number | null = 0;\n\n constructor(\n acronym: string,\n name: string,\n numTerms: number | null,\n uri: Iri,\n iri: Iri | null = null,\n sourceSystem: string | null = null,\n version: ControlledTermVersion | null = null,\n ) {\n super(iri, sourceSystem, version);\n this._acronym = acronym;\n this._name = name;\n this._uri = uri;\n this._numTerms = numTerms;\n }\n\n get acronym(): string {\n return this._acronym;\n }\n\n get name(): string {\n return this._name;\n }\n\n get uri(): Iri {\n return this._uri;\n }\n\n get numTerms(): number | null {\n return this._numTerms;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermOntology } from './ControlledTermOntology';\nimport { ValueConstraintRequirements } from '../ValueConstraintRequirements';\nimport { ControlledTermVersion } from '../ControlledTermVersion';\n\nexport class ControlledTermOntologyBuilder {\n private acronym: string = '';\n private name: string = '';\n private numTerms: number | null = null;\n private uri: Iri = Iri.empty();\n private iri: Iri | null = null;\n private sourceSystem: string | null = null;\n private version: ControlledTermVersion | null = null;\n\n public withAcronym(acronym: string): ControlledTermOntologyBuilder {\n this.acronym = acronym;\n return this;\n }\n\n public withName(name: string): ControlledTermOntologyBuilder {\n this.name = name;\n return this;\n }\n\n public withNumTerms(numTerms: number | null): ControlledTermOntologyBuilder {\n this.numTerms = numTerms;\n return this;\n }\n\n public withUri(uri: Iri): ControlledTermOntologyBuilder {\n this.uri = uri;\n return this;\n }\n\n /** The source ontology's canonical identity, which holds whichever system serves it. */\n public withIri(iri: Iri | null): ControlledTermOntologyBuilder {\n this.iri = iri;\n return this;\n }\n\n /** The system serving the vocabulary; null means BioPortal. */\n public withSourceSystem(sourceSystem: string | null): ControlledTermOntologyBuilder {\n this.sourceSystem = sourceSystem;\n return this;\n }\n\n /** The snapshot this entry is pinned to; null resolves against the latest. */\n public withVersion(version: ControlledTermVersion | null): ControlledTermOntologyBuilder {\n this.version = version;\n return this;\n }\n\n public build(): ControlledTermOntology {\n ValueConstraintRequirements.requireIri(this.uri, 'a URI', 'An ontology constraint');\n ValueConstraintRequirements.requireText(this.acronym, 'an acronym', 'An ontology constraint');\n ValueConstraintRequirements.requireText(this.name, 'a name', 'An ontology constraint');\n return new ControlledTermOntology(this.acronym, this.name, this.numTerms, this.uri, this.iri, this.sourceSystem, this.version);\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../../../constants/CedarModel';\nimport { ControlledTermOntology } from './ControlledTermOntology';\nimport { JsonWriterBehavior } from '../../../../../../../behavior/JsonWriterBehavior';\nimport { AbstractJsonControlledTermValueConstraintWriter } from '../AbstractJsonControlledTermValueConstraintWriter';\nimport { CedarJsonWriters } from '../../../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonValueConstraintsOntologyWriter extends AbstractJsonControlledTermValueConstraintWriter {\n public constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n public getAsJsonString(ontology: ControlledTermOntology, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(ontology), null, indent);\n }\n\n override getAsJsonNode(ontology: ControlledTermOntology): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[CedarModel.ValueConstraints.uri] = this.atomicWriter.write(ontology.uri);\n ret[CedarModel.ValueConstraints.acronym] = ontology.acronym;\n ret[CedarModel.ValueConstraints.name] = ontology.name;\n if (ontology.numTerms !== null) {\n ret[CedarModel.ValueConstraints.numTerms] = ontology.numTerms;\n }\n this.writeSourceAndVersion(ret, ontology);\n return ret;\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { ControlledTermOntology } from './ControlledTermOntology';\nimport { AbstractYamlControlledTermValueConstraintWriter } from '../AbstractYamlControlledTermValueConstraintWriter';\nimport { YamlKeys } from '../../../../../constants/YamlKeys';\nimport { YamlValues } from '../../../../../constants/YamlValues';\nimport { YamlWriterBehavior } from '../../../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlValueConstraintsOntologyWriter extends AbstractYamlControlledTermValueConstraintWriter {\n public constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override getAsJsonNode(ontology: ControlledTermOntology): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[YamlKeys.type] = YamlValues.Controlled.ontology;\n this.writeSourceSystem(ret, ontology);\n ret[YamlKeys.Controlled.sourceAcronym] = ontology.acronym;\n ret[YamlKeys.Controlled.sourceName] = ontology.name;\n this.writeSourceIri(ret, ontology);\n // The ontology's BioPortal address is not written: it is derivable from the acronym, and the\n // reader reconstructs it.\n if (ontology.numTerms !== null) {\n ret[YamlKeys.Controlled.termCount] = ontology.numTerms;\n }\n this.writeVersion(ret, ontology);\n return ret;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermAbstractValueConstraint } from '../ControlledTermAbstractValueConstraint';\nimport { ControlledTermVersion } from '../ControlledTermVersion';\n\nexport class ControlledTermValueSet extends ControlledTermAbstractValueConstraint {\n static className = 'ControlledTermValueSet';\n public className = 'ControlledTermValueSet';\n private readonly _vsCollection: string;\n private readonly _name: string;\n private readonly _uri: Iri;\n private readonly _numTerms: number | null = 0;\n\n constructor(\n vsCollection: string,\n name: string,\n numTerms: number | null,\n uri: Iri,\n iri: Iri | null = null,\n sourceSystem: string | null = null,\n version: ControlledTermVersion | null = null,\n ) {\n super(iri, sourceSystem, version);\n this._vsCollection = vsCollection;\n this._name = name;\n this._uri = uri;\n this._numTerms = numTerms;\n }\n\n get vsCollection(): string {\n return this._vsCollection;\n }\n\n get name(): string {\n return this._name;\n }\n\n get uri(): Iri {\n return this._uri;\n }\n\n get numTerms(): number | null {\n return this._numTerms;\n }\n}\n","import { Iri } from '../../../../../types/wrapped-types/Iri';\nimport { ControlledTermValueSet } from './ControlledTermValueSet';\nimport { ValueConstraintRequirements } from '../ValueConstraintRequirements';\nimport { ControlledTermVersion } from '../ControlledTermVersion';\n\nexport class ControlledTermValueSetBuilder {\n private _vsCollection: string = '';\n private _name: string = '';\n private _uri: Iri = Iri.empty();\n private _numTerms: number | null = null;\n private _iri: Iri | null = null;\n private _sourceSystem: string | null = null;\n private _version: ControlledTermVersion | null = null;\n\n public withVsCollection(vsCollection: string): ControlledTermValueSetBuilder {\n this._vsCollection = vsCollection;\n return this;\n }\n\n public withName(name: string): ControlledTermValueSetBuilder {\n this._name = name;\n return this;\n }\n\n public withUri(uri: Iri): ControlledTermValueSetBuilder {\n this._uri = uri;\n return this;\n }\n\n /** How many terms the set holds; null where that is not known, as on the ontology builder. */\n public withNumTerms(numTerms: number | null): ControlledTermValueSetBuilder {\n this._numTerms = numTerms;\n return this;\n }\n\n /** The source ontology's canonical identity, which holds whichever system serves it. */\n public withIri(iri: Iri | null): ControlledTermValueSetBuilder {\n this._iri = iri;\n return this;\n }\n\n /** The system serving the vocabulary; null means BioPortal. */\n public withSourceSystem(sourceSystem: string | null): ControlledTermValueSetBuilder {\n this._sourceSystem = sourceSystem;\n return this;\n }\n\n /** The snapshot this entry is pinned to; null resolves against the latest. */\n public withVersion(version: ControlledTermVersion | null): ControlledTermValueSetBuilder {\n this._version = version;\n return this;\n }\n\n public build(): ControlledTermValueSet {\n ValueConstraintRequirements.requireIri(this._uri, 'a URI', 'A value-set constraint');\n ValueConstraintRequirements.requireText(this._vsCollection, 'a value-set collection', 'A value-set constraint');\n ValueConstraintRequirements.requireText(this._name, 'a name', 'A value-set constraint');\n return new ControlledTermValueSet(\n this._vsCollection,\n this._name,\n this._numTerms,\n this._uri,\n this._iri,\n this._sourceSystem,\n this._version,\n );\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../../../constants/CedarModel';\nimport { JsonWriterBehavior } from '../../../../../../../behavior/JsonWriterBehavior';\nimport { AbstractJsonControlledTermValueConstraintWriter } from '../AbstractJsonControlledTermValueConstraintWriter';\nimport { ControlledTermValueSet } from './ControlledTermValueSet';\nimport { CedarJsonWriters } from '../../../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonValueConstraintsValueSetWriter extends AbstractJsonControlledTermValueConstraintWriter {\n public constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n public getAsJsonString(valueSet: ControlledTermValueSet, indent: number = 2): string {\n return JSON.stringify(this.getAsJsonNode(valueSet), null, indent);\n }\n\n override getAsJsonNode(valueSet: ControlledTermValueSet): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[CedarModel.ValueConstraints.uri] = this.atomicWriter.write(valueSet.uri);\n ret[CedarModel.ValueConstraints.vsCollection] = valueSet.vsCollection;\n ret[CedarModel.ValueConstraints.name] = valueSet.name;\n if (valueSet.numTerms !== null) {\n ret[CedarModel.ValueConstraints.numTerms] = valueSet.numTerms;\n }\n this.writeSourceAndVersion(ret, valueSet);\n return ret;\n }\n}\n","import { JsonNode } from '../../../../../types/basic-types/JsonNode';\nimport { ControlledTermValueSet } from './ControlledTermValueSet';\nimport { AbstractYamlControlledTermValueConstraintWriter } from '../AbstractYamlControlledTermValueConstraintWriter';\nimport { YamlKeys } from '../../../../../constants/YamlKeys';\nimport { YamlValues } from '../../../../../constants/YamlValues';\nimport { YamlWriterBehavior } from '../../../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlValueConstraintsValueSetWriter extends AbstractYamlControlledTermValueConstraintWriter {\n public constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override getAsJsonNode(valueSet: ControlledTermValueSet): JsonNode {\n const ret = JsonNode.getEmpty();\n ret[YamlKeys.type] = YamlValues.Controlled.valueSet;\n this.writeSourceSystem(ret, valueSet);\n ret[YamlKeys.Controlled.sourceAcronym] = valueSet.vsCollection;\n this.writeSourceIri(ret, valueSet);\n ret[YamlKeys.Controlled.termBaseIri] = this.atomicWriter.write(valueSet.uri);\n ret[YamlKeys.Controlled.termBaseLabel] = valueSet.name;\n if (valueSet.numTerms !== null) {\n ret[YamlKeys.Controlled.termCount] = valueSet.numTerms;\n }\n this.writeVersion(ret, valueSet);\n return ret;\n }\n}\n","import { EmailField } from './EmailField';\nimport { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { EmailFieldImpl } from './EmailFieldImpl';\nimport { EmailFieldBuilder } from './EmailFieldBuilder';\n\nexport class EmailFieldBuilderImpl extends TemplateFieldBuilder implements EmailFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): EmailFieldBuilder {\n return new EmailFieldBuilderImpl();\n }\n\n public build(): EmailField {\n const emailField = EmailFieldImpl.buildEmpty();\n super.buildInternal(emailField);\n\n return emailField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { EmailField } from './EmailField';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\n\nexport class EmailFieldImpl extends TemplateField implements EmailField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.EMAIL;\n this.valueConstraints = new ValueConstraints();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): EmailField {\n return new EmailFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { EmailField } from './EmailField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { EmailFieldImpl } from './EmailFieldImpl';\n\nexport class JsonFieldReaderEmail extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): EmailField {\n const field = EmailFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterEmail extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { EmailField } from './EmailField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { EmailFieldImpl } from './EmailFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderEmail extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): EmailField {\n return EmailFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterEmail extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ExtDoiField } from './ExtDoiField';\nimport { ExtDoiFieldImpl } from './ExtDoiFieldImpl';\nimport { ExtDoiFieldBuilder } from './ExtDoiFieldBuilder';\n\nexport class ExtDoiFieldBuilderImpl extends TemplateFieldBuilder implements ExtDoiFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): ExtDoiFieldBuilder {\n return new ExtDoiFieldBuilderImpl();\n }\n\n public build(): ExtDoiField {\n const extRorField = ExtDoiFieldImpl.buildEmpty();\n super.buildInternal(extRorField);\n\n return extRorField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ExtDoiField } from './ExtDoiField';\n\nexport class ExtDoiFieldImpl extends TemplateField implements ExtDoiField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.EXT_DOI;\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.valueConstraints = new ValueConstraints();\n }\n\n public static buildEmpty(): ExtDoiField {\n return new ExtDoiFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { ExtDoiField } from './ExtDoiField';\nimport { ExtDoiFieldImpl } from './ExtDoiFieldImpl';\n\nexport class JsonFieldReaderExtDoi extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ExtDoiField {\n const field = ExtDoiFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterExtDoi extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of an ext-doi?\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { ExtDoiField } from './ExtDoiField';\nimport { ExtDoiFieldImpl } from './ExtDoiFieldImpl';\n\nexport class YamlFieldReaderExtDoi extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): ExtDoiField {\n return ExtDoiFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterExtDoi extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ExtNihGrantIdField } from './ExtNihGrantIdField';\nimport { ExtNihGrantIdFieldImpl } from './ExtNihGrantIdFieldImpl';\nimport { ExtNihGrantIdFieldBuilder } from './ExtNihGrantIdFieldBuilder';\n\nexport class ExtNihGrantIdFieldBuilderImpl extends TemplateFieldBuilder implements ExtNihGrantIdFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): ExtNihGrantIdFieldBuilder {\n return new ExtNihGrantIdFieldBuilderImpl();\n }\n\n public build(): ExtNihGrantIdField {\n const extRorField = ExtNihGrantIdFieldImpl.buildEmpty();\n super.buildInternal(extRorField);\n\n return extRorField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ExtNihGrantIdField } from './ExtNihGrantIdField';\n\nexport class ExtNihGrantIdFieldImpl extends TemplateField implements ExtNihGrantIdField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.EXT_NIH_GRANT_ID;\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.valueConstraints = new ValueConstraints();\n }\n\n public static buildEmpty(): ExtNihGrantIdField {\n return new ExtNihGrantIdFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { ExtNihGrantIdField } from './ExtNihGrantIdField';\nimport { ExtNihGrantIdFieldImpl } from './ExtNihGrantIdFieldImpl';\n\nexport class JsonFieldReaderExtNihGrantId extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ExtNihGrantIdField {\n const field = ExtNihGrantIdFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterExtNihGrantId extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of an ext-nih-grant-id?\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { ExtNihGrantIdField } from './ExtNihGrantIdField';\nimport { ExtNihGrantIdFieldImpl } from './ExtNihGrantIdFieldImpl';\n\nexport class YamlFieldReaderExtNihGrantId extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): ExtNihGrantIdField {\n return ExtNihGrantIdFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterExtNihGrantId extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ExtOrcidField } from './ExtOrcidField';\nimport { ExtOrcidFieldImpl } from './ExtOrcidFieldImpl';\nimport { ExtOrcidFieldBuilder } from './ExtOrcidFieldBuilder';\n\nexport class ExtOrcidFieldBuilderImpl extends TemplateFieldBuilder implements ExtOrcidFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): ExtOrcidFieldBuilder {\n return new ExtOrcidFieldBuilderImpl();\n }\n\n public build(): ExtOrcidField {\n const extOrcidField = ExtOrcidFieldImpl.buildEmpty();\n super.buildInternal(extOrcidField);\n\n return extOrcidField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ExtOrcidField } from './ExtOrcidField';\n\nexport class ExtOrcidFieldImpl extends TemplateField implements ExtOrcidField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.EXT_ORCID;\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.valueConstraints = new ValueConstraints();\n }\n\n public static buildEmpty(): ExtOrcidField {\n return new ExtOrcidFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { ExtOrcidField } from './ExtOrcidField';\nimport { ExtOrcidFieldImpl } from './ExtOrcidFieldImpl';\n\nexport class JsonFieldReaderExtOrcid extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ExtOrcidField {\n const field = ExtOrcidFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterExtOrcid extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of an ext-orcid?\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { ExtOrcidField } from './ExtOrcidField';\nimport { ExtOrcidFieldImpl } from './ExtOrcidFieldImpl';\n\nexport class YamlFieldReaderExtOrcid extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): ExtOrcidField {\n return ExtOrcidFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterExtOrcid extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ExtPfasField } from './ExtPfasField';\nimport { ExtPfasFieldBuilder } from './ExtPfasFieldBuilder';\nimport { ExtPfasFieldImpl } from './ExtPfasFieldImpl';\n\nexport class ExtPfasFieldBuilderImpl extends TemplateFieldBuilder implements ExtPfasFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): ExtPfasFieldBuilder {\n return new ExtPfasFieldBuilderImpl();\n }\n\n public build(): ExtPfasField {\n const extPfasField = ExtPfasFieldImpl.buildEmpty();\n super.buildInternal(extPfasField);\n\n return extPfasField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ExtPfasField } from './ExtPfasField';\n\nexport class ExtPfasFieldImpl extends TemplateField implements ExtPfasField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.EXT_PFAS;\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.valueConstraints = new ValueConstraints();\n }\n\n public static buildEmpty(): ExtPfasField {\n return new ExtPfasFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { ExtPfasField } from './ExtPfasField';\nimport { ExtPfasFieldImpl } from './ExtPfasFieldImpl';\n\nexport class JsonFieldReaderExtPfas extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ExtPfasField {\n const field = ExtPfasFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterExtPfas extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of an ext-pfas?\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { ExtPfasField } from './ExtPfasField';\nimport { ExtPfasFieldImpl } from './ExtPfasFieldImpl';\n\nexport class YamlFieldReaderExtPfas extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): ExtPfasField {\n return ExtPfasFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterExtPfas extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ExtPubmedField } from './ExtPubmedField';\nimport { ExtPubmedFieldImpl } from './ExtPubmedFieldImpl';\nimport { ExtPubmedFieldBuilder } from './ExtPubmedFieldBuilder';\n\nexport class ExtPubmedFieldBuilderImpl extends TemplateFieldBuilder implements ExtPubmedFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): ExtPubmedFieldBuilder {\n return new ExtPubmedFieldBuilderImpl();\n }\n\n public build(): ExtPubmedField {\n const extRorField = ExtPubmedFieldImpl.buildEmpty();\n super.buildInternal(extRorField);\n\n return extRorField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ExtPubmedField } from './ExtPubmedField';\n\nexport class ExtPubmedFieldImpl extends TemplateField implements ExtPubmedField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.EXT_PUBMED;\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.valueConstraints = new ValueConstraints();\n }\n\n public static buildEmpty(): ExtPubmedField {\n return new ExtPubmedFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { ExtPubmedField } from './ExtPubmedField';\nimport { ExtPubmedFieldImpl } from './ExtPubmedFieldImpl';\n\nexport class JsonFieldReaderExtPubmed extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ExtPubmedField {\n const field = ExtPubmedFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterExtPubmed extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of an ext-pubmed?\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { ExtPubmedField } from './ExtPubmedField';\nimport { ExtPubmedFieldImpl } from './ExtPubmedFieldImpl';\n\nexport class YamlFieldReaderExtPubmed extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): ExtPubmedField {\n return ExtPubmedFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterExtPubmed extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ExtRorField } from './ExtRorField';\nimport { ExtRorFieldImpl } from './ExtRorFieldImpl';\nimport { ExtRorFieldBuilder } from './ExtRorFieldBuilder';\n\nexport class ExtRorFieldBuilderImpl extends TemplateFieldBuilder implements ExtRorFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): ExtRorFieldBuilder {\n return new ExtRorFieldBuilderImpl();\n }\n\n public build(): ExtRorField {\n const extRorField = ExtRorFieldImpl.buildEmpty();\n super.buildInternal(extRorField);\n\n return extRorField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ExtRorField } from './ExtRorField';\n\nexport class ExtRorFieldImpl extends TemplateField implements ExtRorField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.EXT_ROR;\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.valueConstraints = new ValueConstraints();\n }\n\n public static buildEmpty(): ExtRorField {\n return new ExtRorFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { ExtRorField } from './ExtRorField';\nimport { ExtRorFieldImpl } from './ExtRorFieldImpl';\n\nexport class JsonFieldReaderExtRor extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ExtRorField {\n const field = ExtRorFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterExtRor extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of an ext-ror?\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { ExtRorField } from './ExtRorField';\nimport { ExtRorFieldImpl } from './ExtRorFieldImpl';\n\nexport class YamlFieldReaderExtRor extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): ExtRorField {\n return ExtRorFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterExtRor extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ExtRridField } from './ExtRridField';\nimport { ExtRridFieldImpl } from './ExtRridFieldImpl';\nimport { ExtRridFieldBuilder } from './ExtRridFieldBuilder';\n\nexport class ExtRridFieldBuilderImpl extends TemplateFieldBuilder implements ExtRridFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): ExtRridFieldBuilder {\n return new ExtRridFieldBuilderImpl();\n }\n\n public build(): ExtRridField {\n const extRorField = ExtRridFieldImpl.buildEmpty();\n super.buildInternal(extRorField);\n\n return extRorField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ExtRridField } from './ExtRridField';\n\nexport class ExtRridFieldImpl extends TemplateField implements ExtRridField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.EXT_RRID;\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.valueConstraints = new ValueConstraints();\n }\n\n public static buildEmpty(): ExtRridField {\n return new ExtRridFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { ExtRridField } from './ExtRridField';\nimport { ExtRridFieldImpl } from './ExtRridFieldImpl';\n\nexport class JsonFieldReaderExtRrid extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ExtRridField {\n const field = ExtRridFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterExtRrid extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of an ext-rrid?\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { ExtRridField } from './ExtRridField';\nimport { ExtRridFieldImpl } from './ExtRridFieldImpl';\n\nexport class YamlFieldReaderExtRrid extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): ExtRridField {\n return ExtRridFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterExtRrid extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { LinkField } from './LinkField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { LinkFieldImpl } from './LinkFieldImpl';\n\nexport class JsonFieldReaderLink extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): LinkField {\n const field = LinkFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterLink extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n if (this.behavior.includeSkosNotationForLinksAndControlled()) {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI;\n } else {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION;\n }\n }\n\n override expandRequiredNode(_requiredObject: JsonNode): void {\n // TODO: Should the @id be required in case of a link?\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { LinkField } from './LinkField';\nimport { LinkFieldBuilder } from './LinkFieldBuilder';\nimport { LinkFieldImpl } from './LinkFieldImpl';\n\nexport class LinkFieldBuilderImpl extends TemplateFieldBuilder implements LinkFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): LinkFieldBuilder {\n return new LinkFieldBuilderImpl();\n }\n\n public build(): LinkField {\n const linkField = LinkFieldImpl.buildEmpty();\n super.buildInternal(linkField);\n\n return linkField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { LinkField } from './LinkField';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\n\nexport class LinkFieldImpl extends TemplateField implements LinkField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.LINK;\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.valueConstraints = new ValueConstraints();\n }\n\n public static buildEmpty(): LinkField {\n return new LinkFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { LinkField } from './LinkField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { LinkFieldImpl } from './LinkFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderLink extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): LinkField {\n return LinkFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterLink extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { ListFieldBuilderImpl } from '../list/ListFieldBuilderImpl';\nimport { MultipleChoiceListField } from './MultipleChoiceListField';\nimport { MultipleChoiceListFieldBuilder } from './MultipleChoiceListFieldBuilder';\n\nexport class MultipleChoiceListFieldBuilderImpl extends ListFieldBuilderImpl {\n private constructor() {\n super();\n this.multipleChoice = true;\n }\n\n public static create(): MultipleChoiceListFieldBuilder {\n return new MultipleChoiceListFieldBuilderImpl();\n }\n\n public build(): MultipleChoiceListField {\n return super.build() as MultipleChoiceListField;\n }\n}\n","import { ListFieldImpl } from '../list/ListFieldImpl';\nimport { ListField } from '../list/ListField';\nimport { MultipleChoiceListField } from './MultipleChoiceListField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { ChildDeploymentInfoAlwaysMultipleBuilder } from '../../../deployment/ChildDeploymentInfoAlwaysMultipleBuilder';\n\nexport class MultipleChoiceListFieldImpl extends ListFieldImpl implements ListField {\n private constructor() {\n super();\n this.multipleChoice = true;\n this.cedarFieldType = CedarFieldType.MULTIPLE_SELECT_LIST;\n }\n\n public static buildEmpty(): MultipleChoiceListField {\n return new MultipleChoiceListFieldImpl();\n }\n\n override isMultiInstanceByDefinition(): boolean {\n return true;\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoAlwaysMultipleBuilder {\n return new ChildDeploymentInfoAlwaysMultipleBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { MultipleChoiceListField } from './MultipleChoiceListField';\nimport { MultipleChoiceListFieldImpl } from './MultipleChoiceListFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderMultiSelectList extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): MultipleChoiceListField {\n const field = MultipleChoiceListFieldImpl.buildEmpty();\n YamlTemplateFieldTypeSpecificReader.readAndStoreListValueConstraints(fieldSourceObject, field);\n return field;\n }\n}\n","import { ListFieldBuilderImpl } from '../list/ListFieldBuilderImpl';\nimport { SingleChoiceListField } from './SingleChoiceListField';\nimport { SingleChoiceListFieldBuilder } from './SingleChoiceListFieldBuilder';\n\nexport class SingleChoiceListFieldBuilderImpl extends ListFieldBuilderImpl {\n private constructor() {\n super();\n this.multipleChoice = false;\n }\n\n public static create(): SingleChoiceListFieldBuilder {\n return new SingleChoiceListFieldBuilderImpl();\n }\n\n public build(): SingleChoiceListField {\n return super.build() as SingleChoiceListField;\n }\n}\n","import { ListFieldImpl } from '../list/ListFieldImpl';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ListField } from '../list/ListField';\nimport { SingleChoiceListField } from './SingleChoiceListField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\n\n/**\n * A list a form offers one option from.\n *\n * Its cardinality is a separate question from how many options it offers, so it takes the ordinary\n * deployment builder rather than the always-single one. It was single-instance by definition, which\n * left a repeatable single-select — a field a form asks several times, one answer each — with nowhere\n * to live: a template declaring one was read as a multi-select instead, and written back saying so.\n */\nexport class SingleChoiceListFieldImpl extends ListFieldImpl implements ListField {\n private constructor() {\n super();\n this.multipleChoice = false;\n this.cedarFieldType = CedarFieldType.SINGLE_SELECT_LIST;\n }\n\n public static buildEmpty(): SingleChoiceListField {\n return new SingleChoiceListFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { SingleChoiceListFieldImpl } from './SingleChoiceListFieldImpl';\nimport { SingleChoiceListField } from './SingleChoiceListField';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderSingleSelectList extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): SingleChoiceListField {\n const field = SingleChoiceListFieldImpl.buildEmpty();\n YamlTemplateFieldTypeSpecificReader.readAndStoreListValueConstraints(fieldSourceObject, field);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ListField } from './ListField';\nimport { ListOption } from './ListOption';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { MultipleChoiceListFieldImpl } from '../list-multiple-choice/MultipleChoiceListFieldImpl';\nimport { SingleChoiceListFieldImpl } from '../list-single-choice/SingleChoiceListFieldImpl';\n\nexport class JsonFieldReaderList extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): ListField {\n let field: ListField = SingleChoiceListFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n // Whether several options can be picked at once is what `multipleChoice` says, wherever the\n // field sits. A child field took it from the property's cardinality instead — how many instances\n // of the field there are, which is a different question — so a list offering one option, written\n // as a repeatable field, was read as a multi-select and written back with `multipleChoice: true`\n // over the `false` its template declared. The Java library reads the declared value, and this\n // follows it.\n const multipleChoice: boolean = ReaderUtil.getBoolean(valueConstraints, CedarModel.multipleChoice);\n if (multipleChoice) {\n field = MultipleChoiceListFieldImpl.buildEmpty();\n }\n field.valueConstraints.defaultValue = ReaderUtil.getString(valueConstraints, CedarModel.defaultValue);\n const literals: Array<JsonNode> = ReaderUtil.getNodeList(valueConstraints, CedarModel.literals);\n if (literals !== null) {\n literals.forEach((literal) => {\n const label = ReaderUtil.getString(literal, CedarModel.label);\n const selectedByDefault = ReaderUtil.getBoolean(literal, CedarModel.selectedByDefault);\n if (label != null) {\n const option = new ListOption(label, selectedByDefault);\n field.valueConstraints.literals.push(option);\n }\n });\n }\n }\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { ListField } from './ListField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterList extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNode(vcNode: JsonNode, field: ListField, childInfo: ChildDeploymentInfo): void {\n if (field.valueConstraints.defaultValue !== null && field.valueConstraints.defaultValue !== '') {\n vcNode[CedarModel.defaultValue] = field.valueConstraints.defaultValue;\n }\n this.expandLiterals(field, vcNode);\n super.expandValueConstraintsNode(vcNode, field, childInfo);\n vcNode[CedarModel.multipleChoice] = field.multipleChoice;\n }\n}\n","import { ListField } from './ListField';\nimport { ListOption } from './ListOption';\nimport { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { ListFieldBuilder } from './ListFieldBuilder';\nimport { MultipleChoiceListFieldImpl } from '../list-multiple-choice/MultipleChoiceListFieldImpl';\nimport { SingleChoiceListFieldImpl } from '../list-single-choice/SingleChoiceListFieldImpl';\n\nexport abstract class ListFieldBuilderImpl extends TemplateFieldBuilder implements ListFieldBuilder {\n protected multipleChoice: boolean = false;\n private literals: Array<ListOption> = [];\n\n protected constructor() {\n super();\n }\n\n public addListOption(label: string, selectedByDefault: boolean = false): this {\n this.literals.push(new ListOption(label, selectedByDefault));\n return this;\n }\n\n public build(): ListField {\n let listField: ListField;\n if (this.multipleChoice) {\n listField = MultipleChoiceListFieldImpl.buildEmpty();\n } else {\n listField = SingleChoiceListFieldImpl.buildEmpty();\n }\n super.buildInternal(listField);\n\n if (!this.multipleChoice) {\n // Find the last option that was marked as selectedByDefault\n let lastSelectedIndex = -1;\n for (let i = this.literals.length - 1; i >= 0; i--) {\n if (this.literals[i].selectedByDefault) {\n lastSelectedIndex = i;\n break;\n }\n }\n\n if (lastSelectedIndex !== -1) {\n this.literals.forEach((option, index) => {\n option.selectedByDefault = index === lastSelectedIndex;\n });\n }\n }\n\n listField.valueConstraints.literals = this.literals;\n\n return listField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraintsListField } from './ValueConstraintsListField';\nimport { ListField } from './ListField';\n\nexport abstract class ListFieldImpl extends TemplateField implements ListField {\n // Redeclare valueConstraints with a more specific type\n public valueConstraints: ValueConstraintsListField;\n public multipleChoice: boolean;\n\n protected constructor() {\n super();\n this.cedarFieldType = CedarFieldType.NULL;\n this.valueConstraints = new ValueConstraintsListField();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n this.multipleChoice = false;\n }\n}\n","import { ChoiceOptionEntity } from '../../ChoiceOptionEntity';\n\nexport class ListOption extends ChoiceOptionEntity {\n public constructor(label: string, selectedByDefault: boolean) {\n super(label, selectedByDefault);\n }\n}\n","import { ValueConstraints } from '../../ValueConstraints';\nimport { ListOption } from './ListOption';\n\nexport class ValueConstraintsListField extends ValueConstraints {\n public defaultValue: string | null = null;\n public literals: Array<ListOption> = [];\n\n public constructor() {\n super();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { ListField } from './ListField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlArtifactType } from '../../../types/wrapped-types/YamlArtifactType';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\nimport { YamlKeys } from '../../../constants/YamlKeys';\n\nexport class YamlFieldWriterList extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNodeForYAML(vcNode: JsonNode, field: ListField, _childInfo: ChildDeploymentInfo): void {\n if (field.valueConstraints.defaultValue !== null && field.valueConstraints.defaultValue !== '') {\n vcNode[YamlKeys.default] = field.valueConstraints.defaultValue;\n }\n this.expandLiterals(field, vcNode);\n }\n\n protected override getYamlType(field: ListField) {\n if (field.multipleChoice) {\n return YamlArtifactType.MULTI_SELECT_LIST.getValue();\n } else {\n return YamlArtifactType.SINGLE_SELECT_LIST.getValue();\n }\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { NumericField } from './NumericField';\nimport { NumberType } from '../../../types/wrapped-types/NumberType';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { NumericFieldImpl } from './NumericFieldImpl';\nimport { NumericDefaultValueValidator } from './NumericDefaultValueValidator';\n\nexport class JsonFieldReaderNumeric extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): NumericField {\n const field = NumericFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n const numberTypeString = ReaderUtil.getString(valueConstraints, CedarModel.numberType);\n if (numberTypeString !== null) {\n field.valueConstraints.numberType = NumberType.forValue(numberTypeString);\n }\n field.valueConstraints.minValue = ReaderUtil.getNumber(valueConstraints, CedarModel.minValue);\n field.valueConstraints.maxValue = ReaderUtil.getNumber(valueConstraints, CedarModel.maxValue);\n field.valueConstraints.decimalPlaces = ReaderUtil.getNumber(valueConstraints, CedarModel.decimalPlace);\n field.valueConstraints.unitOfMeasure = ReaderUtil.getString(valueConstraints, CedarModel.unitOfMeasure);\n field.valueConstraints.defaultValue = ReaderUtil.getNumericDefault(valueConstraints, CedarModel.defaultValue);\n NumericDefaultValueValidator.assertValid(\n field.valueConstraints.numberType,\n field.valueConstraints.defaultValue,\n field.valueConstraints.minValue,\n field.valueConstraints.maxValue,\n );\n }\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonTemplateFieldContentDynamic } from '../../../util/serialization/JsonTemplateFieldContentDynamic';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { NumericField } from './NumericField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\nimport { NumericDefaultValueValidator } from './NumericDefaultValueValidator';\n\nexport class JsonFieldWriterNumeric extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandPropertiesNode(propertiesObject: JsonNode): void {\n propertiesObject[JsonSchema.properties] = JsonTemplateFieldContentDynamic.PROPERTIES_VERBATIM_LITERAL;\n }\n\n override expandRequiredNode(requiredObject: JsonNode): void {\n requiredObject[JsonSchema.required] = [JsonSchema.atValue, JsonSchema.atType];\n }\n\n override expandValueConstraintsNode(vcNode: JsonNode, field: NumericField, childInfo: ChildDeploymentInfo): void {\n NumericDefaultValueValidator.assertValid(\n field.valueConstraints.numberType,\n field.valueConstraints.defaultValue,\n field.valueConstraints.minValue,\n field.valueConstraints.maxValue,\n );\n vcNode[CedarModel.numberType] = this.atomicWriter.write(field.valueConstraints.numberType);\n if (field.valueConstraints.minValue != null) {\n vcNode[CedarModel.minValue] = field.valueConstraints.minValue;\n }\n if (field.valueConstraints.maxValue != null) {\n vcNode[CedarModel.maxValue] = field.valueConstraints.maxValue;\n }\n if (field.valueConstraints.decimalPlaces != null) {\n vcNode[CedarModel.decimalPlace] = field.valueConstraints.decimalPlaces;\n }\n if (field.valueConstraints.unitOfMeasure != null) {\n vcNode[CedarModel.unitOfMeasure] = field.valueConstraints.unitOfMeasure;\n }\n if (field.valueConstraints.defaultValue != null) {\n // The CEDAR JSON schema permits a string or URI/label object here, not a\n // bare number. Match the Java artifact library's canonical encoding.\n vcNode[CedarModel.defaultValue] = String(field.valueConstraints.defaultValue);\n }\n super.expandValueConstraintsNode(vcNode, field, childInfo);\n }\n}\n","import { NumberType, NumberTypeValues } from '../../../types/wrapped-types/NumberType';\n\nexport class NumericDefaultValueValidator {\n public static assertValid(\n numberType: NumberType,\n defaultValue: number | null,\n minValue: number | null = null,\n maxValue: number | null = null,\n ): void {\n if (defaultValue === null) {\n return;\n }\n if (!Number.isFinite(defaultValue)) {\n throw new Error('Numeric default must be finite.');\n }\n\n const type = numberType.getValue();\n if (type === null) {\n throw new Error('Numeric default requires a numeric datatype.');\n }\n\n const integerRanges: Partial<Record<string, [number, number]>> = {\n [NumberTypeValues.BYTE]: [-128, 127],\n [NumberTypeValues.SHORT]: [-32768, 32767],\n [NumberTypeValues.INT]: [-2147483648, 2147483647],\n [NumberTypeValues.LONG]: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n };\n const integerRange = integerRanges[type];\n if (integerRange !== undefined) {\n if (!Number.isSafeInteger(defaultValue)) {\n throw new Error(`Numeric default ${defaultValue} must be a safely representable integer for ${type}.`);\n }\n if (defaultValue < integerRange[0] || defaultValue > integerRange[1]) {\n throw new Error(`Numeric default ${defaultValue} is outside the ${type} range.`);\n }\n }\n\n if (type === NumberTypeValues.FLOAT) {\n const magnitude = Math.abs(defaultValue);\n if (magnitude > 3.4028234663852886e38 || (magnitude !== 0 && magnitude < 1.401298464324817e-45)) {\n throw new Error(`Numeric default ${defaultValue} is outside the ${type} range.`);\n }\n }\n if (minValue !== null && defaultValue < minValue) {\n throw new Error(`Numeric default ${defaultValue} is below minValue ${minValue}.`);\n }\n if (maxValue !== null && defaultValue > maxValue) {\n throw new Error(`Numeric default ${defaultValue} is above maxValue ${maxValue}.`);\n }\n }\n}\n","import { NumericField } from './NumericField';\nimport { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { NumberType } from '../../../types/wrapped-types/NumberType';\nimport { NumericFieldBuilder } from './NumericFieldBuilder';\nimport { NumericFieldImpl } from './NumericFieldImpl';\nimport { NumericDefaultValueValidator } from './NumericDefaultValueValidator';\n\nexport class NumericFieldBuilderImpl extends TemplateFieldBuilder implements NumericFieldBuilder {\n private numberType: NumberType = NumberType.DECIMAL;\n private minValue: number | null = null;\n private maxValue: number | null = null;\n private decimalPlaces: number | null = null;\n private unitOfMeasure: string | null = null;\n private defaultValue: number | null = null;\n\n private constructor() {\n super();\n }\n\n public static create(): NumericFieldBuilder {\n return new NumericFieldBuilderImpl();\n }\n\n public withNumberType(numberType: NumberType): NumericFieldBuilder {\n this.numberType = numberType;\n return this;\n }\n\n public withMinValue(minValue: number | null): NumericFieldBuilder {\n this.minValue = minValue;\n return this;\n }\n\n public withMaxValue(maxValue: number | null): NumericFieldBuilder {\n this.maxValue = maxValue;\n return this;\n }\n\n public withDecimalPlaces(decimalPlaces: number | null): NumericFieldBuilder {\n this.decimalPlaces = decimalPlaces;\n return this;\n }\n\n public withUnitOfMeasure(unitOfMeasure: string | null): NumericFieldBuilder {\n this.unitOfMeasure = unitOfMeasure;\n return this;\n }\n\n public withDefaultValue(defaultValue: number | null): NumericFieldBuilder {\n this.defaultValue = defaultValue;\n return this;\n }\n\n public build(): NumericField {\n NumericDefaultValueValidator.assertValid(this.numberType, this.defaultValue, this.minValue, this.maxValue);\n const numericField = NumericFieldImpl.buildEmpty();\n super.buildInternal(numericField);\n\n numericField.valueConstraints.numberType = this.numberType;\n numericField.valueConstraints.minValue = this.minValue;\n numericField.valueConstraints.maxValue = this.maxValue;\n numericField.valueConstraints.decimalPlaces = this.decimalPlaces;\n numericField.valueConstraints.unitOfMeasure = this.unitOfMeasure;\n numericField.valueConstraints.defaultValue = this.defaultValue;\n\n return numericField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraintsNumericField } from './ValueConstraintsNumericField';\nimport { NumericField } from './NumericField';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\n\nexport class NumericFieldImpl extends TemplateField implements NumericField {\n // Redeclare valueConstraints with a more specific type\n public valueConstraints: ValueConstraintsNumericField;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.NUMERIC;\n this.valueConstraints = new ValueConstraintsNumericField();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): NumericField {\n return new NumericFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { ValueConstraints } from '../../ValueConstraints';\nimport { NumberType } from '../../../types/wrapped-types/NumberType';\n\nexport class ValueConstraintsNumericField extends ValueConstraints {\n numberType: NumberType = NumberType.DECIMAL;\n minValue: number | null = null;\n maxValue: number | null = null;\n decimalPlaces: number | null = null;\n unitOfMeasure: string | null = null;\n defaultValue: number | null = null;\n\n public constructor() {\n super();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { NumericField } from './NumericField';\nimport { NumberType } from '../../../types/wrapped-types/NumberType';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { NumericFieldImpl } from './NumericFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { NumericDefaultValueValidator } from './NumericDefaultValueValidator';\n\nexport class YamlFieldReaderNumeric extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): NumericField {\n const field = NumericFieldImpl.buildEmpty();\n\n // Only override the type when the YAML states one, so an unspecified datatype\n // keeps the empty field's default of xsd:decimal. This matches\n // JsonFieldReaderNumeric, which guards the same assignment, and the Java\n // library, whose JSON and YAML readers both default a missing numeric type to\n // xsd:decimal. Assigning unconditionally clobbered that default with null on\n // the YAML side, so the same numeric field read as JSON and as YAML disagreed.\n const datatype = ReaderUtil.getString(fieldSourceObject, YamlKeys.datatype);\n if (datatype !== null) {\n field.valueConstraints.numberType = NumberType.forValue(datatype);\n }\n field.valueConstraints.minValue = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.minValue);\n field.valueConstraints.maxValue = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.maxValue);\n field.valueConstraints.decimalPlaces = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.decimalPlaces);\n field.valueConstraints.unitOfMeasure = ReaderUtil.getString(fieldSourceObject, YamlKeys.unit);\n field.valueConstraints.defaultValue = ReaderUtil.getNumericDefault(fieldSourceObject, YamlKeys.default);\n NumericDefaultValueValidator.assertValid(\n field.valueConstraints.numberType,\n field.valueConstraints.defaultValue,\n field.valueConstraints.minValue,\n field.valueConstraints.maxValue,\n );\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { NumericField } from './NumericField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\nimport { NumericDefaultValueValidator } from './NumericDefaultValueValidator';\n\nexport class YamlFieldWriterNumeric extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNodeForYAML(vcNode: JsonNode, field: NumericField, _childInfo: ChildDeploymentInfo): void {\n NumericDefaultValueValidator.assertValid(\n field.valueConstraints.numberType,\n field.valueConstraints.defaultValue,\n field.valueConstraints.minValue,\n field.valueConstraints.maxValue,\n );\n vcNode[YamlKeys.datatype] = this.atomicWriter.write(field.valueConstraints.numberType);\n if (field.valueConstraints.minValue != null) {\n vcNode[YamlKeys.minValue] = field.valueConstraints.minValue;\n }\n if (field.valueConstraints.maxValue != null) {\n vcNode[YamlKeys.maxValue] = field.valueConstraints.maxValue;\n }\n if (field.valueConstraints.decimalPlaces != null) {\n vcNode[YamlKeys.decimalPlaces] = field.valueConstraints.decimalPlaces;\n }\n if (field.valueConstraints.unitOfMeasure != null) {\n vcNode[YamlKeys.unit] = field.valueConstraints.unitOfMeasure;\n }\n if (field.valueConstraints.defaultValue != null) {\n vcNode[YamlKeys.default] = field.valueConstraints.defaultValue;\n }\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { PhoneNumberField } from './PhoneNumberField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { PhoneNumberFieldImpl } from './PhoneNumberFieldImpl';\n\nexport class JsonFieldReaderPhoneNumber extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): PhoneNumberField {\n const field = PhoneNumberFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n return field;\n }\n}\n","import { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterPhoneNumber extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { PhoneNumberField } from './PhoneNumberField';\nimport { PhoneNumberFieldBuilder } from './PhoneNumberFieldBuilder';\nimport { PhoneNumberFieldImpl } from './PhoneNumberFieldImpl';\n\nexport class PhoneNumberFieldBuilderImpl extends TemplateFieldBuilder implements PhoneNumberFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): PhoneNumberFieldBuilder {\n return new PhoneNumberFieldBuilderImpl();\n }\n\n public build(): PhoneNumberField {\n const phoneNumberField = PhoneNumberFieldImpl.buildEmpty();\n super.buildInternal(phoneNumberField);\n\n return phoneNumberField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraints } from '../../ValueConstraints';\nimport { PhoneNumberField } from './PhoneNumberField';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\n\nexport class PhoneNumberFieldImpl extends TemplateField implements PhoneNumberField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.PHONE_NUMBER;\n this.valueConstraints = new ValueConstraints();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): PhoneNumberField {\n return new PhoneNumberFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { PhoneNumberField } from './PhoneNumberField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { PhoneNumberFieldImpl } from './PhoneNumberFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderPhoneNumber extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): PhoneNumberField {\n return PhoneNumberFieldImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterPhoneNumber extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { RadioField } from './RadioField';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { RadioOption } from './RadioOption';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { RadioFieldImpl } from './RadioFieldImpl';\n\nexport class JsonFieldReaderRadio extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): RadioField {\n const field = RadioFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n const literals: Array<JsonNode> = ReaderUtil.getNodeList(valueConstraints, CedarModel.literals);\n if (literals !== null) {\n literals.forEach((literal) => {\n const label = ReaderUtil.getString(literal, CedarModel.label);\n const selectedByDefault = ReaderUtil.getBoolean(literal, CedarModel.selectedByDefault);\n if (label != null) {\n const option = new RadioOption(label, selectedByDefault);\n field.valueConstraints.literals.push(option);\n }\n });\n }\n }\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { RadioField } from './RadioField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterRadio extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNode(vcNode: JsonNode, field: RadioField, childInfo: ChildDeploymentInfo): void {\n this.expandLiterals(field, vcNode);\n super.expandValueConstraintsNode(vcNode, field, childInfo);\n vcNode[CedarModel.multipleChoice] = false;\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { RadioOption } from './RadioOption';\nimport { RadioField } from './RadioField';\nimport { RadioFieldBuilder } from './RadioFieldBuilder';\nimport { RadioFieldImpl } from './RadioFieldImpl';\n\nexport class RadioFieldBuilderImpl extends TemplateFieldBuilder implements RadioFieldBuilder {\n private literals: Array<RadioOption> = [];\n\n private constructor() {\n super();\n }\n\n public static create(): RadioFieldBuilder {\n return new RadioFieldBuilderImpl();\n }\n\n public addRadioOption(label: string, selectedByDefault: boolean = false): RadioFieldBuilder {\n this.literals.push(new RadioOption(label, selectedByDefault));\n return this;\n }\n\n public build(): RadioField {\n const radioField = RadioFieldImpl.buildEmpty();\n super.buildInternal(radioField);\n\n // Find the last option that was marked as selectedByDefault\n let lastSelectedIndex = -1;\n for (let i = this.literals.length - 1; i >= 0; i--) {\n if (this.literals[i].selectedByDefault) {\n lastSelectedIndex = i;\n break;\n }\n }\n\n if (lastSelectedIndex !== -1) {\n this.literals.forEach((option, index) => {\n option.selectedByDefault = index === lastSelectedIndex;\n });\n }\n\n radioField.valueConstraints.literals = this.literals;\n\n return radioField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraintsRadioField } from './ValueConstraintsRadioField';\nimport { RadioField } from './RadioField';\nimport { ChildDeploymentInfoAlwaysSingleBuilder } from '../../../deployment/ChildDeploymentInfoAlwaysSingleBuilder';\n\nexport class RadioFieldImpl extends TemplateField implements RadioField {\n // Redeclare valueConstraints with a more specific type\n public valueConstraints: ValueConstraintsRadioField;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.RADIO;\n this.valueConstraints = new ValueConstraintsRadioField();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): RadioField {\n return new RadioFieldImpl();\n }\n\n override isSingleInstanceByDefinition(): boolean {\n return true;\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoAlwaysSingleBuilder {\n return new ChildDeploymentInfoAlwaysSingleBuilder(this, childName);\n }\n}\n","import { ChoiceOptionEntity } from '../../ChoiceOptionEntity';\n\nexport class RadioOption extends ChoiceOptionEntity {\n public constructor(label: string, selectedByDefault: boolean) {\n super(label, selectedByDefault);\n }\n}\n","import { ValueConstraints } from '../../ValueConstraints';\nimport { RadioOption } from './RadioOption';\n\nexport class ValueConstraintsRadioField extends ValueConstraints {\n literals: Array<RadioOption> = [];\n\n public constructor() {\n super();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { RadioField } from './RadioField';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { RadioOption } from './RadioOption';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { RadioFieldImpl } from './RadioFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderRadio extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): RadioField {\n const field = RadioFieldImpl.buildEmpty();\n\n const literals: Array<JsonNode> = ReaderUtil.getNodeList(fieldSourceObject, YamlKeys.values);\n if (literals !== null) {\n literals.forEach((literal) => {\n const label = ReaderUtil.getString(literal, YamlKeys.label);\n const selectedByDefault = ReaderUtil.getBoolean(literal, YamlKeys.selected);\n if (label != null) {\n const option = new RadioOption(label, selectedByDefault);\n field.valueConstraints.literals.push(option);\n }\n });\n }\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { RadioField } from './RadioField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterRadio extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNodeForYAML(vcNode: JsonNode, field: RadioField, _childInfo: ChildDeploymentInfo): void {\n this.expandLiterals(field, vcNode);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { TemporalField } from './TemporalField';\nimport { TemporalType } from '../../../types/wrapped-types/TemporalType';\nimport { TimeFormat } from '../../../types/wrapped-types/TimeFormat';\nimport { TemporalGranularity } from '../../../types/wrapped-types/TemporalGranularity';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { TemporalFieldImpl } from './TemporalFieldImpl';\nimport { TemporalDefaultValueValidator } from './TemporalDefaultValueValidator';\n\nexport class JsonFieldReaderTemporal extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): TemporalField {\n const field = TemporalFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n\n const uiNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.ui);\n if (uiNode != null) {\n field.temporalGranularity = TemporalGranularity.forValue(ReaderUtil.getString(uiNode, CedarModel.temporalGranularity));\n field.inputTimeFormat = TimeFormat.forValue(ReaderUtil.getString(uiNode, CedarModel.inputTimeFormat));\n field.timezoneEnabled = ReaderUtil.getBoolean(uiNode, CedarModel.timezoneEnabled);\n }\n\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n const temporalType = ReaderUtil.getString(valueConstraints, CedarModel.temporalType);\n if (temporalType !== null) {\n field.valueConstraints.temporalType = TemporalType.forValue(temporalType);\n }\n field.valueConstraints.defaultValue = ReaderUtil.getString(valueConstraints, CedarModel.defaultValue);\n TemporalDefaultValueValidator.assertValid(\n field.valueConstraints.temporalType,\n field.temporalGranularity,\n field.valueConstraints.defaultValue,\n );\n }\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { TimeFormat } from '../../../types/wrapped-types/TimeFormat';\nimport { TemporalGranularity } from '../../../types/wrapped-types/TemporalGranularity';\nimport { TemporalField } from './TemporalField';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\nimport { JsonSchema } from '../../../constants/JsonSchema';\nimport { TemporalDefaultValueValidator } from './TemporalDefaultValueValidator';\n\nexport class JsonFieldWriterTemporal extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandUINode(uiNode: JsonNode, field: TemporalField, childInfo: ChildDeploymentInfo): void {\n super.expandUINode(uiNode, field, childInfo);\n if (field.temporalGranularity !== TemporalGranularity.NULL) {\n uiNode[CedarModel.temporalGranularity] = this.atomicWriter.write(field.temporalGranularity);\n }\n if (TemporalGranularity.hasTime(field.temporalGranularity)) {\n if (field.inputTimeFormat !== TimeFormat.NULL) {\n uiNode[CedarModel.inputTimeFormat] = this.atomicWriter.write(field.inputTimeFormat);\n }\n uiNode[CedarModel.timezoneEnabled] = field.timezoneEnabled;\n }\n }\n\n override expandValueConstraintsNode(vcNode: JsonNode, field: TemporalField, childInfo: ChildDeploymentInfo): void {\n TemporalDefaultValueValidator.assertValid(\n field.valueConstraints.temporalType,\n field.temporalGranularity,\n field.valueConstraints.defaultValue,\n );\n vcNode[CedarModel.temporalType] = this.atomicWriter.write(field.valueConstraints.temporalType);\n if (field.valueConstraints.defaultValue != null && field.valueConstraints.defaultValue !== '') {\n vcNode[CedarModel.defaultValue] = field.valueConstraints.defaultValue;\n }\n super.expandValueConstraintsNode(vcNode, field, childInfo);\n }\n\n override expandRequiredNode(requiredObject: JsonNode): void {\n requiredObject[JsonSchema.required] = [JsonSchema.atValue, JsonSchema.atType];\n }\n}\n","import { TemporalGranularity } from '../../../types/wrapped-types/TemporalGranularity';\nimport { TemporalType } from '../../../types/wrapped-types/TemporalType';\n\nexport class TemporalDefaultValueValidator {\n private static readonly zone = '(?:Z|[+-](?:(?:0\\\\d|1[0-3]):[0-5]\\\\d|14:00))?';\n private static readonly hour = '(?:[01]\\\\d|2[0-3])';\n private static readonly minute = '[0-5]\\\\d';\n private static readonly second = '[0-5]\\\\d';\n\n public static assertValid(temporalType: TemporalType, granularity: TemporalGranularity, defaultValue: string | null): void {\n if (defaultValue === null || defaultValue === '') {\n return;\n }\n\n const type = temporalType.getValue();\n if (type === null) {\n throw new Error('Temporal default requires a temporal datatype.');\n }\n if (!this.isCompatibleGranularity(temporalType, granularity)) {\n throw new Error(`Temporal datatype ${type} is not compatible with ${granularity.getValue()} granularity.`);\n }\n\n const date = this.datePattern(granularity, type === TemporalType.DATE.getValue());\n const time = this.timePattern(granularity);\n let pattern: RegExp;\n if (type === TemporalType.DATE.getValue()) {\n pattern = date;\n } else if (type === TemporalType.TIME.getValue()) {\n pattern = time;\n } else {\n pattern = this.dateTimePattern(granularity);\n }\n\n if (!pattern.test(defaultValue) || !this.hasValidCalendarDate(defaultValue)) {\n throw new Error(\n `Temporal default \"${defaultValue}\" is not valid for ${type}` +\n (granularity.getValue() === null ? '.' : ` at ${granularity.getValue()} granularity.`),\n );\n }\n }\n\n private static isCompatibleGranularity(temporalType: TemporalType, granularity: TemporalGranularity): boolean {\n if (granularity === TemporalGranularity.NULL) {\n return true;\n }\n if (temporalType === TemporalType.DATE) {\n return [TemporalGranularity.YEAR, TemporalGranularity.MONTH, TemporalGranularity.DAY].includes(granularity);\n }\n if (temporalType === TemporalType.TIME) {\n return TemporalGranularity.valuesWithTimes().includes(granularity);\n }\n return [TemporalGranularity.DAY, ...TemporalGranularity.valuesWithTimes()].includes(granularity);\n }\n\n private static datePattern(granularity: TemporalGranularity, allowPartial: boolean): RegExp {\n if (granularity === TemporalGranularity.YEAR) {\n return /^\\d{4}$/;\n }\n if (granularity === TemporalGranularity.MONTH) {\n return /^\\d{4}-(?:0[1-9]|1[0-2])$/;\n }\n if (granularity === TemporalGranularity.DAY || !allowPartial) {\n return /^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])$/;\n }\n return /^\\d{4}(?:-(?:0[1-9]|1[0-2])(?:-(?:0[1-9]|[12]\\d|3[01]))?)?$/;\n }\n\n private static timePattern(granularity: TemporalGranularity): RegExp {\n const zone = this.zone;\n const hour = this.hour;\n const minute = this.minute;\n const second = this.second;\n if (granularity === TemporalGranularity.HOUR) {\n return new RegExp(`^${hour}${zone}$`);\n }\n if (granularity === TemporalGranularity.MINUTE) {\n return new RegExp(`^${hour}:${minute}${zone}$`);\n }\n if (granularity === TemporalGranularity.SECOND) {\n return new RegExp(`^${hour}:${minute}:${second}${zone}$`);\n }\n if (granularity === TemporalGranularity.DECIMAL_SECOND) {\n return new RegExp(`^${hour}:${minute}:${second}\\\\.\\\\d+${zone}$`);\n }\n return new RegExp(`^${hour}(?::${minute}(?::${second}(?:\\\\.\\\\d+)?)?)?${zone}$`);\n }\n\n private static dateTimePattern(granularity: TemporalGranularity): RegExp {\n const date = '\\\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\\\d|3[01])';\n if (\n granularity === TemporalGranularity.HOUR ||\n granularity === TemporalGranularity.MINUTE ||\n granularity === TemporalGranularity.SECOND ||\n granularity === TemporalGranularity.DECIMAL_SECOND\n ) {\n return new RegExp(`^${date}T${this.timePatternSource(granularity)}$`);\n }\n if (granularity === TemporalGranularity.YEAR || granularity === TemporalGranularity.MONTH) {\n return /a^/;\n }\n if (granularity === TemporalGranularity.DAY) {\n return new RegExp(`^${date}$`);\n }\n return new RegExp(`^${date}(?:T${this.timePatternSource(TemporalGranularity.NULL)})?$`);\n }\n\n private static timePatternSource(granularity: TemporalGranularity): string {\n return this.timePattern(granularity).source.replace(/^\\^|\\$$/g, '');\n }\n\n private static hasValidCalendarDate(value: string): boolean {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})/.exec(value);\n if (match === null) {\n return true;\n }\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n const leapYear = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n const daysInMonth = [31, leapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n return day <= daysInMonth[month - 1];\n }\n}\n","import { TemporalField } from './TemporalField';\nimport { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { TimeFormat } from '../../../types/wrapped-types/TimeFormat';\nimport { TemporalGranularity } from '../../../types/wrapped-types/TemporalGranularity';\nimport { TemporalType } from '../../../types/wrapped-types/TemporalType';\nimport { TemporalFieldBuilder } from './TemporalFieldBuilder';\nimport { TemporalFieldImpl } from './TemporalFieldImpl';\nimport { TemporalDefaultValueValidator } from './TemporalDefaultValueValidator';\n\nexport class TemporalFieldBuilderImpl extends TemplateFieldBuilder implements TemporalFieldBuilder {\n private timezoneEnabled: boolean = false;\n private inputTimeFormat: TimeFormat = TimeFormat.NULL;\n private temporalGranularity: TemporalGranularity = TemporalGranularity.NULL;\n private temporalType: TemporalType = TemporalType.DATETIME;\n private defaultValue: string | null = null;\n\n private constructor() {\n super();\n }\n\n public static create(): TemporalFieldBuilder {\n return new TemporalFieldBuilderImpl();\n }\n\n public withTimezoneEnabled(timezoneEnabled: boolean): TemporalFieldBuilder {\n this.timezoneEnabled = timezoneEnabled;\n return this;\n }\n\n public withInputTimeFormat(inputTimeFormat: TimeFormat): TemporalFieldBuilder {\n this.inputTimeFormat = inputTimeFormat;\n return this;\n }\n\n public withTemporalGranularity(temporalGranularity: TemporalGranularity): TemporalFieldBuilder {\n this.temporalGranularity = temporalGranularity;\n return this;\n }\n\n public withTemporalType(temporalType: TemporalType): TemporalFieldBuilder {\n this.temporalType = temporalType;\n return this;\n }\n\n public withDefaultValue(defaultValue: string | null): TemporalFieldBuilder {\n this.defaultValue = defaultValue;\n return this;\n }\n\n public build(): TemporalField {\n TemporalDefaultValueValidator.assertValid(this.temporalType, this.temporalGranularity, this.defaultValue);\n const temporalField = TemporalFieldImpl.buildEmpty();\n super.buildInternal(temporalField);\n\n temporalField.timezoneEnabled = this.timezoneEnabled;\n temporalField.inputTimeFormat = this.inputTimeFormat;\n temporalField.temporalGranularity = this.temporalGranularity;\n temporalField.valueConstraints.temporalType = this.temporalType;\n temporalField.valueConstraints.defaultValue = this.defaultValue;\n\n return temporalField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ValueConstraintsTemporalField } from './ValueConstraintsTemporalField';\nimport { TimeFormat } from '../../../types/wrapped-types/TimeFormat';\nimport { TemporalGranularity } from '../../../types/wrapped-types/TemporalGranularity';\nimport { TemporalField } from './TemporalField';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\n\nexport class TemporalFieldImpl extends TemplateField implements TemporalField {\n // Redeclare valueConstraints with a more specific type\n public valueConstraints: ValueConstraintsTemporalField;\n\n public timezoneEnabled: boolean = false;\n public inputTimeFormat: TimeFormat = TimeFormat.NULL;\n public temporalGranularity: TemporalGranularity = TemporalGranularity.NULL;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.TEMPORAL;\n this.valueConstraints = new ValueConstraintsTemporalField();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): TemporalField {\n return new TemporalFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { ValueConstraints } from '../../ValueConstraints';\nimport { TemporalType } from '../../../types/wrapped-types/TemporalType';\n\nexport class ValueConstraintsTemporalField extends ValueConstraints {\n temporalType: TemporalType = TemporalType.DATETIME;\n defaultValue: string | null = null;\n\n public constructor() {\n super();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { TemporalField } from './TemporalField';\nimport { TemporalType } from '../../../types/wrapped-types/TemporalType';\nimport { TimeFormat } from '../../../types/wrapped-types/TimeFormat';\nimport { TemporalGranularity } from '../../../types/wrapped-types/TemporalGranularity';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { TemporalFieldImpl } from './TemporalFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\nimport { TemporalDefaultValueValidator } from './TemporalDefaultValueValidator';\n\nexport class YamlFieldReaderTemporal extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): TemporalField {\n const field = TemporalFieldImpl.buildEmpty();\n\n field.temporalGranularity = TemporalGranularity.forValue(ReaderUtil.getString(fieldSourceObject, YamlKeys.granularity));\n field.inputTimeFormat = TimeFormat.forValue(ReaderUtil.getString(fieldSourceObject, YamlKeys.inputTimeFormat));\n field.timezoneEnabled = ReaderUtil.getBoolean(fieldSourceObject, YamlKeys.inputTimeZone);\n\n const temporalType = ReaderUtil.getString(fieldSourceObject, YamlKeys.datatype);\n if (temporalType !== null) {\n field.valueConstraints.temporalType = TemporalType.forValue(temporalType);\n }\n field.valueConstraints.defaultValue = ReaderUtil.getString(fieldSourceObject, YamlKeys.default);\n TemporalDefaultValueValidator.assertValid(\n field.valueConstraints.temporalType,\n field.temporalGranularity,\n field.valueConstraints.defaultValue,\n );\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { TimeFormat } from '../../../types/wrapped-types/TimeFormat';\nimport { TemporalGranularity } from '../../../types/wrapped-types/TemporalGranularity';\nimport { TemporalField } from './TemporalField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\nimport { TemporalDefaultValueValidator } from './TemporalDefaultValueValidator';\n\nexport class YamlFieldWriterTemporal extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNodeForYAML(vcNode: JsonNode, field: TemporalField, _childInfo: ChildDeploymentInfo): void {\n TemporalDefaultValueValidator.assertValid(\n field.valueConstraints.temporalType,\n field.temporalGranularity,\n field.valueConstraints.defaultValue,\n );\n vcNode[YamlKeys.datatype] = this.atomicWriter.write(field.valueConstraints.temporalType);\n if (field.temporalGranularity !== TemporalGranularity.NULL) {\n vcNode[YamlKeys.granularity] = this.atomicWriter.write(field.temporalGranularity);\n if (field.valueConstraints.defaultValue != null && field.valueConstraints.defaultValue !== '') {\n vcNode[YamlKeys.default] = field.valueConstraints.defaultValue;\n }\n if (\n field.temporalGranularity !== TemporalGranularity.YEAR &&\n field.temporalGranularity !== TemporalGranularity.MONTH &&\n field.temporalGranularity !== TemporalGranularity.DAY\n ) {\n if (field.inputTimeFormat !== TimeFormat.NULL) {\n vcNode[YamlKeys.inputTimeFormat] = this.atomicWriter.write(field.inputTimeFormat);\n }\n if (field.timezoneEnabled) {\n vcNode[YamlKeys.inputTimeZone] = field.timezoneEnabled;\n }\n }\n } else if (field.valueConstraints.defaultValue != null && field.valueConstraints.defaultValue !== '') {\n vcNode[YamlKeys.default] = field.valueConstraints.defaultValue;\n }\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { TextArea } from './TextArea';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { TextAreaImpl } from './TextAreaImpl';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\n\nexport class JsonFieldReaderTextArea extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): TextArea {\n const field = TextAreaImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n field.valueConstraints.defaultValue = ReaderUtil.getString(valueConstraints, CedarModel.defaultValue);\n }\n\n return field;\n }\n}\n","import { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\nimport { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { AbstractChildDeploymentInfo } from '../../../deployment/AbstractChildDeploymentInfo';\nimport { TextArea } from './TextArea';\n\nexport class JsonFieldWriterTextArea extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected expandValueConstraintsNode(vcNode: JsonNode, field: TextArea, childInfo: AbstractChildDeploymentInfo): void {\n if (field.valueConstraints.defaultValue !== null && field.valueConstraints.defaultValue !== '') {\n vcNode[CedarModel.defaultValue] = field.valueConstraints.defaultValue;\n }\n super.expandValueConstraintsNode(vcNode, field, childInfo);\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { TextArea } from './TextArea';\nimport { TextAreaImpl } from './TextAreaImpl';\nimport { TextAreaBuilder } from './TextAreaBuilder';\n\nexport class TextAreaBuilderImpl extends TemplateFieldBuilder implements TextAreaBuilder {\n private constructor() {\n super();\n }\n\n public static create(): TextAreaBuilder {\n return new TextAreaBuilderImpl();\n }\n\n public build(): TextArea {\n const textArea = TextAreaImpl.buildEmpty();\n super.buildInternal(textArea);\n\n return textArea;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { TextArea } from './TextArea';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\nimport { ValueConstraintsTextArea } from './ValueConstraintsTextArea';\n\nexport class TextAreaImpl extends TemplateField implements TextArea {\n // Redeclare valueConstraints with a more specific type\n public valueConstraints: ValueConstraintsTextArea;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.TEXTAREA;\n this.valueConstraints = new ValueConstraintsTextArea();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): TextArea {\n return new TextAreaImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n}\n","import { ValueConstraints } from '../../ValueConstraints';\n\nexport class ValueConstraintsTextArea extends ValueConstraints {\n public defaultValue: string | null = null;\n\n public constructor() {\n super();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { TextArea } from './TextArea';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { TextAreaImpl } from './TextAreaImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderTextArea extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): TextArea {\n return TextAreaImpl.buildEmpty();\n }\n}\n","import { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterTextArea extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { TextField } from './TextField';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { TextFieldImpl } from './TextFieldImpl';\n\nexport class JsonFieldReaderTextField extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): TextField {\n const field = TextFieldImpl.buildEmpty();\n this.readRequiredAndHidden(fieldSourceObject, childInfo);\n\n const valueConstraints: JsonNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.valueConstraints);\n if (valueConstraints != null) {\n field.valueConstraints.defaultValue = ReaderUtil.getString(valueConstraints, CedarModel.defaultValue);\n field.valueConstraints.minLength = ReaderUtil.getNumber(valueConstraints, CedarModel.minLength);\n field.valueConstraints.maxLength = ReaderUtil.getNumber(valueConstraints, CedarModel.maxLength);\n field.valueConstraints.regex = ReaderUtil.getString(valueConstraints, CedarModel.regex);\n }\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { TextField } from './TextField';\nimport { JsonTemplateFieldWriterInternal } from '../../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterTextField extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNode(vcNode: JsonNode, field: TextField, childInfo: ChildDeploymentInfo): void {\n if (field.valueConstraints.defaultValue !== null && field.valueConstraints.defaultValue !== '') {\n vcNode[CedarModel.defaultValue] = field.valueConstraints.defaultValue;\n }\n if (field.valueConstraints.minLength !== null) {\n vcNode[CedarModel.minLength] = field.valueConstraints.minLength;\n }\n if (field.valueConstraints.maxLength !== null) {\n vcNode[CedarModel.maxLength] = field.valueConstraints.maxLength;\n }\n super.expandValueConstraintsNode(vcNode, field, childInfo);\n if (field.valueConstraints.regex !== null) {\n vcNode[CedarModel.regex] = field.valueConstraints.regex;\n }\n }\n}\n","import { TextField } from './TextField';\nimport { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { TextFieldBuilder } from './TextFieldBuilder';\nimport { TextFieldImpl } from './TextFieldImpl';\n\nexport class TextFieldBuilderImpl extends TemplateFieldBuilder implements TextFieldBuilder {\n private defaultValue: string | null = null;\n private minLength: number | null = null;\n private maxLength: number | null = null;\n private regex: string | null = null;\n\n private constructor() {\n super();\n }\n\n public static create(): TextFieldBuilder {\n return new TextFieldBuilderImpl();\n }\n\n public withDefaultValue(defaultValue: string | null): TextFieldBuilder {\n this.defaultValue = defaultValue;\n return this;\n }\n\n public withMinLength(minLength: number | null): TextFieldBuilder {\n this.minLength = minLength;\n return this;\n }\n\n public withMaxLength(maxLength: number | null): TextFieldBuilder {\n this.maxLength = maxLength;\n return this;\n }\n\n public withRegex(regex: string | null): TextFieldBuilder {\n this.regex = regex;\n return this;\n }\n\n public build(): TextField {\n const textField = TextFieldImpl.buildEmpty();\n super.buildInternal(textField);\n\n textField.valueConstraints.defaultValue = this.defaultValue;\n textField.valueConstraints.minLength = this.minLength;\n textField.valueConstraints.maxLength = this.maxLength;\n textField.valueConstraints.regex = this.regex;\n\n return textField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { ValueConstraintsTextField } from './ValueConstraintsTextField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { TextField } from './TextField';\nimport { ChildDeploymentInfoBuilder } from '../../../deployment/ChildDeploymentInfoBuilder';\n\nexport class TextFieldImpl extends TemplateField implements TextField {\n // Redeclare valueConstraints with a more specific type\n public valueConstraints: ValueConstraintsTextField;\n\n public valueRecommendationEnabled: boolean = false;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.TEXT;\n this.valueConstraints = new ValueConstraintsTextField();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): TextField {\n return new TextFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoBuilder {\n return new ChildDeploymentInfoBuilder(this, childName);\n }\n\n override supportsValueRecommendation(): boolean {\n return true;\n }\n}\n","import { ValueConstraints } from '../../ValueConstraints';\n\nexport class ValueConstraintsTextField extends ValueConstraints {\n public defaultValue: string | null = null;\n public minLength: number | null = null;\n public maxLength: number | null = null;\n public regex: string | null = null;\n\n public constructor() {\n super();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { TextField } from './TextField';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { TextFieldImpl } from './TextFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderTextField extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): TextField {\n const field = TextFieldImpl.buildEmpty();\n\n field.valueConstraints.defaultValue = ReaderUtil.getString(fieldSourceObject, YamlKeys.default);\n field.valueConstraints.minLength = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.minLength);\n field.valueConstraints.maxLength = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.maxLength);\n field.valueConstraints.regex = ReaderUtil.getString(fieldSourceObject, YamlKeys.regex);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { TextField } from './TextField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldWriterInternal } from '../../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterTextField extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n override expandValueConstraintsNodeForYAML(vcNode: JsonNode, field: TextField, _childInfo: ChildDeploymentInfo): void {\n if (field.valueConstraints.defaultValue != null && field.valueConstraints.defaultValue !== '') {\n vcNode[YamlKeys.default] = field.valueConstraints.defaultValue;\n }\n if (field.valueConstraints.minLength != null) {\n vcNode[YamlKeys.minLength] = field.valueConstraints.minLength;\n }\n if (field.valueConstraints.maxLength != null) {\n vcNode[YamlKeys.maxLength] = field.valueConstraints.maxLength;\n }\n if (field.valueConstraints.regex != null) {\n vcNode[YamlKeys.regex] = field.valueConstraints.regex;\n }\n }\n}\n","import { JsonTemplateFieldWriterInternal } from '../../../../io/writer/json/JsonTemplateFieldWriterInternal';\nimport { JsonWriterBehavior } from '../../../../behavior/JsonWriterBehavior';\nimport { StaticImageField } from './image/StaticImageField';\nimport { JsonNode } from '../../types/basic-types/JsonNode';\nimport { JsonSchema } from '../../constants/JsonSchema';\nimport { JsonTemplateFieldContentStatic } from '../../util/serialization/JsonTemplateFieldContentStatic';\nimport { CedarModel } from '../../constants/CedarModel';\nimport { JavascriptType } from '../../types/wrapped-types/JavascriptType';\nimport { TemplateProperty } from '../../constants/TemplateProperty';\nimport { AdditionalProperties } from '../../types/wrapped-types/AdditionalProperties';\nimport { ArtifactSchema } from '../../types/wrapped-types/ArtifactSchema';\nimport { TemplateField } from '../TemplateField';\nimport { CedarJsonWriters } from '../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonStaticFieldWriter extends JsonTemplateFieldWriterInternal {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected expandUiNode(_uiNode: JsonNode, _field: TemplateField): void {}\n\n protected buildUIObject(field: TemplateField): JsonNode {\n const uiNode: JsonNode = {\n [CedarModel.inputType]: this.atomicWriter.write(field.cedarFieldType.getUiInputType()),\n };\n this.expandUiNode(uiNode, field);\n // Every static field's `_ui` carries `_content`, which the CEDAR meta-schema requires of it\n // (`staticFieldUIContent`). A page break and a section break have none to carry, and the key was\n // left out for them, which the canonical validator rejects.\n if (!(CedarModel.content in uiNode)) {\n uiNode[CedarModel.content] = null;\n }\n return {\n [CedarModel.ui]: uiNode,\n } as JsonNode;\n }\n\n override getAsJsonNode(field: StaticImageField): JsonNode {\n // Build ui wrapper\n const uiObject: JsonNode = this.buildUIObject(field);\n return {\n [JsonSchema.atId]: this.atomicWriter.write(field.at_id),\n [JsonSchema.atType]: this.atomicWriter.write(field.cedarArtifactType),\n [JsonSchema.atContext]: this.macroContext(field),\n [CedarModel.type]: this.atomicWriter.write(JavascriptType.OBJECT),\n [TemplateProperty.title]: field.title,\n [TemplateProperty.description]: field.description,\n ...uiObject,\n ...this.macroSchemaNameAndDescription(field),\n ...this.macroProvenance(field, this.atomicWriter),\n ...this.macroSkos(field),\n [JsonSchema.schemaVersion]: this.atomicWriter.write(field.schema_schemaVersion),\n [TemplateProperty.additionalProperties]: this.atomicWriter.write(AdditionalProperties.FALSE),\n ...this.macroStatusAndVersion(field, this.atomicWriter),\n [CedarModel.schema]: this.atomicWriter.write(ArtifactSchema.CURRENT),\n };\n }\n\n protected override macroContext(_field: StaticImageField) {\n return JsonTemplateFieldContentStatic.CONTEXT_VERBATIM;\n }\n}\n","import { TemplateChild } from '../../types/basic-types/TemplateChild';\n\n/**\n * A static field that can be given a display size.\n *\n * An image and a video carry `width` and `height`; the other static fields carry neither, and neither\n * do the dynamic ones. Where the size is written depends on where the field is: a field written as a\n * child of a template or element carries it in that child's `configuration`, alongside the rest of what\n * the parent decides about it, and only a field written on its own puts it among its own keys.\n */\nexport interface SizedStaticField {\n get width(): number | null;\n\n set width(width: number | null);\n\n get height(): number | null;\n\n set height(height: number | null);\n}\n\nexport function isSizedStaticField(child: TemplateChild | null): child is TemplateChild & SizedStaticField {\n return child !== null && 'width' in child && 'height' in child;\n}\n","import { JsonNode } from '../../types/basic-types/JsonNode';\nimport { TemplateField } from '../TemplateField';\nimport { YamlTemplateFieldWriterInternal } from '../../../../io/writer/yaml/YamlTemplateFieldWriterInternal';\nimport { YamlWriterBehavior } from '../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../io/writer/yaml/CedarYamlWriters';\nimport { AbstractChildDeploymentInfo } from '../../deployment/AbstractChildDeploymentInfo';\nimport { ChildDeploymentInfo } from '../../deployment/ChildDeploymentInfo';\n\nexport class YamlStaticFieldWriter extends YamlTemplateFieldWriterInternal {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n protected expandUINodeForYAML(_field: TemplateField): JsonNode {\n return super.expandUINodeForYAML(_field);\n }\n\n /** The display size of a static field that has one; empty for the static fields that do not. */\n protected expandSizeForYAML(_field: TemplateField): JsonNode {\n return JsonNode.getEmpty();\n }\n\n protected buildUIObject(field: TemplateField): JsonNode {\n return this.expandUINodeForYAML(field);\n }\n\n override getYamlAsJsonNode(field: TemplateField): JsonNode;\n override getYamlAsJsonNode(field: TemplateField, childInfo: AbstractChildDeploymentInfo): JsonNode;\n override getYamlAsJsonNode(field: TemplateField, childInfo: AbstractChildDeploymentInfo, isCompact: boolean): JsonNode;\n override getYamlAsJsonNode(\n field: TemplateField,\n childInfo: AbstractChildDeploymentInfo,\n isCompact: boolean,\n isDocumentRoot: boolean,\n ): JsonNode;\n\n override getYamlAsJsonNode(\n field: TemplateField,\n _childInfo: AbstractChildDeploymentInfo = ChildDeploymentInfo.empty(),\n isCompact: boolean = false,\n isDocumentRoot: boolean = true,\n ): JsonNode {\n // Build ui wrapper\n //const uiObject: JsonNode = this.buildUIObject(field);\n return {\n ...this.macroType(field),\n ...this.macroNameAndDescription(field),\n ...this.macroSchemaIdentifier(field),\n ...this.macroId(field, isCompact, isDocumentRoot),\n ...this.macroStatusAndVersion(field, isCompact),\n ...this.macroSkos(field),\n ...this.expandUINodeForYAML(field),\n // A child's size is written by the parent, into that child's `configuration`.\n ...(_childInfo.hasParent() ? JsonNode.getEmpty() : this.expandSizeForYAML(field)),\n ...this.macroProvenance(field, isCompact),\n ...this.macroDerivedFrom(field, isCompact),\n ...this.macroPreviousVersion(field, isCompact),\n ...this.macroAnnotations(field),\n };\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { StaticImageField } from './StaticImageField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { StaticImageFieldImpl } from './StaticImageFieldImpl';\n\nexport class JsonFieldReaderImage extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): StaticImageField {\n const field = StaticImageFieldImpl.buildEmpty();\n const uiNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.ui);\n field.content = ReaderUtil.getString(uiNode, CedarModel.content);\n const sizeNode = ReaderUtil.getNode(uiNode, CedarModel.size);\n field.width = ReaderUtil.getNumber(sizeNode, CedarModel.width);\n field.height = ReaderUtil.getNumber(sizeNode, CedarModel.height);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { StaticImageField } from './StaticImageField';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonStaticFieldWriter } from '../JsonStaticFieldWriter';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterStaticImage extends JsonStaticFieldWriter {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected override expandUiNode(uiNode: JsonNode, field: StaticImageField): void {\n if (field.content !== null) {\n uiNode[CedarModel.content] = field.content;\n }\n if (field.width !== null || field.height !== null) {\n const sizeNode = JsonNode.getEmpty();\n if (field.width !== null) {\n sizeNode[CedarModel.width] = field.width;\n }\n if (field.height !== null) {\n sizeNode[CedarModel.height] = field.height;\n }\n uiNode[CedarModel.size] = sizeNode;\n }\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { StaticImageField } from './StaticImageField';\nimport { StaticImageFieldBuilder } from './StaticImageFieldBuilder';\nimport { StaticImageFieldImpl } from './StaticImageFieldImpl';\n\nexport class StaticImageFieldBuilderImpl extends TemplateFieldBuilder implements StaticImageFieldBuilder {\n private content: string | null = null;\n private width: number | null = null;\n private height: number | null = null;\n\n private constructor() {\n super();\n }\n\n public static create(): StaticImageFieldBuilder {\n return new StaticImageFieldBuilderImpl();\n }\n\n public withContent(content: string | null): StaticImageFieldBuilder {\n this.content = content;\n return this;\n }\n\n public withWidth(width: number | null): StaticImageFieldBuilder {\n this.width = width;\n return this;\n }\n\n public withHeight(height: number | null): StaticImageFieldBuilder {\n this.height = height;\n return this;\n }\n\n public build(): StaticImageField {\n const staticImageField = StaticImageFieldImpl.buildEmpty();\n super.buildInternal(staticImageField);\n staticImageField.content = this.content;\n staticImageField.width = this.width;\n staticImageField.height = this.height;\n return staticImageField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { StaticImageField } from './StaticImageField';\nimport { ChildDeploymentInfoStaticBuilder } from '../../../deployment/ChildDeploymentInfoStaticBuilder';\n\nexport class StaticImageFieldImpl extends TemplateField implements StaticImageField {\n public content: string | null = null;\n public width: number | null = null;\n public height: number | null = null;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.STATIC_IMAGE;\n this.cedarArtifactType = CedarArtifactType.STATIC_TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): StaticImageField {\n return new StaticImageFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoStaticBuilder {\n return new ChildDeploymentInfoStaticBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { StaticImageField } from './StaticImageField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { StaticImageFieldImpl } from './StaticImageFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderImage extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): StaticImageField {\n const field = StaticImageFieldImpl.buildEmpty();\n field.content = ReaderUtil.getString(fieldSourceObject, YamlKeys.content);\n field.width = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.width);\n field.height = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.height);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { StaticImageField } from './StaticImageField';\nimport { YamlStaticFieldWriter } from '../YamlStaticFieldWriter';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterStaticImage extends YamlStaticFieldWriter {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n protected override expandUINodeForYAML(field: StaticImageField): JsonNode {\n const ret = JsonNode.getEmpty();\n if (field.content !== null) {\n ret[YamlKeys.content] = field.content;\n }\n return ret;\n }\n\n protected override expandSizeForYAML(field: StaticImageField): JsonNode {\n const ret = JsonNode.getEmpty();\n if (field.width !== null) {\n ret[YamlKeys.width] = field.width;\n }\n if (field.height !== null) {\n ret[YamlKeys.height] = field.height;\n }\n return ret;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { StaticPageBreakField } from './StaticPageBreakField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { StaticPageBreakFieldImpl } from './StaticPageBreakFieldImpl';\n\nexport class JsonFieldReaderPageBreak extends JsonTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): StaticPageBreakField {\n return StaticPageBreakFieldImpl.buildEmpty();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { StaticPageBreakField } from './StaticPageBreakField';\nimport { JsonStaticFieldWriter } from '../JsonStaticFieldWriter';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterStaticPageBreak extends JsonStaticFieldWriter {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected override expandUiNode(_uiNode: JsonNode, _field: StaticPageBreakField): void {}\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { StaticPageBreakField } from './StaticPageBreakField';\nimport { StaticPageBreakFieldImpl } from './StaticPageBreakFieldImpl';\nimport { StaticPageBreakFieldBuilder } from './StaticPageBreakFieldBuilder';\n\nexport class StaticPageBreakFieldBuilderImpl extends TemplateFieldBuilder implements StaticPageBreakFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): StaticPageBreakFieldBuilder {\n return new StaticPageBreakFieldBuilderImpl();\n }\n\n public build(): StaticPageBreakField {\n const staticPageBreakField = StaticPageBreakFieldImpl.buildEmpty();\n super.buildInternal(staticPageBreakField);\n return staticPageBreakField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { StaticPageBreakField } from './StaticPageBreakField';\nimport { ChildDeploymentInfoStaticBuilder } from '../../../deployment/ChildDeploymentInfoStaticBuilder';\n\nexport class StaticPageBreakFieldImpl extends TemplateField implements StaticPageBreakField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.STATIC_PAGE_BREAK;\n this.cedarArtifactType = CedarArtifactType.STATIC_TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): StaticPageBreakField {\n return new StaticPageBreakFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoStaticBuilder {\n return new ChildDeploymentInfoStaticBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { StaticPageBreakField } from './StaticPageBreakField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { StaticPageBreakFieldImpl } from './StaticPageBreakFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderPageBreak extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): StaticPageBreakField {\n return StaticPageBreakFieldImpl.buildEmpty();\n }\n}\n","import { YamlStaticFieldWriter } from '../YamlStaticFieldWriter';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterStaticPageBreak extends YamlStaticFieldWriter {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { StaticRichTextField } from './StaticRichTextField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { StaticRichTextFieldImpl } from './StaticRichTextFieldImpl';\n\nexport class JsonFieldReaderRichText extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): StaticRichTextField {\n const field = StaticRichTextFieldImpl.buildEmpty();\n const uiNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.ui);\n field.content = ReaderUtil.getString(uiNode, CedarModel.content);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { StaticRichTextField } from './StaticRichTextField';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonStaticFieldWriter } from '../JsonStaticFieldWriter';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterStaticRichText extends JsonStaticFieldWriter {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected override expandUiNode(uiNode: JsonNode, field: StaticRichTextField): void {\n if (field.content !== null) {\n uiNode[CedarModel.content] = field.content;\n }\n }\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { StaticRichTextField } from './StaticRichTextField';\nimport { StaticRichTextFieldBuilder } from './StaticRichTextFieldBuilder';\nimport { StaticRichTextFieldImpl } from './StaticRichTextFieldImpl';\n\nexport class StaticRichTextFieldBuilderImpl extends TemplateFieldBuilder implements StaticRichTextFieldBuilder {\n private content: string | null = null;\n\n private constructor() {\n super();\n }\n\n public static create(): StaticRichTextFieldBuilder {\n return new StaticRichTextFieldBuilderImpl();\n }\n\n public withContent(content: string | null): StaticRichTextFieldBuilder {\n this.content = content;\n return this;\n }\n\n public build(): StaticRichTextField {\n const staticRichTextField = StaticRichTextFieldImpl.buildEmpty();\n super.buildInternal(staticRichTextField);\n staticRichTextField.content = this.content;\n return staticRichTextField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { StaticRichTextField } from './StaticRichTextField';\nimport { ChildDeploymentInfoStaticBuilder } from '../../../deployment/ChildDeploymentInfoStaticBuilder';\n\nexport class StaticRichTextFieldImpl extends TemplateField implements StaticRichTextField {\n public content: string | null = null;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.STATIC_RICH_TEXT;\n this.cedarArtifactType = CedarArtifactType.STATIC_TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): StaticRichTextField {\n return new StaticRichTextFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoStaticBuilder {\n return new ChildDeploymentInfoStaticBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { StaticRichTextField } from './StaticRichTextField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { StaticRichTextFieldImpl } from './StaticRichTextFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderRichText extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): StaticRichTextField {\n const field = StaticRichTextFieldImpl.buildEmpty();\n field.content = ReaderUtil.getString(fieldSourceObject, YamlKeys.content);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { StaticRichTextField } from './StaticRichTextField';\nimport { YamlStaticFieldWriter } from '../YamlStaticFieldWriter';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterStaticRichText extends YamlStaticFieldWriter {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n protected override expandUINodeForYAML(field: StaticRichTextField): JsonNode {\n if (field.content !== null) {\n return { [YamlKeys.content]: field.content };\n } else {\n return JsonNode.getEmpty();\n }\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { StaticSectionBreakField } from './StaticSectionBreakField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { StaticSectionBreakFieldImpl } from './StaticSectionBreakFieldImpl';\n\nexport class JsonFieldReaderSectionBreak extends JsonTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): StaticSectionBreakField {\n return StaticSectionBreakFieldImpl.buildEmpty();\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { JsonStaticFieldWriter } from '../JsonStaticFieldWriter';\nimport { StaticSectionBreakField } from './StaticSectionBreakField';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterStaticSectionsBreak extends JsonStaticFieldWriter {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected override expandUiNode(_uiNode: JsonNode, _field: StaticSectionBreakField): void {}\n}\n","import { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { StaticSectionBreakField } from './StaticSectionBreakField';\nimport { StaticSectionBreakFieldBuilder } from './StaticSectionBreakFieldBuilder';\nimport { StaticSectionBreakFieldImpl } from './StaticSectionBreakFieldImpl';\n\nexport class StaticSectionBreakFieldBuilderImpl extends TemplateFieldBuilder implements StaticSectionBreakFieldBuilder {\n private constructor() {\n super();\n }\n\n public static create(): StaticSectionBreakFieldBuilder {\n return new StaticSectionBreakFieldBuilderImpl();\n }\n\n public build(): StaticSectionBreakField {\n const staticSectionBreakField = StaticSectionBreakFieldImpl.buildEmpty();\n super.buildInternal(staticSectionBreakField);\n return staticSectionBreakField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { StaticSectionBreakField } from './StaticSectionBreakField';\nimport { ChildDeploymentInfoStaticBuilder } from '../../../deployment/ChildDeploymentInfoStaticBuilder';\n\nexport class StaticSectionBreakFieldImpl extends TemplateField implements StaticSectionBreakField {\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.STATIC_SECTION_BREAK;\n this.cedarArtifactType = CedarArtifactType.STATIC_TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): StaticSectionBreakField {\n return new StaticSectionBreakFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoStaticBuilder {\n return new ChildDeploymentInfoStaticBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { StaticSectionBreakField } from './StaticSectionBreakField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { StaticSectionBreakFieldImpl } from './StaticSectionBreakFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderSectionBreak extends YamlTemplateFieldTypeSpecificReader {\n override read(\n _fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): StaticSectionBreakField {\n return StaticSectionBreakFieldImpl.buildEmpty();\n }\n}\n","import { YamlStaticFieldWriter } from '../YamlStaticFieldWriter';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YAMLFieldWriterStaticSectionsBreak extends YamlStaticFieldWriter {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonArtifactParsingResult } from '../../../util/compare/JsonArtifactParsingResult';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { StaticYoutubeField } from './StaticYoutubeField';\nimport { JsonTemplateFieldTypeSpecificReader } from '../../../../../io/reader/json/JsonTemplateFieldTypeSpecificReader';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { StaticYoutubeFieldImpl } from './StaticYoutubeFieldImpl';\n\nexport class JsonFieldReaderYoutube extends JsonTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: JsonArtifactParsingResult,\n _path: JsonPath,\n ): StaticYoutubeField {\n const field = StaticYoutubeFieldImpl.buildEmpty();\n const uiNode = ReaderUtil.getNode(fieldSourceObject, CedarModel.ui);\n field.videoId = ReaderUtil.getString(uiNode, CedarModel.content);\n const sizeNode = ReaderUtil.getNode(uiNode, CedarModel.size);\n field.width = ReaderUtil.getNumber(sizeNode, CedarModel.width);\n field.height = ReaderUtil.getNumber(sizeNode, CedarModel.height);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonWriterBehavior } from '../../../../../behavior/JsonWriterBehavior';\nimport { StaticYoutubeField } from './StaticYoutubeField';\nimport { CedarModel } from '../../../constants/CedarModel';\nimport { JsonStaticFieldWriter } from '../JsonStaticFieldWriter';\nimport { CedarJsonWriters } from '../../../../../io/writer/json/CedarJsonWriters';\n\nexport class JsonFieldWriterStaticYoutube extends JsonStaticFieldWriter {\n constructor(behavior: JsonWriterBehavior, writers: CedarJsonWriters) {\n super(behavior, writers);\n }\n\n protected override expandUiNode(uiNode: JsonNode, field: StaticYoutubeField): void {\n if (field.videoId !== null) {\n uiNode[CedarModel.content] = field.videoId;\n }\n if (field.width !== null || field.height !== null) {\n const sizeNode = JsonNode.getEmpty();\n if (field.width !== null) {\n sizeNode[CedarModel.width] = field.width;\n }\n if (field.height !== null) {\n sizeNode[CedarModel.height] = field.height;\n }\n uiNode[CedarModel.size] = sizeNode;\n }\n }\n}\n","import { StaticYoutubeField } from './StaticYoutubeField';\nimport { TemplateFieldBuilder } from '../../TemplateFieldBuilder';\nimport { StaticYoutubeFieldBuilder } from './StaticYoutubeFieldBuilder';\nimport { StaticYoutubeFieldImpl } from './StaticYoutubeFieldImpl';\n\nexport class StaticYoutubeFieldBuilderImpl extends TemplateFieldBuilder implements StaticYoutubeFieldBuilder {\n private videoId: string | null = null;\n private width: number | null = null;\n private height: number | null = null;\n\n private constructor() {\n super();\n }\n\n public static create(): StaticYoutubeFieldBuilder {\n return new StaticYoutubeFieldBuilderImpl();\n }\n\n public withVideoId(videoId: string | null): StaticYoutubeFieldBuilder {\n this.videoId = videoId;\n return this;\n }\n\n public withWidth(width: number | null): StaticYoutubeFieldBuilder {\n this.width = width;\n return this;\n }\n\n public withHeight(height: number | null): StaticYoutubeFieldBuilder {\n this.height = height;\n return this;\n }\n\n public build(): StaticYoutubeField {\n const staticYoutubeField = StaticYoutubeFieldImpl.buildEmpty();\n super.buildInternal(staticYoutubeField);\n staticYoutubeField.videoId = this.videoId;\n staticYoutubeField.width = this.width;\n staticYoutubeField.height = this.height;\n return staticYoutubeField;\n }\n}\n","import { TemplateField } from '../../TemplateField';\nimport { CedarFieldType } from '../../../types/cedar-types/CedarFieldType';\nimport { CedarArtifactType } from '../../../types/cedar-types/CedarArtifactType';\nimport { StaticYoutubeField } from './StaticYoutubeField';\nimport { ChildDeploymentInfoStaticBuilder } from '../../../deployment/ChildDeploymentInfoStaticBuilder';\n\nexport class StaticYoutubeFieldImpl extends TemplateField implements StaticYoutubeField {\n public videoId: string | null = null;\n public width: number | null = null;\n public height: number | null = null;\n\n private constructor() {\n super();\n this.cedarFieldType = CedarFieldType.STATIC_YOUTUBE;\n this.cedarArtifactType = CedarArtifactType.STATIC_TEMPLATE_FIELD;\n }\n\n public static buildEmpty(): StaticYoutubeField {\n return new StaticYoutubeFieldImpl();\n }\n\n override createDeploymentBuilder(childName: string): ChildDeploymentInfoStaticBuilder {\n return new ChildDeploymentInfoStaticBuilder(this, childName);\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { JsonPath } from '../../../util/path/JsonPath';\nimport { ReaderUtil } from '../../../../../io/reader/ReaderUtil';\nimport { StaticYoutubeField } from './StaticYoutubeField';\nimport { ChildDeploymentInfo } from '../../../deployment/ChildDeploymentInfo';\nimport { YamlTemplateFieldTypeSpecificReader } from '../../../../../io/reader/yaml/YamlTemplateFieldTypeSpecificReader';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { StaticYoutubeFieldImpl } from './StaticYoutubeFieldImpl';\nimport { YamlArtifactParsingResult } from '../../../util/compare/YamlArtifactParsingResult';\n\nexport class YamlFieldReaderYoutube extends YamlTemplateFieldTypeSpecificReader {\n override read(\n fieldSourceObject: JsonNode,\n _childInfo: ChildDeploymentInfo,\n _parsingResult: YamlArtifactParsingResult,\n _path: JsonPath,\n ): StaticYoutubeField {\n const field = StaticYoutubeFieldImpl.buildEmpty();\n field.videoId = ReaderUtil.getString(fieldSourceObject, YamlKeys.content);\n field.width = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.width);\n field.height = ReaderUtil.getNumber(fieldSourceObject, YamlKeys.height);\n return field;\n }\n}\n","import { JsonNode } from '../../../types/basic-types/JsonNode';\nimport { YamlStaticFieldWriter } from '../YamlStaticFieldWriter';\nimport { StaticYoutubeField } from './StaticYoutubeField';\nimport { YamlKeys } from '../../../constants/YamlKeys';\nimport { YamlWriterBehavior } from '../../../../../behavior/YamlWriterBehavior';\nimport { CedarYamlWriters } from '../../../../../io/writer/yaml/CedarYamlWriters';\n\nexport class YamlFieldWriterStaticYoutube extends YamlStaticFieldWriter {\n constructor(behavior: YamlWriterBehavior, writers: CedarYamlWriters) {\n super(behavior, writers);\n }\n\n protected override expandUINodeForYAML(field: StaticYoutubeField): JsonNode {\n const ret = JsonNode.getEmpty();\n if (field.videoId !== null) {\n ret[YamlKeys.content] = field.videoId;\n }\n return ret;\n }\n\n protected override expandSizeForYAML(field: StaticYoutubeField): JsonNode {\n const ret = JsonNode.getEmpty();\n if (field.width !== null) {\n ret[YamlKeys.width] = field.width;\n }\n if (field.height !== null) {\n ret[YamlKeys.height] = field.height;\n }\n return ret;\n }\n}\n","import { CedarModel } from '../constants/CedarModel';\nimport { JsonSchema } from '../constants/JsonSchema';\nimport { InstanceDataAtomType } from './InstanceDataAtomType';\nimport { InstanceDataAttributeValueField } from './InstanceDataAttributeValueField';\nimport { InstanceDataAttributeValueFieldName } from './InstanceDataAttributeValueFieldName';\nimport { InstanceDataContainer } from './InstanceDataContainer';\n\nexport type AttributeValueNameConflictKind = 'reserved' | 'sibling' | 'duplicate';\n\nexport interface AttributeValueNameConflict {\n readonly kind: AttributeValueNameConflictKind;\n readonly name: string;\n readonly groupName: string;\n readonly path: ReadonlyArray<string | number>;\n readonly conflictingGroupName?: string;\n}\n\n/**\n * The names invented by an attribute-value field become properties of the\n * enclosing JSON object. They therefore share one namespace with every normal\n * child and with the document keys that wrap those children.\n */\nexport class AttributeValueNamePolicy {\n private static readonly RESERVED_NAMES: ReadonlySet<string> = new Set([\n JsonSchema.atContext,\n JsonSchema.atId,\n JsonSchema.atType,\n JsonSchema.atValue,\n JsonSchema.atLanguage,\n JsonSchema.schemaIsBasedOn,\n JsonSchema.schemaName,\n JsonSchema.schemaDescription,\n JsonSchema.pavDerivedFrom,\n JsonSchema.pavCreatedOn,\n JsonSchema.pavCreatedBy,\n JsonSchema.pavLastUpdatedOn,\n JsonSchema.oslcModifiedBy,\n JsonSchema.rdfsLabel,\n CedarModel.skosPrefLabel,\n CedarModel.skosAltLabel,\n CedarModel.skosNotation,\n CedarModel.annotations,\n ]);\n\n private constructor() {}\n\n public static isReserved(name: string): boolean {\n return name.startsWith('@') || AttributeValueNamePolicy.RESERVED_NAMES.has(name);\n }\n\n public static findConflicts(container: InstanceDataContainer): AttributeValueNameConflict[] {\n const conflicts: AttributeValueNameConflict[] = [];\n AttributeValueNamePolicy.scanContainer(container, [], conflicts);\n return conflicts;\n }\n\n public static assertValid(container: InstanceDataContainer): void {\n const conflict = AttributeValueNamePolicy.findConflicts(container)[0];\n if (conflict === undefined) {\n return;\n }\n const location = [...conflict.path, conflict.groupName, conflict.name].join('/');\n const reason =\n conflict.kind === 'reserved'\n ? 'is reserved for instance metadata'\n : conflict.kind === 'sibling'\n ? 'collides with another child in the same object'\n : `is also used by attribute-value field \"${conflict.conflictingGroupName}\"`;\n throw new Error(`Attribute-value name \"${conflict.name}\" at /${location} ${reason}`);\n }\n\n private static scanContainer(\n container: InstanceDataContainer,\n path: Array<string | number>,\n conflicts: AttributeValueNameConflict[],\n ): void {\n const groups = AttributeValueNamePolicy.attributeValueGroups(container);\n const groupNames = new Set(groups.map((group) => group.name));\n const unpackedNames = new Set(groups.filter((group) => group.unpacked).flatMap((group) => group.attributeNames));\n const siblingNames = new Set(Object.keys(container.values).filter((name) => !groupNames.has(name) && !unpackedNames.has(name)));\n const firstGroupForAttribute = new Map<string, string>();\n\n for (const group of groups) {\n const namesInGroup = new Set<string>();\n for (const name of group.attributeNames) {\n if (name.length === 0) {\n continue;\n }\n if (AttributeValueNamePolicy.isReserved(name)) {\n conflicts.push({ kind: 'reserved', name, groupName: group.name, path });\n }\n if (siblingNames.has(name) || groupNames.has(name)) {\n conflicts.push({ kind: 'sibling', name, groupName: group.name, path });\n }\n if (namesInGroup.has(name)) {\n conflicts.push({ kind: 'duplicate', name, groupName: group.name, path, conflictingGroupName: group.name });\n } else {\n namesInGroup.add(name);\n }\n const firstGroup = firstGroupForAttribute.get(name);\n if (firstGroup !== undefined && firstGroup !== group.name) {\n conflicts.push({ kind: 'duplicate', name, groupName: group.name, path, conflictingGroupName: firstGroup });\n } else {\n firstGroupForAttribute.set(name, group.name);\n }\n }\n }\n\n for (const [name, value] of Object.entries(container.values)) {\n if (groupNames.has(name) || unpackedNames.has(name)) {\n continue;\n }\n AttributeValueNamePolicy.scanValue(value, [...path, name], conflicts);\n }\n }\n\n private static scanValue(value: InstanceDataAtomType, path: Array<string | number>, conflicts: AttributeValueNameConflict[]): void {\n if (value instanceof InstanceDataContainer) {\n AttributeValueNamePolicy.scanContainer(value, path, conflicts);\n } else if (Array.isArray(value)) {\n value.forEach((item, index) => AttributeValueNamePolicy.scanValue(item, [...path, index], conflicts));\n }\n }\n\n private static attributeValueGroups(\n container: InstanceDataContainer,\n ): Array<{ name: string; attributeNames: string[]; unpacked: boolean }> {\n const groups: Array<{ name: string; attributeNames: string[]; unpacked: boolean }> = [];\n for (const [name, value] of Object.entries(container.values)) {\n if (value instanceof InstanceDataAttributeValueField) {\n groups.push({ name, attributeNames: Object.keys(value.values), unpacked: false });\n } else if (Array.isArray(value)) {\n const attributeNames = value\n .filter((item): item is InstanceDataAttributeValueFieldName => item instanceof InstanceDataAttributeValueFieldName)\n .map((item) => item.name);\n if (attributeNames.length > 0) {\n groups.push({ name, attributeNames, unpacked: true });\n }\n }\n }\n return groups;\n }\n}\n","import { InstanceDataAtomType } from './InstanceDataAtomType';\n\nexport class InstanceDataAttributeValueField {\n private readonly _name: string;\n private _values: { [key: string]: InstanceDataAtomType } = {};\n private _iris: { [key: string]: string };\n\n constructor(name: string) {\n this._name = name;\n this._values = {};\n this._iris = {};\n }\n\n addValue(name: string, value: InstanceDataAtomType) {\n this._values[name] = value;\n }\n\n get name(): string {\n return this._name;\n }\n\n get values(): { [p: string]: InstanceDataAtomType } {\n return this._values;\n }\n\n setIri(key: string, iri: string) {\n this._iris[key] = iri;\n }\n\n get iris(): { [p: string]: string } {\n return this._iris;\n }\n}\n","/**\n * The name of one attribute-value slot, as it sits in the field's list.\n *\n * The name is required. It was declared nullable and never could be: the readers\n * build one only from a value they have already established is a string, and\n * nothing else constructs one at all.\n */\nexport class InstanceDataAttributeValueFieldName {\n private readonly _name: string;\n\n constructor(name: string) {\n this._name = name;\n }\n\n get name(): string {\n return this._name;\n }\n}\n","import { InstanceDataAtomType } from './InstanceDataAtomType';\n\n/**\n * An element occurrence, or an instance's root: named children and the property\n * IRI of each.\n *\n * The two maps are exposed, and were the only way to change one. A consumer that\n * had to remove a child — an editor renaming a property, say — reached into\n * `values` and used `delete`, which is the model failing to hide its own shape:\n * the container decides what a child is and how it is keyed, and a caller that\n * has to know both in order to remove one is not using a model, it is editing a\n * dictionary that happens to live behind a getter.\n *\n * So removal is a method, and the getters stay for reading.\n */\nexport class InstanceDataContainer {\n private _id: string | null = null;\n private _values: { [key: string]: InstanceDataAtomType };\n private _iris: { [key: string]: string };\n\n constructor() {\n this._values = {};\n this._iris = {};\n }\n\n setValue(key: string, instanceDataAtom: InstanceDataAtomType) {\n this._values[key] = instanceDataAtom;\n }\n\n /** Whether this container has a child under that key. */\n hasValue(key: string): boolean {\n return Object.hasOwn(this._values, key);\n }\n\n /**\n * Remove a child, and the property IRI that identifies it.\n *\n * Both together, because they are two halves of one property: a name left in\n * the IRI map with no child under it becomes a `@context` entry pointing at\n * nothing, which is what happened whenever a caller deleted from `values` and\n * forgot the other map. `removeIri` is there for the rarer case of dropping\n * only the identity.\n */\n removeValue(key: string): void {\n delete this._values[key];\n delete this._iris[key];\n }\n\n get values(): { [p: string]: InstanceDataAtomType } {\n return this._values;\n }\n\n set values(values: { [key: string]: InstanceDataAtomType }) {\n this._values = values;\n }\n\n setIri(key: string, iri: string) {\n this._iris[key] = iri;\n }\n\n /** Whether this container records a property IRI under that key. */\n hasIri(key: string): boolean {\n return Object.hasOwn(this._iris, key);\n }\n\n /** Forget a property IRI, leaving any child under that key where it is. */\n removeIri(key: string): void {\n delete this._iris[key];\n }\n\n get iris(): { [p: string]: string } {\n return this._iris;\n }\n\n set id(value: string | null) {\n this._id = value;\n }\n\n get id(): string | null {\n return this._id;\n }\n}\n","import { assertIri, PARSED_NODE } from './InstanceDataLinkAtom';\n\n/**\n * A controlled term: the IRI that identifies it and the label it is shown by.\n *\n * Both are required. An IRI with no label is a link, which is\n * `InstanceDataLinkAtom`; a label with no IRI is a label with nothing to label,\n * and there is no term in it at all — the reader makes an\n * `InstanceDataEmptyAtom` of that and carries what was dropped.\n *\n * The constructor's parameters were named `(value, type)` and assigned to `_id`\n * and `_label`, which is `InstanceDataTypedAtom`'s signature: this class was\n * copied from that one and the names were never changed. Anyone reading the\n * signature to learn what a controlled atom holds was told the wrong thing.\n */\nexport class InstanceDataControlledAtom {\n private readonly _id: string | null;\n private readonly _label: string | null;\n\n constructor(id: string, label: string);\n constructor(id: string | null, label: string | null, parsed: typeof PARSED_NODE);\n constructor(id: string | null, label: string | null, parsed?: typeof PARSED_NODE) {\n if (parsed !== PARSED_NODE) {\n assertIri(id, 'InstanceDataControlledAtom');\n if (label === null || label === undefined || label === '') {\n throw new Error('InstanceDataControlledAtom requires a label. An IRI on its own is a link, not a controlled term.');\n }\n }\n this._id = id;\n this._label = label;\n }\n\n /**\n * The atom a reader makes of a node carrying a label and a null `@id`.\n *\n * Only the readers use this — see `InstanceDataLinkAtom.fromParsedNode` for\n * why a malformed document is preserved rather than repaired.\n */\n static fromParsedNode(id: string | null, label: string | null): InstanceDataControlledAtom {\n return new InstanceDataControlledAtom(id, label, PARSED_NODE);\n }\n\n get id(): string | null {\n return this._id;\n }\n\n get label(): string | null {\n return this._label;\n }\n}\n","/**\n * A value node the reader could not make a value out of.\n *\n * A CEDAR value is a literal (`@value`) or an IRI (`@id`, optionally with an\n * `rdfs:label`). A node carrying neither has no value in it, whatever else it\n * holds — `{\"rdfs:label\": \"Some Term\"}` is a label with nothing to label, so\n * there is no term.\n *\n * `discarded` is what the node held. The reader used to return a bare empty atom\n * and the content was simply gone: a host application handing CEDAR a\n * half-written controlled term got an empty field back with no way to find out\n * why, and nothing in the parsing result mentioned it. Keeping the node costs\n * one reference and lets a consumer say what happened, or put it back.\n */\nexport class InstanceDataEmptyAtom {\n private readonly _discarded: object | null;\n\n constructor(discarded: object | null = null) {\n this._discarded = discarded;\n }\n\n /** What the node held, when it held something that was not a value. */\n get discarded(): object | null {\n return this._discarded;\n }\n\n /** True when something was thrown away to produce this atom. */\n hasDiscardedContent(): boolean {\n return this._discarded !== null && Object.keys(this._discarded).length > 0;\n }\n}\n","export class InstanceDataEmptyNode {}\n","/**\n * The readers' way past the checks below.\n *\n * Not in `index.ts`, which names its exports one at a time, so it is reachable\n * from inside the library and nowhere else.\n */\nexport const PARSED_NODE: unique symbol = Symbol('parsed node');\n\n/**\n * Shared by the two IRI-bearing atoms.\n *\n * Empty string as well as null: `Iri.empty()` exists and is how an unset IRI is\n * carried elsewhere in the model, so a caller reaching for one here is making\n * the same mistake in a different spelling.\n */\nexport function assertIri(id: string | null, className: string): void {\n if (id === null || id === undefined || id === '') {\n throw new Error(`${className} requires an IRI. An IRI-valued field with nothing in it is an empty node, not a null IRI.`);\n }\n}\n\n/**\n * A value that is an IRI and nothing else.\n *\n * The IRI is required, and the constructor now says so. `{\"@id\": null}` is not\n * an unfilled link — an unfilled IRI-valued field is `{}`, which is\n * `InstanceDataEmptyAtom` — and JSON-LD has no null branch for `@id` any more\n * than CEDAR's templates do, which declare it `{\"type\": \"string\", \"format\":\n * \"uri\"}`. `JsonTemplateInstanceReader.reportNullIri` has said so on the way in\n * for some time. The way out said nothing, so a consumer could build exactly the\n * node the reader would go on to complain about.\n */\nexport class InstanceDataLinkAtom {\n private readonly _id: string | null;\n\n constructor(id: string);\n constructor(id: string | null, parsed: typeof PARSED_NODE);\n constructor(id: string | null, parsed?: typeof PARSED_NODE) {\n if (parsed !== PARSED_NODE) {\n assertIri(id, 'InstanceDataLinkAtom');\n }\n this._id = id;\n }\n\n /**\n * The atom a reader makes of a node whose `@id` is null.\n *\n * Only the readers use this. A document that arrives malformed is preserved as\n * it came and reported, because fidelity to what a host actually sent is worth\n * more than a tidy model: a consumer cannot say which field lost what if the\n * library quietly repaired it on the way through. Refusing at construction is\n * for code that is composing an instance, where there is still something to\n * fix.\n */\n static fromParsedNode(id: string | null): InstanceDataLinkAtom {\n return new InstanceDataLinkAtom(id, PARSED_NODE);\n }\n\n get id(): string | null {\n return this._id;\n }\n}\n","export class InstanceDataStringAtom {\n private _value: string | null;\n\n constructor(value: string | null) {\n this._value = value;\n }\n\n get value(): string | null {\n return this._value;\n }\n}\n","/**\n * A literal that declares its XSD type, as a temporal or numeric field does.\n *\n * The value may be null — an unfilled literal is `{\"@value\": null}`, which CEDAR\n * declares as `[\"string\", \"null\"]` — but the type may not. A typed atom with no\n * type is an `InstanceDataStringAtom`, which is exactly the choice the readers\n * make when they find no `@type`, so a null here produces a node no reader would\n * ever have built.\n */\nexport class InstanceDataTypedAtom {\n private readonly _value: string | null;\n private readonly _type: string;\n\n constructor(value: string | null, type: string) {\n if (type === null || type === undefined || type === '') {\n throw new Error('InstanceDataTypedAtom requires a type. A literal with no declared type is an InstanceDataStringAtom.');\n }\n this._value = value;\n this._type = type;\n }\n\n get value(): string | null {\n return this._value;\n }\n\n get type(): string {\n return this._type;\n }\n}\n","import { TemplateInstance } from './TemplateInstance';\nimport { InstanceDataContainer } from './InstanceDataContainer';\nimport { InstanceDataAtomType } from './InstanceDataAtomType';\nimport { InstanceDataEmptyNode } from './InstanceDataEmptyNode';\nimport { AbstractContainerArtifact } from '../AbstractContainerArtifact';\nimport { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\nimport { CedarFieldType } from '../types/cedar-types/CedarFieldType';\nimport { TemplateElement } from '../element/TemplateElement';\nimport { TemplateField } from '../field/TemplateField';\nimport { Template } from '../template/Template';\n\n/**\n * Reconstruct a complete instance from a sparse one and its template.\n *\n * The YAML serialization is lean: it drops the JSON-LD `@context` (the property\n * IRIs) and omits fields with no value, and it need not order children the way\n * the template does. None of that is in the instance to recover — it is template\n * data. This bridges the two, so an instance read from YAML can be written back\n * as a valid CEDAR JSON instance:\n *\n * - **`@context` IRIs** — each child's property IRI is copied onto the\n * instance's data container (`dataContainer.iris`), which is what the JSON\n * instance writer builds the `@context` from. Without them the emitted\n * `@context` has no per-property entries and the instance is not valid JSON-LD.\n * - **empty slots** — a child the sparse instance omitted is re-added empty, so\n * every property the template's JSON Schema requires is present.\n * - **child order** — children are placed in the template's declared order.\n *\n * Values the sparse instance already carries are preserved untouched. Mirrors the\n * Java library's `InstanceInflater`.\n */\nexport class InstanceInflater {\n private constructor() {}\n\n public static inflate(instance: TemplateInstance, template: Template): TemplateInstance {\n InstanceInflater.inflateContainer(instance.dataContainer, template);\n return instance;\n }\n\n private static inflateContainer(container: InstanceDataContainer, template: AbstractContainerArtifact): void {\n const info = template.getChildrenInfo();\n\n const iriMap = info.getChildIriMap();\n Object.keys(iriMap).forEach((name) => container.setIri(name, iriMap[name]));\n\n const ordered: { [key: string]: InstanceDataAtomType } = {};\n info.getChildrenNames().forEach((name) => {\n const child = template.getChild(name);\n let value: InstanceDataAtomType = container.values[name];\n if (value === undefined) {\n // A static field is not a property of the instance, so it gets no slot.\n // `getChildIriMap` above already refuses it a property IRI for exactly\n // that reason; adding a slot here contradicted it and produced an\n // instance carrying `\"Page break 1\": {}` — a property with no `@context`\n // entry, which is neither valid JSON-LD nor what CEDAR writes. An\n // instance that genuinely carries one keeps it, through the pass below\n // that preserves what the template does not name.\n if (template.getChildInfo(name)?.atType === CedarArtifactType.STATIC_TEMPLATE_FIELD) {\n return;\n }\n // An attribute-value field naming no attribute is an empty list, not an\n // empty node. The two are not interchangeable: an empty node writes as\n // `{}`, which is not a shape CEDAR gives this field and which reads back\n // as itself, so the wrong shape survives once written. `packAttributeValues`\n // settles the same question the same way at read time — an empty array is\n // the empty list it looks like — and the two have to agree, or inflating\n // an instance produces something reading it never would.\n value =\n child instanceof TemplateField && child.cedarFieldType === CedarFieldType.ATTRIBUTE_VALUE ? [] : new InstanceDataEmptyNode();\n }\n if (child instanceof TemplateElement) {\n if (value instanceof InstanceDataContainer) {\n InstanceInflater.inflateContainer(value, child);\n } else if (Array.isArray(value)) {\n value.forEach((element) => {\n if (element instanceof InstanceDataContainer) {\n InstanceInflater.inflateContainer(element, child);\n }\n });\n }\n }\n ordered[name] = value;\n });\n\n // Keep anything the template does not name — an attribute-value field's\n // attributes, say — ahead of nothing being lost, in its existing place.\n Object.keys(container.values).forEach((name) => {\n if (!Object.hasOwn(ordered, name)) {\n ordered[name] = container.values[name];\n }\n });\n\n container.values = ordered;\n }\n}\n","import { TemplateInstance } from './TemplateInstance';\nimport { InstanceDataContainer } from './InstanceDataContainer';\nimport { InstanceDataAtomType } from './InstanceDataAtomType';\nimport { InstanceDataEmptyAtom } from './InstanceDataEmptyAtom';\nimport { InstanceDataEmptyNode } from './InstanceDataEmptyNode';\nimport { InstanceDataStringAtom } from './InstanceDataStringAtom';\nimport { InstanceDataTypedAtom } from './InstanceDataTypedAtom';\nimport { InstanceDataLinkAtom } from './InstanceDataLinkAtom';\nimport { InstanceDataControlledAtom } from './InstanceDataControlledAtom';\nimport { AbstractContainerArtifact } from '../AbstractContainerArtifact';\nimport { AbstractChildDeploymentInfo } from '../deployment/AbstractChildDeploymentInfo';\nimport { AbstractDynamicChildDeploymentInfo } from '../deployment/AbstractDynamicChildDeploymentInfo';\nimport { TemplateElement } from '../element/TemplateElement';\nimport { Template } from '../template/Template';\nimport { TemporalFieldImpl } from '../field/dynamic/temporal/TemporalFieldImpl';\nimport { NumericFieldImpl } from '../field/dynamic/numeric/NumericFieldImpl';\nimport { JsonArtifactParsingResult } from '../util/compare/JsonArtifactParsingResult';\nimport { ComparisonError } from '../util/compare/ComparisonError';\nimport { ComparisonErrorType } from '../util/compare/ComparisonErrorType';\nimport { JsonPath } from '../util/path/JsonPath';\nimport { JsonSchema } from '../constants/JsonSchema';\nimport { UiInputType } from '../types/wrapped-types/UiInputType';\nimport { InstanceDataAttributeValueField } from './InstanceDataAttributeValueField';\nimport { InstanceDataAttributeValueFieldName } from './InstanceDataAttributeValueFieldName';\nimport { AttributeValueNamePolicy } from './AttributeValueNamePolicy';\nimport { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\n\nconst LOCATION = 'InstanceValidator';\n\n/**\n * Check a parsed instance against the template that defines it.\n *\n * Reading an instance answers no question about whether it is *correct*. The\n * reader takes a JSON document at face value — it is handed no template, so a\n * field that has lost its `@type`, an element short of its `minItems`, or a\n * property the template requires and the document omits all parse cleanly. The\n * verdict on those needs the template, which is what this takes.\n *\n * It is deliberately the counterpart of `InstanceInflater`: the same walk over\n * the same pairing of container and template, but reporting what is wrong\n * instead of repairing it. Where the inflater re-adds a missing slot, this\n * records that it was missing.\n *\n * ## What is checked\n *\n * - **presence** — every child the template lists in its JSON Schema\n * `required` has a slot. Static fields and attribute-value fields are\n * excluded, exactly as `getChildrenNamesForRequiredInProperties` excludes\n * them from `required` itself.\n * - **cardinality** — a multi child holds an array and a single child does\n * not, and the array's length sits within `minItems`/`maxItems`.\n * - **value type** — a temporal or numeric value carries the `@type` its\n * field declares. These are the two field kinds whose instance\n * representation is a typed atom, so they are the two where a missing or\n * wrong `@type` is unambiguous rather than a matter of interpretation.\n * - **elements** — recursively, on the same terms.\n *\n * ## What is deliberately not checked\n *\n * An empty slot is valid. A property must be *present*, but `null` is a legal\n * value for one — that is how CEDAR represents \"not filled in\", and the\n * template's own schema permits it. So emptiness is never an error here; only\n * absence is.\n *\n * Emptiness has a legal spelling, though, and `{\"@id\": null}` is not it. A\n * literal's `@value` may be null; an `@id` may not, and an unfilled link is\n * written `{}`. That asymmetry is checked — see `validateIri`.\n *\n * Nor does this police the atom kind of every field. Only temporal and numeric\n * fields have a declared datatype to check against. Inferring the rest from\n * `uiInputType` would mean asserting things the model does not actually\n * constrain, and a validator that reports errors which are not errors is worse\n * than one that stays quiet: consumers stop believing it. Widening the check is\n * a matter of adding cases here as the model gains constraints worth enforcing.\n */\nexport class InstanceValidator {\n private constructor() {}\n\n /**\n * The instance judged against its template.\n *\n * A `JsonArtifactParsingResult` rather than a new result type, so a consumer\n * already reading `wasSuccessful()` or `adheresToBlueprint()` off a reader\n * result can read this the same way.\n */\n public static validate(instance: TemplateInstance, template: Template): JsonArtifactParsingResult {\n const result = new JsonArtifactParsingResult();\n InstanceValidator.validateContainer(instance.dataContainer, template, new JsonPath(), result);\n return result;\n }\n\n private static validateContainer(\n container: InstanceDataContainer,\n template: AbstractContainerArtifact,\n path: JsonPath,\n result: JsonArtifactParsingResult,\n ): void {\n const info = template.getChildrenInfo();\n\n for (const conflict of AttributeValueNamePolicy.findConflicts(container).filter((candidate) => candidate.path.length === 0)) {\n result.addBlueprintComparisonError(\n new ComparisonError(\n LOCATION,\n ComparisonErrorType.VALUE_MISMATCH,\n path.add(conflict.groupName, conflict.name),\n 'a unique, non-reserved attribute-value name',\n conflict.name,\n ),\n );\n }\n\n for (const [groupName, attributeNames] of InstanceValidator.attributeValueGroups(container)) {\n for (const attributeName of attributeNames) {\n const conflictingChild = info.get(attributeName);\n if (conflictingChild !== null && conflictingChild.atType !== CedarArtifactType.STATIC_TEMPLATE_FIELD) {\n result.addBlueprintComparisonError(\n new ComparisonError(\n LOCATION,\n ComparisonErrorType.VALUE_MISMATCH,\n path.add(groupName, attributeName),\n 'a name different from every serializable template child',\n attributeName,\n ),\n );\n }\n }\n }\n\n for (const name of info.getChildrenNamesForRequiredInProperties()) {\n if (!Object.hasOwn(container.values, name)) {\n result.addBlueprintComparisonError(\n new ComparisonError(LOCATION, ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, path.add(name), name),\n );\n }\n }\n\n for (const name of info.getChildrenNames()) {\n const childInfo = info.get(name);\n\n /**\n * An attribute-value field is not checked. Its instance representation is\n * a set of keys the user invented, not a value node, so the template\n * declares nothing here to compare against — which is the same reason\n * `getChildrenNamesForRequiredInProperties` leaves it out of `required`.\n */\n if (childInfo?.uiInputType === UiInputType.ATTRIBUTE_VALUE) {\n continue;\n }\n\n const value = container.values[name];\n if (value === undefined) {\n // Already reported above when the template requires it; a child that is\n // not required may legitimately be absent.\n continue;\n }\n InstanceValidator.validateChild(name, value, childInfo, template.getChild(name), path.add(name), result);\n }\n }\n\n private static attributeValueGroups(container: InstanceDataContainer): Array<[string, string[]]> {\n const groups: Array<[string, string[]]> = [];\n for (const [name, value] of Object.entries(container.values)) {\n if (value instanceof InstanceDataAttributeValueField) {\n groups.push([name, Object.keys(value.values)]);\n } else if (Array.isArray(value)) {\n const names = value\n .filter((item): item is InstanceDataAttributeValueFieldName => item instanceof InstanceDataAttributeValueFieldName)\n .map((item) => item.name ?? '')\n .filter((item) => item.length > 0);\n if (names.length > 0) {\n groups.push([name, names]);\n }\n }\n }\n return groups;\n }\n\n private static validateChild(\n name: string,\n value: InstanceDataAtomType,\n childInfo: AbstractChildDeploymentInfo | null,\n child: unknown,\n path: JsonPath,\n result: JsonArtifactParsingResult,\n ): void {\n const isMulti = childInfo?.isMultiInAnyWay() ?? false;\n\n const values: Array<InstanceDataAtomType> | null = Array.isArray(value) ? value : null;\n const isList = values !== null;\n\n if (isMulti !== isList) {\n result.addBlueprintComparisonError(\n new ComparisonError(\n LOCATION,\n ComparisonErrorType.VALUE_MISMATCH,\n path,\n isMulti ? 'a list of values' : 'a single value',\n isList ? 'a list of values' : 'a single value',\n ),\n );\n // The cardinality is wrong, so per-item checks below would describe the\n // wrong shape. The one finding is the useful one.\n return;\n }\n\n if (values !== null) {\n InstanceValidator.validateCardinality(values, childInfo, path, result);\n values.forEach((item, index) => InstanceValidator.validateItem(item, child, path.add(index), result));\n return;\n }\n\n InstanceValidator.validateItem(value, child, path, result);\n }\n\n private static validateCardinality(\n values: Array<InstanceDataAtomType>,\n childInfo: AbstractChildDeploymentInfo | null,\n path: JsonPath,\n result: JsonArtifactParsingResult,\n ): void {\n if (!(childInfo instanceof AbstractDynamicChildDeploymentInfo)) {\n return;\n }\n const { minItems, maxItems } = childInfo;\n if (minItems !== null && values.length < minItems) {\n result.addBlueprintComparisonError(\n new ComparisonError(LOCATION, ComparisonErrorType.MISSING_INDEX_IN_REAL_OBJECT, path, minItems, values.length),\n );\n }\n if (maxItems !== null && values.length > maxItems) {\n result.addBlueprintComparisonError(\n new ComparisonError(LOCATION, ComparisonErrorType.UNEXPECTED_INDEX_IN_REAL_OBJECT, path, maxItems, values.length),\n );\n }\n }\n\n private static validateItem(value: InstanceDataAtomType, child: unknown, path: JsonPath, result: JsonArtifactParsingResult): void {\n if (child instanceof TemplateElement) {\n if (value instanceof InstanceDataContainer) {\n InstanceValidator.validateContainer(value, child, path, result);\n } else if (InstanceValidator.isEmpty(value)) {\n /**\n * An element written as `{}`. The reader classifies that as an empty\n * atom because, with no template, `{}` is indistinguishable from an\n * empty controlled-term field. Here the template says it is an element,\n * and an element holding nothing is missing every child its schema\n * requires — so it is judged as the empty container it is, which names\n * them individually rather than reporting one opaque error.\n */\n InstanceValidator.validateContainer(new InstanceDataContainer(), child, path, result);\n } else {\n result.addBlueprintComparisonError(\n new ComparisonError(LOCATION, ComparisonErrorType.VALUE_MISMATCH, path, 'an element', 'a field value'),\n );\n }\n return;\n }\n\n InstanceValidator.validateIri(value, path, result);\n\n const expectedType = InstanceValidator.declaredValueType(child);\n if (expectedType !== null) {\n InstanceValidator.validateTypedValue(value, expectedType, path, result);\n }\n }\n\n /**\n * `{\"@id\": null}` is not an empty value. It is a malformed one.\n *\n * `@value` and `@id` are not symmetrical here, and the difference is easy to\n * miss. A literal's `@value` may be null — JSON-LD allows it and CEDAR\n * declares the property `[\"string\", \"null\"]`, which is how an unfilled\n * literal is written. An `@id` may not: JSON-LD requires an IRI, and CEDAR\n * declares it `{\"type\": \"string\", \"format\": \"uri\"}` with no null branch. An\n * unfilled link or controlled-term field is written `{}` instead, which the\n * reader returns as an empty node.\n *\n * So a link atom carrying a null id came from a document that should not\n * exist, and nothing else notices: the reader accepts it and the writer emits\n * it back unchanged. None of the 120 instances in the shared corpus contains\n * one.\n *\n * This is a structural rule rather than a datatype one, so it applies to any\n * field. The instance's own top-level `@id` is a different matter — an unsaved\n * instance legitimately has none — and is not reached here, which walks only\n * the children the template declares.\n */\n private static validateIri(value: InstanceDataAtomType, path: JsonPath, result: JsonArtifactParsingResult): void {\n const hasNullIri = (value instanceof InstanceDataLinkAtom || value instanceof InstanceDataControlledAtom) && value.id === null;\n if (hasNullIri) {\n result.addBlueprintComparisonError(\n new ComparisonError(LOCATION, ComparisonErrorType.MISSING_VALUE_IN_REAL_OBJECT, path.add(JsonSchema.atId), 'an IRI', null),\n );\n }\n }\n\n /**\n * The `@type` a filled value of this field must carry, or null where the\n * field kind declares none.\n */\n private static declaredValueType(child: unknown): string | null {\n if (child instanceof TemporalFieldImpl) {\n return child.valueConstraints.temporalType.getValue();\n }\n if (child instanceof NumericFieldImpl) {\n return child.valueConstraints.numberType.getValue();\n }\n return null;\n }\n\n private static validateTypedValue(\n value: InstanceDataAtomType,\n expectedType: string,\n path: JsonPath,\n result: JsonArtifactParsingResult,\n ): void {\n if (InstanceValidator.isEmpty(value)) {\n return;\n }\n\n if (value instanceof InstanceDataTypedAtom) {\n if (value.value !== null && value.type !== expectedType) {\n result.addBlueprintComparisonError(\n new ComparisonError(\n LOCATION,\n ComparisonErrorType.VALUE_MISMATCH,\n path.add(JsonSchema.atType),\n expectedType,\n value.type ?? undefined,\n ),\n );\n }\n return;\n }\n\n /**\n * A filled value that parsed as a plain string atom never had an `@type` to\n * read. This is the shape an editor produces when it writes the value back\n * and drops the type alongside it: the document stays well formed, the\n * value survives, and only the schema knows anything is wrong.\n */\n if (value instanceof InstanceDataStringAtom && value.value !== null) {\n result.addBlueprintComparisonError(\n new ComparisonError(LOCATION, ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, path.add(JsonSchema.atType), expectedType),\n );\n }\n }\n\n /** An unfilled slot, in any of the shapes the reader produces for one. */\n private static isEmpty(value: InstanceDataAtomType): boolean {\n if (value instanceof InstanceDataEmptyAtom || value instanceof InstanceDataEmptyNode) {\n return true;\n }\n if (value instanceof InstanceDataStringAtom || value instanceof InstanceDataTypedAtom) {\n return value.value === null;\n }\n return false;\n }\n}\n","import { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\nimport { AbstractInstanceArtifact } from '../AbstractInstanceArtifact';\nimport { InstanceDataContainer } from './InstanceDataContainer';\n\nexport class TemplateInstance extends AbstractInstanceArtifact {\n dataContainer: InstanceDataContainer;\n\n private constructor() {\n super();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE_INSTANCE;\n this.dataContainer = new InstanceDataContainer();\n }\n\n public static buildEmptyWithNullValues(): TemplateInstance {\n return new TemplateInstance();\n }\n}\n","import { AbstractArtifactBuilder } from '../AbstractArtifacBuilder';\nimport { TemplateInstance } from './TemplateInstance';\nimport { InstanceDataContainer } from './InstanceDataContainer';\nimport { InstanceDataAtomType } from './InstanceDataAtomType';\nimport { CedarArtifactId } from '../types/cedar-types/CedarArtifactId';\n\nexport class TemplateInstanceBuilder extends AbstractArtifactBuilder {\n private schema_isBasedOn: CedarArtifactId = CedarArtifactId.NULL;\n private dataContainer: InstanceDataContainer = new InstanceDataContainer();\n\n public withSchemaIsBasedOn(schema_isBasedOn: CedarArtifactId | string): TemplateInstanceBuilder {\n if (schema_isBasedOn instanceof CedarArtifactId) {\n this.schema_isBasedOn = schema_isBasedOn;\n } else {\n this.schema_isBasedOn = CedarArtifactId.forValue(schema_isBasedOn);\n }\n return this;\n }\n\n public withDataValue(key: string, value: InstanceDataAtomType): TemplateInstanceBuilder {\n this.dataContainer.setValue(key, value);\n return this;\n }\n\n public withDataIri(key: string, iri: string): TemplateInstanceBuilder {\n this.dataContainer.setIri(key, iri);\n return this;\n }\n\n public withDataId(id: string | null): TemplateInstanceBuilder {\n this.dataContainer.id = id;\n return this;\n }\n\n public withDataContainer(dataContainer: InstanceDataContainer): TemplateInstanceBuilder {\n this.dataContainer = dataContainer;\n return this;\n }\n\n public build(): TemplateInstance {\n const templateInstance: TemplateInstance = TemplateInstance.buildEmptyWithNullValues();\n\n // Set properties from AbstractArtifact\n templateInstance.at_id = this.at_id;\n templateInstance.pav_createdOn = this.pav_createdOn;\n templateInstance.pav_createdBy = this.pav_createdBy;\n templateInstance.pav_lastUpdatedOn = this.pav_lastUpdatedOn;\n templateInstance.oslc_modifiedBy = this.oslc_modifiedBy;\n templateInstance.pav_derivedFrom = this.pav_derivedFrom;\n templateInstance.schema_name = this.schema_name;\n templateInstance.schema_description = this.schema_description;\n\n // Set TemplateInstance specific properties\n templateInstance.schema_isBasedOn = this.schema_isBasedOn;\n templateInstance.dataContainer = this.dataContainer;\n\n return templateInstance;\n }\n}\n","import { BiboStatus } from '../types/wrapped-types/BiboStatus';\nimport { SchemaVersion } from '../types/wrapped-types/SchemaVersion';\nimport { PavVersion } from '../types/wrapped-types/PavVersion';\nimport { AbstractContainerArtifact } from '../AbstractContainerArtifact';\nimport { CedarArtifactType } from '../types/cedar-types/CedarArtifactType';\nimport { AbstractDynamicChildDeploymentInfoBuilder } from '../deployment/AbstractDynamicChildDeploymentInfoBuilder';\n\nexport class Template extends AbstractContainerArtifact {\n public header: string | null = null;\n public footer: string | null = null;\n\n private constructor() {\n super();\n this.cedarArtifactType = CedarArtifactType.TEMPLATE;\n }\n\n public static buildEmptyWithNullValues(): Template {\n return new Template();\n }\n\n // TODO :probably should be removed\n public static buildEmptyWithDefaultValues(): Template {\n const r = new Template();\n r.schema_schemaVersion = SchemaVersion.CURRENT;\n r.bibo_status = BiboStatus.DRAFT;\n r.pav_version = PavVersion.DEFAULT;\n return r;\n }\n\n override isMultiInstanceByDefinition(): boolean {\n return false;\n }\n\n override isSingleInstanceByDefinition(): boolean {\n return false;\n }\n\n createDeploymentBuilder(_childName: string): AbstractDynamicChildDeploymentInfoBuilder {\n throw new Error('Method not supported.');\n }\n}\n","import { TemplateChild } from '../types/basic-types/TemplateChild';\nimport { Template } from './Template';\nimport { AbstractArtifactBuilder } from '../AbstractArtifacBuilder';\nimport { ChildDeploymentInfo } from '../deployment/ChildDeploymentInfo';\n\nexport class TemplateBuilder extends AbstractArtifactBuilder {\n private header: string | null = null;\n private footer: string | null = null;\n private instanceTypeSpecification: string | null = null;\n\n private children: Array<[TemplateChild, ChildDeploymentInfo]> = [];\n\n public withHeader(header: string): TemplateBuilder {\n this.header = header;\n return this;\n }\n\n public withFooter(footer: string): TemplateBuilder {\n this.footer = footer;\n return this;\n }\n\n public withInstanceTypeSpecification(instanceTypeSpecification: string): TemplateBuilder {\n this.instanceTypeSpecification = instanceTypeSpecification;\n return this;\n }\n\n public addChild(child: TemplateChild, deploymentInfo: ChildDeploymentInfo): TemplateBuilder {\n this.children.push([child, deploymentInfo]);\n return this;\n }\n\n public build(): Template {\n const template: Template = Template.buildEmptyWithNullValues();\n super.buildInternal(template);\n\n template.header = this.header;\n template.footer = this.footer;\n template.instanceTypeSpecification = this.instanceTypeSpecification;\n\n this.children.forEach(([child, deploymentInfo]: [TemplateChild, ChildDeploymentInfo]) => {\n template.addChild(child, deploymentInfo);\n });\n\n return template;\n }\n}\n","export abstract class JsonNode {\n [key: string]: string | number | boolean | object | null | undefined;\n\n static getEmpty(): JsonNode {\n return {};\n }\n\n static getEmptyList(): Array<JsonNode> {\n return [];\n }\n\n static hasEntries(node: JsonNode): boolean {\n return Object.keys(node).length > 0;\n }\n}\n","export const BioportalTermTypeJsonValues = {\n ONTOLOGY_CLASS: 'OntologyClass',\n VALUE: 'Value',\n} as const;\n\nexport const BioportalTermTypeYamlValues = {\n ONTOLOGY_CLASS: 'class',\n VALUE: 'value',\n} as const;\n\nexport type BioportalTermTypeJsonValue = (typeof BioportalTermTypeJsonValues)[keyof typeof BioportalTermTypeJsonValues] | null;\nexport type BioportalTermTypeYamlValue = (typeof BioportalTermTypeYamlValues)[keyof typeof BioportalTermTypeYamlValues] | null;\n\nexport class BioportalTermType {\n private readonly jsonValue: BioportalTermTypeJsonValue | null;\n private readonly yamlValue: BioportalTermTypeYamlValue | null;\n\n private constructor(jsonValue: BioportalTermTypeJsonValue, yamlValue: BioportalTermTypeYamlValue) {\n this.jsonValue = jsonValue;\n this.yamlValue = yamlValue;\n }\n\n public getJsonValue(): BioportalTermTypeJsonValue {\n return this.jsonValue;\n }\n\n getYamlValue(): BioportalTermTypeYamlValue {\n return this.yamlValue;\n }\n\n public static ONTOLOGY_CLASS = new BioportalTermType(\n BioportalTermTypeJsonValues.ONTOLOGY_CLASS,\n BioportalTermTypeYamlValues.ONTOLOGY_CLASS,\n );\n public static VALUE = new BioportalTermType(BioportalTermTypeJsonValues.VALUE, BioportalTermTypeYamlValues.VALUE);\n public static NULL = new BioportalTermType(null, null);\n\n public static values(): BioportalTermType[] {\n return [BioportalTermType.ONTOLOGY_CLASS, BioportalTermType.VALUE];\n }\n\n public static forJsonValue(value: string | null): BioportalTermType {\n for (const termType of BioportalTermType.values()) {\n if (termType.getJsonValue() === value) {\n return termType;\n }\n }\n return this.NULL;\n }\n\n public static forYamlValue(value: string | null): BioportalTermType {\n for (const termType of BioportalTermType.values()) {\n if (termType.getYamlValue() === value) {\n return termType;\n }\n }\n return this.NULL;\n }\n}\n","export class CedarArtifactId {\n private readonly value: string | null;\n\n private constructor(value: string | null) {\n this.value = value;\n }\n\n public getValue(): string | null {\n return this.value;\n }\n\n public static NULL = new CedarArtifactId(null);\n\n static forValue(value: string | null): CedarArtifactId {\n if (value === null) {\n return CedarArtifactId.NULL;\n } else if (value === '') {\n return CedarArtifactId.NULL;\n } else {\n return new CedarArtifactId(value);\n }\n }\n}\n","import { YamlArtifactType } from '../wrapped-types/YamlArtifactType';\n\nexport const CedarArtifactTypeValues = {\n TEMPLATE: 'https://schema.metadatacenter.org/core/Template',\n TEMPLATE_ELEMENT: 'https://schema.metadatacenter.org/core/TemplateElement',\n TEMPLATE_FIELD: 'https://schema.metadatacenter.org/core/TemplateField',\n STATIC_TEMPLATE_FIELD: 'https://schema.metadatacenter.org/core/StaticTemplateField',\n TEMPLATE_INSTANCE: 'TemplateInstance',\n} as const;\n\nexport const CedarArtifactTypeYamlValues = {\n TEMPLATE: 'template',\n TEMPLATE_ELEMENT: 'templateElement',\n TEMPLATE_FIELD: 'templateField',\n STATIC_TEMPLATE_FIELD: 'staticTemplateField',\n TEMPLATE_INSTANCE: 'instance',\n} as const;\n\nexport type CedarArtifactTypeValue = (typeof CedarArtifactTypeValues)[keyof typeof CedarArtifactTypeValues] | null;\nexport type CedarArtifactTypeYamlValue = (typeof CedarArtifactTypeYamlValues)[keyof typeof CedarArtifactTypeYamlValues] | null;\n\nexport class CedarArtifactType {\n private readonly value: CedarArtifactTypeValue | null;\n private readonly yamlValue: CedarArtifactTypeYamlValue | null;\n\n private constructor(value: CedarArtifactTypeValue, yamlValue: CedarArtifactTypeYamlValue) {\n this.value = value;\n this.yamlValue = yamlValue;\n }\n\n public getValue(): CedarArtifactTypeValue {\n return this.value;\n }\n\n getYamlValue() {\n return this.yamlValue;\n }\n\n public static TEMPLATE = new CedarArtifactType(CedarArtifactTypeValues.TEMPLATE, CedarArtifactTypeYamlValues.TEMPLATE);\n public static TEMPLATE_ELEMENT = new CedarArtifactType(\n CedarArtifactTypeValues.TEMPLATE_ELEMENT,\n CedarArtifactTypeYamlValues.TEMPLATE_ELEMENT,\n );\n public static TEMPLATE_FIELD = new CedarArtifactType(CedarArtifactTypeValues.TEMPLATE_FIELD, CedarArtifactTypeYamlValues.TEMPLATE_FIELD);\n public static STATIC_TEMPLATE_FIELD = new CedarArtifactType(\n CedarArtifactTypeValues.STATIC_TEMPLATE_FIELD,\n CedarArtifactTypeYamlValues.STATIC_TEMPLATE_FIELD,\n );\n public static TEMPLATE_INSTANCE = new CedarArtifactType(\n CedarArtifactTypeValues.TEMPLATE_INSTANCE,\n CedarArtifactTypeYamlValues.TEMPLATE_INSTANCE,\n );\n public static NULL = new CedarArtifactType(null, null);\n\n public static values(): CedarArtifactType[] {\n return [\n CedarArtifactType.TEMPLATE,\n CedarArtifactType.TEMPLATE_ELEMENT,\n CedarArtifactType.TEMPLATE_FIELD,\n CedarArtifactType.STATIC_TEMPLATE_FIELD,\n CedarArtifactType.TEMPLATE_INSTANCE,\n ];\n }\n\n public static forValue(value: string | null): CedarArtifactType {\n for (const artifactType of CedarArtifactType.values()) {\n if (artifactType.getValue() === value) {\n return artifactType;\n }\n }\n return this.NULL;\n }\n\n static forYamlArtifactType(yamlArtifactType: YamlArtifactType): CedarArtifactType {\n if (yamlArtifactType.isTemplate()) {\n return CedarArtifactType.TEMPLATE;\n } else if (yamlArtifactType.isElement()) {\n return CedarArtifactType.TEMPLATE_ELEMENT;\n } else if (yamlArtifactType.isDynamicField()) {\n return CedarArtifactType.TEMPLATE_FIELD;\n } else if (yamlArtifactType.isStaticField()) {\n return CedarArtifactType.STATIC_TEMPLATE_FIELD;\n } else if (yamlArtifactType.isTemplateInstance()) {\n return CedarArtifactType.TEMPLATE_INSTANCE;\n }\n return CedarArtifactType.NULL;\n }\n}\n","export const CedarFieldCategoryValues = {\n STATIC: 'STATIC-field',\n DYNAMIC: 'DYNAMIC-field',\n NONE: 'NONE',\n} as const;\n\nexport type CedarFieldCategoryValue = (typeof CedarFieldCategoryValues)[keyof typeof CedarFieldCategoryValues] | null;\n\nexport class CedarFieldCategory {\n private readonly value: CedarFieldCategoryValue | null;\n\n private constructor(value: CedarFieldCategoryValue) {\n this.value = value;\n }\n\n public getValue(): CedarFieldCategoryValue {\n return this.value;\n }\n\n public static values(): CedarFieldCategory[] {\n return [CedarFieldCategory.STATIC, CedarFieldCategory.DYNAMIC, CedarFieldCategory.NONE];\n }\n\n public static STATIC = new CedarFieldCategory(CedarFieldCategoryValues.STATIC);\n public static DYNAMIC = new CedarFieldCategory(CedarFieldCategoryValues.DYNAMIC);\n public static NONE = new CedarFieldCategory(CedarFieldCategoryValues.NONE);\n public static NULL = new CedarFieldCategory(null);\n}\n","import { UiInputType } from '../wrapped-types/UiInputType';\nimport { YamlArtifactType } from '../wrapped-types/YamlArtifactType';\n\nexport const CedarFieldTypeValues = {\n TEXTFIELD: 'DYNAMIC-textfield',\n TEXTAREA: 'DYNAMIC-textarea',\n CONTROLLED_TERM: 'DYNAMIC-controlled-term',\n LINK: 'DYNAMIC-link',\n EXT_ROR: 'DYNAMIC-ext-ror',\n EXT_ORCID: 'DYNAMIC-ext-orcid',\n EXT_PFAS: 'DYNAMIC-ext-pfas',\n EXT_PUBMED: 'DYNAMIC-ext-pubmed',\n EXT_RRID: 'DYNAMIC-ext-rrid',\n EXT_NIH_GRANT_ID: 'DYNAMIC-ext-nih-grant-id',\n EXT_DOI: 'DYNAMIC-ext-doi',\n TEMPORAL: 'DYNAMIC-temporal',\n EMAIL: 'DYNAMIC-email',\n NUMERIC: 'DYNAMIC-numeric',\n PHONE_NUMBER: 'DYNAMIC-phone-number',\n RADIO: 'DYNAMIC-radio',\n CHECKBOX: 'DYNAMIC-checkbox',\n SINGLE_SELECT_LIST: 'DYNAMIC-single-select-list',\n MULTIPLE_SELECT_LIST: 'DYNAMIC-multiple-select-list',\n ATTRIBUTE_VALUE: 'DYNAMIC-attribute-value',\n\n STATIC_PAGE_BREAK: 'STATIC-page-break',\n STATIC_SECTION_BREAK: 'STATIC-section-break',\n STATIC_IMAGE: 'STATIC-image',\n STATIC_RICH_TEXT: 'STATIC-rich_text',\n STATIC_YOUTUBE: 'STATIC-youtube',\n} as const;\n\nexport type CedarFieldTypeValue = (typeof CedarFieldTypeValues)[keyof typeof CedarFieldTypeValues] | null;\n\nexport class CedarFieldType {\n private readonly value: CedarFieldTypeValue | null;\n private readonly _uiInputType: UiInputType;\n private readonly _yamlType: YamlArtifactType;\n private readonly staticField;\n\n private constructor(value: CedarFieldTypeValue, uiInputType: UiInputType, yamlType: YamlArtifactType, staticField: boolean) {\n this.value = value;\n this._uiInputType = uiInputType;\n this._yamlType = yamlType;\n this.staticField = staticField;\n }\n\n public getValue(): CedarFieldTypeValue {\n return this.value;\n }\n\n public getUiInputType(): UiInputType {\n return this._uiInputType;\n }\n\n public getYamlType(): YamlArtifactType {\n return this._yamlType;\n }\n\n get isStaticField() {\n return this.staticField;\n }\n\n public static values(): CedarFieldType[] {\n return [\n CedarFieldType.TEXT,\n CedarFieldType.TEXTAREA,\n CedarFieldType.CONTROLLED_TERM,\n CedarFieldType.LINK,\n CedarFieldType.EXT_ROR,\n CedarFieldType.EXT_ORCID,\n CedarFieldType.EXT_PFAS,\n CedarFieldType.EXT_PUBMED,\n CedarFieldType.EXT_RRID,\n CedarFieldType.EXT_NIH_GRANT_ID,\n CedarFieldType.EXT_DOI,\n CedarFieldType.TEMPORAL,\n CedarFieldType.EMAIL,\n CedarFieldType.NUMERIC,\n CedarFieldType.PHONE_NUMBER,\n CedarFieldType.RADIO,\n CedarFieldType.CHECKBOX,\n CedarFieldType.SINGLE_SELECT_LIST,\n CedarFieldType.MULTIPLE_SELECT_LIST,\n CedarFieldType.ATTRIBUTE_VALUE,\n CedarFieldType.STATIC_PAGE_BREAK,\n CedarFieldType.STATIC_SECTION_BREAK,\n CedarFieldType.STATIC_IMAGE,\n CedarFieldType.STATIC_RICH_TEXT,\n CedarFieldType.STATIC_YOUTUBE,\n ];\n }\n\n public static TEXT = new CedarFieldType(CedarFieldTypeValues.TEXTFIELD, UiInputType.TEXTFIELD, YamlArtifactType.TEXTFIELD, false);\n public static TEXTAREA = new CedarFieldType(CedarFieldTypeValues.TEXTAREA, UiInputType.TEXTAREA, YamlArtifactType.TEXTAREA, false);\n public static CONTROLLED_TERM = new CedarFieldType(\n CedarFieldTypeValues.CONTROLLED_TERM,\n UiInputType.TEXTFIELD,\n YamlArtifactType.CONTROLLED_TERM,\n false,\n );\n public static LINK = new CedarFieldType(CedarFieldTypeValues.LINK, UiInputType.LINK, YamlArtifactType.LINK, false);\n public static EXT_ROR = new CedarFieldType(CedarFieldTypeValues.EXT_ROR, UiInputType.EXT_ROR, YamlArtifactType.EXT_ROR, false);\n public static EXT_ORCID = new CedarFieldType(CedarFieldTypeValues.EXT_ORCID, UiInputType.EXT_ORCID, YamlArtifactType.EXT_ORCID, false);\n public static EXT_PFAS = new CedarFieldType(CedarFieldTypeValues.EXT_PFAS, UiInputType.EXT_PFAS, YamlArtifactType.EXT_PFAS, false);\n public static EXT_PUBMED = new CedarFieldType(\n CedarFieldTypeValues.EXT_PUBMED,\n UiInputType.EXT_PUBMED,\n YamlArtifactType.EXT_PUBMED,\n false,\n );\n public static EXT_RRID = new CedarFieldType(CedarFieldTypeValues.EXT_RRID, UiInputType.EXT_RRID, YamlArtifactType.EXT_RRID, false);\n public static EXT_NIH_GRANT_ID = new CedarFieldType(\n CedarFieldTypeValues.EXT_NIH_GRANT_ID,\n UiInputType.EXT_NIH_GRANT_ID,\n YamlArtifactType.EXT_NIH_GRANT_ID,\n false,\n );\n public static EXT_DOI = new CedarFieldType(CedarFieldTypeValues.EXT_DOI, UiInputType.EXT_DOI, YamlArtifactType.EXT_DOI, false);\n public static TEMPORAL = new CedarFieldType(CedarFieldTypeValues.TEMPORAL, UiInputType.TEMPORAL, YamlArtifactType.TEMPORAL, false);\n public static EMAIL = new CedarFieldType(CedarFieldTypeValues.EMAIL, UiInputType.EMAIL, YamlArtifactType.EMAIL, false);\n public static NUMERIC = new CedarFieldType(CedarFieldTypeValues.NUMERIC, UiInputType.NUMERIC, YamlArtifactType.NUMERIC, false);\n public static PHONE_NUMBER = new CedarFieldType(\n CedarFieldTypeValues.PHONE_NUMBER,\n UiInputType.PHONE_NUMBER,\n YamlArtifactType.PHONE_NUMBER,\n false,\n );\n public static RADIO = new CedarFieldType(CedarFieldTypeValues.RADIO, UiInputType.RADIO, YamlArtifactType.RADIO, false);\n public static CHECKBOX = new CedarFieldType(CedarFieldTypeValues.CHECKBOX, UiInputType.CHECKBOX, YamlArtifactType.CHECKBOX, false);\n public static SINGLE_SELECT_LIST = new CedarFieldType(\n CedarFieldTypeValues.SINGLE_SELECT_LIST,\n UiInputType.LIST,\n YamlArtifactType.SINGLE_SELECT_LIST,\n false,\n );\n public static MULTIPLE_SELECT_LIST = new CedarFieldType(\n CedarFieldTypeValues.MULTIPLE_SELECT_LIST,\n UiInputType.LIST,\n YamlArtifactType.MULTI_SELECT_LIST,\n false,\n );\n public static ATTRIBUTE_VALUE = new CedarFieldType(\n CedarFieldTypeValues.ATTRIBUTE_VALUE,\n UiInputType.ATTRIBUTE_VALUE,\n YamlArtifactType.ATTRIBUTE_VALUE,\n false,\n );\n\n public static STATIC_PAGE_BREAK = new CedarFieldType(\n CedarFieldTypeValues.STATIC_PAGE_BREAK,\n UiInputType.PAGE_BREAK,\n YamlArtifactType.PAGE_BREAK,\n true,\n );\n public static STATIC_SECTION_BREAK = new CedarFieldType(\n CedarFieldTypeValues.STATIC_SECTION_BREAK,\n UiInputType.SECTION_BREAK,\n YamlArtifactType.SECTION_BREAK,\n true,\n );\n public static STATIC_IMAGE = new CedarFieldType(CedarFieldTypeValues.STATIC_IMAGE, UiInputType.IMAGE, YamlArtifactType.IMAGE, true);\n public static STATIC_RICH_TEXT = new CedarFieldType(\n CedarFieldTypeValues.STATIC_RICH_TEXT,\n UiInputType.RICH_TEXT,\n YamlArtifactType.RICH_TEXT,\n true,\n );\n public static STATIC_YOUTUBE = new CedarFieldType(\n CedarFieldTypeValues.STATIC_YOUTUBE,\n UiInputType.YOUTUBE,\n YamlArtifactType.YOUTUBE,\n true,\n );\n\n public static NULL = new CedarFieldType(null, UiInputType.NULL, YamlArtifactType.NULL, true);\n\n static forUiInputType(uiInputType: UiInputType): CedarFieldType {\n for (const fieldType of CedarFieldType.values()) {\n if (fieldType.getUiInputType() === uiInputType) {\n return fieldType;\n }\n }\n return this.NULL;\n }\n\n static forYamlArtifactType(yamlArtifactType: YamlArtifactType): CedarFieldType {\n for (const fieldType of CedarFieldType.values()) {\n if (fieldType.getYamlType() === yamlArtifactType) {\n return fieldType;\n }\n }\n return this.NULL;\n }\n}\n","export class CedarUser {\n private readonly value: string | null;\n\n private constructor(version: string | null) {\n this.value = version;\n }\n\n public getValue(): string | null {\n return this.value;\n }\n\n public static NULL = new CedarUser(null);\n\n public static forValue(value: string | null): CedarUser {\n if (value === null) {\n return CedarUser.NULL;\n } else {\n return new CedarUser(value);\n }\n }\n}\n","export const AdditionalPropertiesValues = {\n FALSE: 'false',\n ALLOW_ATTRIBUTE_VALUE: 'allow-attribute-value',\n} as const;\n\nexport type AdditionalPropertiesValue = (typeof AdditionalPropertiesValues)[keyof typeof AdditionalPropertiesValues] | null;\n\nexport class AdditionalProperties {\n private readonly value: AdditionalPropertiesValue | null;\n\n private constructor(value: AdditionalPropertiesValue) {\n this.value = value;\n }\n\n public getValue(): AdditionalPropertiesValue {\n return this.value;\n }\n\n public static FALSE = new AdditionalProperties(AdditionalPropertiesValues.FALSE);\n public static ALLOW_ATTRIBUTE_VALUE = new AdditionalProperties(AdditionalPropertiesValues.ALLOW_ATTRIBUTE_VALUE);\n public static NULL = new AdditionalProperties(null);\n\n public static values(): AdditionalProperties[] {\n return [AdditionalProperties.FALSE, AdditionalProperties.ALLOW_ATTRIBUTE_VALUE];\n }\n\n public static forValue(value: string | null): AdditionalProperties {\n for (const status of AdditionalProperties.values()) {\n if (status.getValue() === value) {\n return status;\n }\n }\n return this.NULL;\n }\n}\n","export const CedarSchemaValues = {\n CURRENT: 'http://json-schema.org/draft-04/schema#',\n} as const;\n\nexport class ArtifactSchema {\n private readonly value: string | null;\n\n private constructor(schema: string | null) {\n this.value = schema;\n }\n\n public getValue(): string | null {\n return this.value;\n }\n\n public static CURRENT = new ArtifactSchema(CedarSchemaValues.CURRENT);\n public static NULL = new ArtifactSchema(null);\n\n public static forValue(value: string | null): ArtifactSchema {\n if (value === null) {\n return new ArtifactSchema(CedarSchemaValues.CURRENT);\n } else {\n return new ArtifactSchema(value);\n }\n }\n}\n","export const BiboStatusJsonValues = {\n DRAFT: 'bibo:draft',\n PUBLISHED: 'bibo:published',\n} as const;\n\nexport const BiboStatusYamlValues = {\n DRAFT: 'draft',\n PUBLISHED: 'published',\n} as const;\n\nexport type BiboStatusJsonValue = (typeof BiboStatusJsonValues)[keyof typeof BiboStatusJsonValues] | null;\nexport type BiboStatusYamlValue = (typeof BiboStatusYamlValues)[keyof typeof BiboStatusYamlValues] | null;\n\nexport class BiboStatus {\n private readonly jsonValue: BiboStatusJsonValue | null;\n private readonly yamlValue: BiboStatusYamlValue | null;\n\n private constructor(jsonValue: BiboStatusJsonValue, yamlValue: BiboStatusYamlValue) {\n this.jsonValue = jsonValue;\n this.yamlValue = yamlValue;\n }\n\n public getJsonValue(): BiboStatusJsonValue {\n return this.jsonValue;\n }\n\n getYamlValue(): BiboStatusYamlValue {\n return this.yamlValue;\n }\n\n public static DRAFT = new BiboStatus(BiboStatusJsonValues.DRAFT, BiboStatusYamlValues.DRAFT);\n public static PUBLISHED = new BiboStatus(BiboStatusJsonValues.PUBLISHED, BiboStatusYamlValues.PUBLISHED);\n public static NULL = new BiboStatus(null, null);\n\n public static values(): BiboStatus[] {\n return [BiboStatus.DRAFT, BiboStatus.PUBLISHED];\n }\n\n public static forJsonValue(value: string | null): BiboStatus {\n for (const status of BiboStatus.values()) {\n if (status.getJsonValue() === value) {\n return status;\n }\n }\n return this.NULL;\n }\n\n public static forYamlValue(value: string | null): BiboStatus {\n for (const status of BiboStatus.values()) {\n if (status.getYamlValue() === value) {\n return status;\n }\n }\n return this.NULL;\n }\n}\n","export class Iri {\n private readonly value: string;\n\n constructor(value: string) {\n this.value = value;\n }\n\n getValue() {\n return this.value;\n }\n\n static empty(): Iri {\n return new Iri('');\n }\n\n isEmpty() {\n return this.value === '';\n }\n}\n","export class IsoDate {\n private readonly date: Date | null;\n private readonly timezoneOffset: string | null;\n\n private constructor(date: Date | null, timezoneOffset: string | null) {\n this.date = date;\n this.timezoneOffset = timezoneOffset;\n }\n\n public static NULL = new IsoDate(null, null);\n\n // Returns the date as an ISO string with the original time zone offset without partial seconds.\n public getValue(): string | null {\n if (this.date != null) {\n if (this.timezoneOffset === 'Z') {\n return this.date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n }\n\n const offsetMatch = this.timezoneOffset!.match(/([+-])(\\d{2}):(\\d{2})/);\n if (offsetMatch) {\n const sign = offsetMatch[1] === '+' ? 1 : -1;\n const offsetHours = parseInt(offsetMatch[2], 10) * sign;\n const offsetMinutes = parseInt(offsetMatch[3], 10) * sign;\n\n const utcMilliseconds = this.date.getTime();\n const offsetMilliseconds = (offsetHours * 60 + offsetMinutes) * 60 * 1000;\n\n const localDate = new Date(utcMilliseconds + offsetMilliseconds);\n\n const year = localDate.getUTCFullYear();\n const month = localDate.getUTCMonth() + 1;\n const day = localDate.getUTCDate();\n const hour = localDate.getUTCHours();\n const minute = localDate.getUTCMinutes();\n const second = localDate.getUTCSeconds();\n\n const formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}T${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}:${second.toString().padStart(2, '0')}`;\n\n return `${formattedDate}${this.timezoneOffset}`;\n }\n return null;\n } else {\n return null;\n }\n }\n\n public static forValue(isoDateString: string | null): IsoDate {\n if (!isoDateString) {\n return IsoDate.NULL;\n }\n // Regex to insert colon in timezone offset if missing\n isoDateString = isoDateString.replace(/([+-]\\d{2})(\\d{2})$/, '$1:$2');\n\n const timezoneOffset = isoDateString.match(/Z|([+-])([01]\\d):?([0-5]\\d)$/)?.[0] ?? 'Z';\n const date = new Date(timezoneOffset === 'Z' && !isoDateString.endsWith('Z') ? `${isoDateString}Z` : isoDateString);\n return new IsoDate(date, timezoneOffset);\n }\n\n public static now(): IsoDate {\n const date = new Date();\n const timezoneOffset = this.getCurrentGMTOffset();\n return new IsoDate(date, timezoneOffset);\n }\n\n public static getCurrentGMTOffset(): string {\n const offset = new Date().getTimezoneOffset();\n\n const absoluteOffset = Math.abs(offset);\n const hours = Math.floor(absoluteOffset / 60);\n const minutes = absoluteOffset % 60;\n\n const hoursFormatted = hours.toString().padStart(2, '0');\n const minutesFormatted = minutes.toString().padStart(2, '0');\n\n const sign = offset > 0 ? '-' : '+';\n\n return `${sign}${hoursFormatted}:${minutesFormatted}`;\n }\n}\n","export const JavascriptTypeValues = {\n ARRAY: 'array',\n OBJECT: 'object',\n STRING: 'string',\n} as const;\n\nexport type JavascriptTypeValue = (typeof JavascriptTypeValues)[keyof typeof JavascriptTypeValues] | null;\n\nexport class JavascriptType {\n private readonly value: JavascriptTypeValue | null;\n\n private constructor(value: JavascriptTypeValue) {\n this.value = value;\n }\n\n public getValue(): JavascriptTypeValue {\n return this.value;\n }\n\n public static ARRAY = new JavascriptType(JavascriptTypeValues.ARRAY);\n public static OBJECT = new JavascriptType(JavascriptTypeValues.OBJECT);\n public static STRING = new JavascriptType(JavascriptTypeValues.STRING);\n public static NULL = new JavascriptType(null);\n\n public static values(): JavascriptType[] {\n return [JavascriptType.ARRAY, JavascriptType.OBJECT, JavascriptType.STRING];\n }\n\n public static forValue(value: string | null): JavascriptType {\n for (const javascriptType of JavascriptType.values()) {\n if (javascriptType.getValue() === value) {\n return javascriptType;\n }\n }\n return this.NULL;\n }\n}\n","export class Language {\n private readonly value: string | null;\n\n private constructor(value: string | null) {\n this.value = value;\n }\n\n public getValue(): string | null {\n return this.value;\n }\n\n public static NULL = new Language(null);\n\n static forValue(value: string | null): Language {\n if (value === null) {\n return Language.NULL;\n } else if (value === '') {\n return Language.NULL;\n } else {\n return new Language(value);\n }\n }\n}\n","export const NumberTypeValues = {\n DECIMAL: 'xsd:decimal',\n INT: 'xsd:int',\n LONG: 'xsd:long',\n BYTE: 'xsd:byte',\n SHORT: 'xsd:short',\n FLOAT: 'xsd:float',\n DOUBLE: 'xsd:double',\n} as const;\n\nexport type NumberTypeValue = (typeof NumberTypeValues)[keyof typeof NumberTypeValues] | null;\n\nexport class NumberType {\n private readonly value: NumberTypeValue | null;\n\n private constructor(value: NumberTypeValue) {\n this.value = value;\n }\n\n public getValue(): NumberTypeValue {\n return this.value;\n }\n\n public static DECIMAL = new NumberType(NumberTypeValues.DECIMAL);\n public static INT = new NumberType(NumberTypeValues.INT);\n public static LONG = new NumberType(NumberTypeValues.LONG);\n public static BYTE = new NumberType(NumberTypeValues.BYTE);\n public static SHORT = new NumberType(NumberTypeValues.SHORT);\n public static FLOAT = new NumberType(NumberTypeValues.FLOAT);\n public static DOUBLE = new NumberType(NumberTypeValues.DOUBLE);\n public static NULL = new NumberType(null);\n\n public static values(): NumberType[] {\n return [NumberType.DECIMAL, NumberType.INT, NumberType.LONG, NumberType.BYTE, NumberType.SHORT, NumberType.FLOAT, NumberType.DOUBLE];\n }\n\n public static forValue(value: string | null): NumberType {\n for (const numberType of NumberType.values()) {\n if (numberType.getValue() === value) {\n return numberType;\n }\n }\n return this.NULL;\n }\n}\n","import { SemVer } from './SemVer';\n\nexport const PavVersionValues = {\n DEFAULT: '0.0.1',\n} as const;\n\nexport class PavVersion extends SemVer {\n public static DEFAULT = new PavVersion(PavVersionValues.DEFAULT);\n public static NULL = new PavVersion(null);\n\n protected getDefaultValue(): string {\n return PavVersionValues.DEFAULT;\n }\n\n public static values(): PavVersion[] {\n return [PavVersion.DEFAULT, PavVersion.NULL];\n }\n\n public static forValue(value: string | null): PavVersion {\n for (const version of PavVersion.values()) {\n if (version.getValue() === value) {\n return version;\n }\n }\n return new PavVersion(value);\n }\n}\n","import { CedarModel } from '../../constants/CedarModel';\n\n/**\n * The namespace CEDAR identifies one of a container's properties by.\n *\n * A model fact rather than a key in any serialization, and the whole of what a consumer needs: the\n * IRIs themselves are the repository's to assign, so nothing here derives one. It used to, from the\n * property's name, and that is exactly what a name cannot carry — an author renames a child and the\n * identity underneath it would move.\n *\n * It is here at all because the namespace was reachable only as `CedarModel.propertyIriPrefix`, a\n * bare string in a class otherwise full of the *names* a template's JSON uses for its parts: `_ui`,\n * `$schema`, `_valueConstraints`. A consumer that wanted to recognise a property IRI had to reach\n * into that table, which is how CEE came to mint one a different way from the library.\n */\nexport class PropertyIri {\n /** The namespace every property IRI CEDAR assigns belongs to. */\n static get namespace(): string {\n return CedarModel.propertyIriPrefix;\n }\n}\n","import { SemVer } from './SemVer';\n\nexport const SchemaVersionValues = {\n CURRENT: '1.6.0',\n} as const;\n\nexport class SchemaVersion extends SemVer {\n public static CURRENT = new SchemaVersion(SchemaVersionValues.CURRENT);\n public static NULL = new SchemaVersion(null);\n\n protected getDefaultValue(): string {\n return SchemaVersionValues.CURRENT;\n }\n\n public static values(): SchemaVersion[] {\n return [SchemaVersion.CURRENT];\n }\n\n public static forValue(value: string | null): SchemaVersion {\n for (const version of SchemaVersion.values()) {\n if (version.getValue() === value) {\n return version;\n }\n }\n return new SchemaVersion(value);\n }\n}\n","export abstract class SemVer {\n protected readonly value: string | null;\n\n protected constructor(value: string | null) {\n this.value = this.validateVersion(value);\n }\n\n protected abstract getDefaultValue(): string;\n\n public getValue(): string | null {\n return this.value;\n }\n\n private validateVersion(value: string | null): string | null {\n if (value === null) {\n return value;\n }\n\n const versionPattern = /^\\d+\\.\\d+\\.\\d+$/;\n if (versionPattern.test(value)) {\n return value;\n } else {\n return this.getDefaultValue();\n }\n }\n}\n","export const TemporalGranularityValues = {\n YEAR: 'year',\n MONTH: 'month',\n DAY: 'day',\n HOUR: 'hour',\n MINUTE: 'minute',\n SECOND: 'second',\n DECIMAL_SECOND: 'decimalSecond',\n} as const;\n\nexport type TemporalGranularityValue = (typeof TemporalGranularityValues)[keyof typeof TemporalGranularityValues] | null;\n\nexport class TemporalGranularity {\n private readonly value: TemporalGranularityValue | null;\n\n private constructor(value: TemporalGranularityValue) {\n this.value = value;\n }\n\n public getValue(): TemporalGranularityValue {\n return this.value;\n }\n\n public static YEAR = new TemporalGranularity(TemporalGranularityValues.YEAR);\n public static MONTH = new TemporalGranularity(TemporalGranularityValues.MONTH);\n public static DAY = new TemporalGranularity(TemporalGranularityValues.DAY);\n public static HOUR = new TemporalGranularity(TemporalGranularityValues.HOUR);\n public static MINUTE = new TemporalGranularity(TemporalGranularityValues.MINUTE);\n public static SECOND = new TemporalGranularity(TemporalGranularityValues.SECOND);\n public static DECIMAL_SECOND = new TemporalGranularity(TemporalGranularityValues.DECIMAL_SECOND);\n public static NULL = new TemporalGranularity(null);\n\n public static values(): TemporalGranularity[] {\n return [\n TemporalGranularity.YEAR,\n TemporalGranularity.MONTH,\n TemporalGranularity.DAY,\n TemporalGranularity.HOUR,\n TemporalGranularity.MINUTE,\n TemporalGranularity.SECOND,\n TemporalGranularity.DECIMAL_SECOND,\n ];\n }\n\n public static valuesWithTimes(): TemporalGranularity[] {\n return [TemporalGranularity.HOUR, TemporalGranularity.MINUTE, TemporalGranularity.SECOND, TemporalGranularity.DECIMAL_SECOND];\n }\n\n public static forValue(value: string | null): TemporalGranularity {\n for (const temporalType of TemporalGranularity.values()) {\n if (temporalType.getValue() === value) {\n return temporalType;\n }\n }\n return this.NULL;\n }\n\n static hasTime(temporalGranularity: TemporalGranularity) {\n return this.valuesWithTimes().includes(temporalGranularity);\n }\n}\n","export const TemporalTypeValues = {\n DATE: 'xsd:date',\n TIME: 'xsd:time',\n DATETIME: 'xsd:dateTime',\n} as const;\n\nexport type TemporalTypeValue = (typeof TemporalTypeValues)[keyof typeof TemporalTypeValues] | null;\n\nexport class TemporalType {\n private readonly value: TemporalTypeValue | null;\n\n private constructor(value: TemporalTypeValue) {\n this.value = value;\n }\n\n public getValue(): TemporalTypeValue {\n return this.value;\n }\n\n public static DATE = new TemporalType(TemporalTypeValues.DATE);\n public static TIME = new TemporalType(TemporalTypeValues.TIME);\n public static DATETIME = new TemporalType(TemporalTypeValues.DATETIME);\n public static NULL = new TemporalType(null);\n\n public static values(): TemporalType[] {\n return [TemporalType.DATE, TemporalType.TIME, TemporalType.DATETIME];\n }\n\n public static forValue(value: string | null): TemporalType {\n for (const temporalType of TemporalType.values()) {\n if (temporalType.getValue() === value) {\n return temporalType;\n }\n }\n return this.NULL;\n }\n}\n","export const TimeFormatValues = {\n H24: '24h',\n H12: '12h',\n} as const;\n\nexport type TimeFormatValue = (typeof TimeFormatValues)[keyof typeof TimeFormatValues] | null;\n\nexport class TimeFormat {\n private readonly value: TimeFormatValue | null;\n\n private constructor(value: TimeFormatValue) {\n this.value = value;\n }\n\n public getValue(): TimeFormatValue {\n return this.value;\n }\n\n public static H24 = new TimeFormat(TimeFormatValues.H24);\n public static H12 = new TimeFormat(TimeFormatValues.H12);\n public static NULL = new TimeFormat(null);\n\n public static values(): TimeFormat[] {\n return [TimeFormat.H24, TimeFormat.H12];\n }\n\n public static forValue(value: string | null): TimeFormat {\n for (const temporalType of TimeFormat.values()) {\n if (temporalType.getValue() === value) {\n return temporalType;\n }\n }\n return this.NULL;\n }\n}\n","export const UiInputTypeValues = {\n TEXTFIELD: 'textfield',\n TEXTAREA: 'textarea',\n LINK: 'link',\n EXT_ROR: 'ext-ror',\n EXT_ORCID: 'ext-orcid',\n EXT_PFAS: 'ext-pfas',\n EXT_PUBMED: 'ext-pubmed',\n EXT_RRID: 'ext-rrid',\n EXT_NIH_GRANT_ID: 'ext-nih-grant-id',\n EXT_DOI: 'ext-doi',\n TEMPORAL: 'temporal',\n EMAIL: 'email',\n NUMERIC: 'numeric',\n PHONE_NUMBER: 'phone-number',\n LIST: 'list',\n CHECKBOX: 'checkbox',\n RADIO: 'radio',\n ATTRIBUTE_VALUE: 'attribute-value',\n\n PAGE_BREAK: 'page-break',\n SECTION_BREAK: 'section-break',\n IMAGE: 'image',\n RICH_TEXT: 'richtext',\n YOUTUBE: 'youtube',\n} as const;\n\nexport type UiInputTypeValue = (typeof UiInputTypeValues)[keyof typeof UiInputTypeValues] | null;\n\nexport class UiInputType {\n private readonly value: UiInputTypeValue | null;\n\n private constructor(value: UiInputTypeValue) {\n this.value = value;\n }\n\n public getValue(): UiInputTypeValue {\n return this.value;\n }\n\n public static TEXTFIELD = new UiInputType(UiInputTypeValues.TEXTFIELD);\n public static TEXTAREA = new UiInputType(UiInputTypeValues.TEXTAREA);\n public static LINK = new UiInputType(UiInputTypeValues.LINK);\n public static EXT_ROR = new UiInputType(UiInputTypeValues.EXT_ROR);\n public static EXT_ORCID = new UiInputType(UiInputTypeValues.EXT_ORCID);\n public static EXT_PFAS = new UiInputType(UiInputTypeValues.EXT_PFAS);\n public static EXT_PUBMED = new UiInputType(UiInputTypeValues.EXT_PUBMED);\n public static EXT_RRID = new UiInputType(UiInputTypeValues.EXT_RRID);\n public static EXT_NIH_GRANT_ID = new UiInputType(UiInputTypeValues.EXT_NIH_GRANT_ID);\n public static EXT_DOI = new UiInputType(UiInputTypeValues.EXT_DOI);\n public static TEMPORAL = new UiInputType(UiInputTypeValues.TEMPORAL);\n public static EMAIL = new UiInputType(UiInputTypeValues.EMAIL);\n public static NUMERIC = new UiInputType(UiInputTypeValues.NUMERIC);\n public static PHONE_NUMBER = new UiInputType(UiInputTypeValues.PHONE_NUMBER);\n public static LIST = new UiInputType(UiInputTypeValues.LIST);\n public static CHECKBOX = new UiInputType(UiInputTypeValues.CHECKBOX);\n public static RADIO = new UiInputType(UiInputTypeValues.RADIO);\n public static ATTRIBUTE_VALUE = new UiInputType(UiInputTypeValues.ATTRIBUTE_VALUE);\n\n public static PAGE_BREAK = new UiInputType(UiInputTypeValues.PAGE_BREAK);\n public static SECTION_BREAK = new UiInputType(UiInputTypeValues.SECTION_BREAK);\n public static IMAGE = new UiInputType(UiInputTypeValues.IMAGE);\n public static RICH_TEXT = new UiInputType(UiInputTypeValues.RICH_TEXT);\n public static YOUTUBE = new UiInputType(UiInputTypeValues.YOUTUBE);\n\n public static NULL = new UiInputType(null);\n\n public static values(): UiInputType[] {\n return [\n UiInputType.TEXTFIELD,\n UiInputType.TEXTAREA,\n UiInputType.LINK,\n UiInputType.EXT_ROR,\n UiInputType.EXT_ORCID,\n UiInputType.EXT_PFAS,\n UiInputType.EXT_PUBMED,\n UiInputType.EXT_RRID,\n UiInputType.EXT_NIH_GRANT_ID,\n UiInputType.EXT_DOI,\n UiInputType.TEMPORAL,\n UiInputType.EMAIL,\n UiInputType.NUMERIC,\n UiInputType.PHONE_NUMBER,\n UiInputType.LIST,\n UiInputType.CHECKBOX,\n UiInputType.RADIO,\n UiInputType.ATTRIBUTE_VALUE,\n\n UiInputType.PAGE_BREAK,\n UiInputType.SECTION_BREAK,\n UiInputType.IMAGE,\n UiInputType.RICH_TEXT,\n UiInputType.YOUTUBE,\n\n UiInputType.NULL,\n ];\n }\n\n public static forValue(value: string | null): UiInputType {\n for (const temporalType of UiInputType.values()) {\n if (temporalType.getValue() === value) {\n return temporalType;\n }\n }\n return this.NULL;\n }\n}\n","import { CedarFieldCategory } from '../cedar-types/CedarFieldCategory';\n\nexport const YamlArtifactTypeValues = {\n TEMPLATE: 'template',\n\n ELEMENT: 'element',\n\n TEXTFIELD: 'text-field',\n CONTROLLED_TERM: 'controlled-term-field',\n TEXTAREA: 'text-area-field',\n LINK: 'link-field',\n EXT_ROR: 'ext-ror-field',\n EXT_ORCID: 'ext-orcid-field',\n EXT_PFAS: 'ext-pfas-field',\n EXT_PUBMED: 'ext-pubmed-field',\n EXT_RRID: 'ext-rrid-field',\n EXT_NIH_GRANT_ID: 'ext-nih-grant-id-field',\n EXT_DOI: 'ext-doi-field',\n TEMPORAL: 'temporal-field',\n EMAIL: 'email-field',\n NUMERIC: 'numeric-field',\n PHONE_NUMBER: 'phone-number-field',\n SINGLE_SELECT_LIST: 'single-select-list-field',\n MULTI_SELECT_LIST: 'multi-select-list-field',\n CHECKBOX: 'checkbox-field',\n RADIO: 'radio-field',\n ATTRIBUTE_VALUE: 'attribute-value-field',\n\n PAGE_BREAK: 'static-page-break',\n SECTION_BREAK: 'static-section-break',\n IMAGE: 'static-image',\n RICH_TEXT: 'static-rich-text',\n YOUTUBE: 'static-youtube-video',\n\n TEMPLATE_INSTANCE: 'instance',\n} as const;\n\nexport type YamlArtifactTypeValue = (typeof YamlArtifactTypeValues)[keyof typeof YamlArtifactTypeValues] | null;\n\nexport class YamlArtifactType {\n private readonly value: YamlArtifactTypeValue | null;\n private readonly category: CedarFieldCategory;\n\n private constructor(value: YamlArtifactTypeValue, category: CedarFieldCategory) {\n this.value = value;\n this.category = category;\n }\n\n public getValue(): YamlArtifactTypeValue {\n return this.value;\n }\n\n public static TEMPLATE = new YamlArtifactType(YamlArtifactTypeValues.TEMPLATE, CedarFieldCategory.NONE);\n public static ELEMENT = new YamlArtifactType(YamlArtifactTypeValues.ELEMENT, CedarFieldCategory.NONE);\n\n public static TEXTFIELD = new YamlArtifactType(YamlArtifactTypeValues.TEXTFIELD, CedarFieldCategory.DYNAMIC);\n public static CONTROLLED_TERM = new YamlArtifactType(YamlArtifactTypeValues.CONTROLLED_TERM, CedarFieldCategory.DYNAMIC);\n public static TEXTAREA = new YamlArtifactType(YamlArtifactTypeValues.TEXTAREA, CedarFieldCategory.DYNAMIC);\n public static LINK = new YamlArtifactType(YamlArtifactTypeValues.LINK, CedarFieldCategory.DYNAMIC);\n public static EXT_ROR = new YamlArtifactType(YamlArtifactTypeValues.EXT_ROR, CedarFieldCategory.DYNAMIC);\n public static EXT_ORCID = new YamlArtifactType(YamlArtifactTypeValues.EXT_ORCID, CedarFieldCategory.DYNAMIC);\n public static EXT_PFAS = new YamlArtifactType(YamlArtifactTypeValues.EXT_PFAS, CedarFieldCategory.DYNAMIC);\n public static EXT_PUBMED = new YamlArtifactType(YamlArtifactTypeValues.EXT_PUBMED, CedarFieldCategory.DYNAMIC);\n public static EXT_RRID = new YamlArtifactType(YamlArtifactTypeValues.EXT_RRID, CedarFieldCategory.DYNAMIC);\n public static EXT_NIH_GRANT_ID = new YamlArtifactType(YamlArtifactTypeValues.EXT_NIH_GRANT_ID, CedarFieldCategory.DYNAMIC);\n public static EXT_DOI = new YamlArtifactType(YamlArtifactTypeValues.EXT_DOI, CedarFieldCategory.DYNAMIC);\n public static TEMPORAL = new YamlArtifactType(YamlArtifactTypeValues.TEMPORAL, CedarFieldCategory.DYNAMIC);\n public static EMAIL = new YamlArtifactType(YamlArtifactTypeValues.EMAIL, CedarFieldCategory.DYNAMIC);\n public static NUMERIC = new YamlArtifactType(YamlArtifactTypeValues.NUMERIC, CedarFieldCategory.DYNAMIC);\n public static PHONE_NUMBER = new YamlArtifactType(YamlArtifactTypeValues.PHONE_NUMBER, CedarFieldCategory.DYNAMIC);\n public static SINGLE_SELECT_LIST = new YamlArtifactType(YamlArtifactTypeValues.SINGLE_SELECT_LIST, CedarFieldCategory.DYNAMIC);\n public static MULTI_SELECT_LIST = new YamlArtifactType(YamlArtifactTypeValues.MULTI_SELECT_LIST, CedarFieldCategory.DYNAMIC);\n public static CHECKBOX = new YamlArtifactType(YamlArtifactTypeValues.CHECKBOX, CedarFieldCategory.DYNAMIC);\n public static RADIO = new YamlArtifactType(YamlArtifactTypeValues.RADIO, CedarFieldCategory.DYNAMIC);\n public static ATTRIBUTE_VALUE = new YamlArtifactType(YamlArtifactTypeValues.ATTRIBUTE_VALUE, CedarFieldCategory.DYNAMIC);\n\n public static PAGE_BREAK = new YamlArtifactType(YamlArtifactTypeValues.PAGE_BREAK, CedarFieldCategory.STATIC);\n public static SECTION_BREAK = new YamlArtifactType(YamlArtifactTypeValues.SECTION_BREAK, CedarFieldCategory.STATIC);\n public static IMAGE = new YamlArtifactType(YamlArtifactTypeValues.IMAGE, CedarFieldCategory.STATIC);\n public static RICH_TEXT = new YamlArtifactType(YamlArtifactTypeValues.RICH_TEXT, CedarFieldCategory.STATIC);\n public static YOUTUBE = new YamlArtifactType(YamlArtifactTypeValues.YOUTUBE, CedarFieldCategory.STATIC);\n\n public static TEMPLATE_INSTANCE = new YamlArtifactType(YamlArtifactTypeValues.TEMPLATE_INSTANCE, CedarFieldCategory.NONE);\n\n public static NULL = new YamlArtifactType(null, CedarFieldCategory.NULL);\n\n public static values(): YamlArtifactType[] {\n return [\n YamlArtifactType.TEMPLATE,\n YamlArtifactType.ELEMENT,\n\n YamlArtifactType.TEXTFIELD,\n YamlArtifactType.CONTROLLED_TERM,\n YamlArtifactType.TEXTAREA,\n YamlArtifactType.LINK,\n YamlArtifactType.EXT_ROR,\n YamlArtifactType.EXT_ORCID,\n YamlArtifactType.EXT_PFAS,\n YamlArtifactType.EXT_PUBMED,\n YamlArtifactType.EXT_RRID,\n YamlArtifactType.EXT_NIH_GRANT_ID,\n YamlArtifactType.EXT_DOI,\n YamlArtifactType.TEMPORAL,\n YamlArtifactType.EMAIL,\n YamlArtifactType.NUMERIC,\n YamlArtifactType.PHONE_NUMBER,\n YamlArtifactType.SINGLE_SELECT_LIST,\n YamlArtifactType.MULTI_SELECT_LIST,\n YamlArtifactType.CHECKBOX,\n YamlArtifactType.RADIO,\n YamlArtifactType.ATTRIBUTE_VALUE,\n\n YamlArtifactType.PAGE_BREAK,\n YamlArtifactType.SECTION_BREAK,\n YamlArtifactType.IMAGE,\n YamlArtifactType.RICH_TEXT,\n YamlArtifactType.YOUTUBE,\n\n YamlArtifactType.TEMPLATE_INSTANCE,\n\n YamlArtifactType.NULL,\n ];\n }\n\n public static forValue(value: string | null): YamlArtifactType {\n for (const temporalType of YamlArtifactType.values()) {\n if (temporalType.getValue() === value) {\n return temporalType;\n }\n }\n return this.NULL;\n }\n\n isTemplate(): boolean {\n return this.value === YamlArtifactTypeValues.TEMPLATE;\n }\n\n isElement(): boolean {\n return this.value === YamlArtifactTypeValues.ELEMENT;\n }\n\n public isField() {\n return this.isDynamicField() || this.isStaticField();\n }\n\n isStaticField() {\n return this.category === CedarFieldCategory.STATIC;\n }\n\n isDynamicField() {\n return this.category === CedarFieldCategory.DYNAMIC;\n }\n\n isTemplateInstance() {\n return this.value === YamlArtifactTypeValues.TEMPLATE_INSTANCE;\n }\n}\n","import { Primitive } from '../../types/basic-types/Primitive';\nimport { JsonPath } from '../path/JsonPath';\nimport { ComparisonErrorType } from './ComparisonErrorType';\nimport { YamlComparisonErrorType } from './YamlComparisonErrorType';\n\nexport class ComparisonError {\n public readonly errorLocation: string;\n public readonly errorType: ComparisonErrorType | YamlComparisonErrorType;\n public readonly errorPath: JsonPath;\n public readonly expectedValue?: Primitive;\n public readonly encounteredValue?: Primitive;\n public stackTopLines?: string[];\n\n constructor(\n errorLocation: string,\n errorType: ComparisonErrorType | YamlComparisonErrorType,\n errorPath: JsonPath,\n expectedValue?: Primitive,\n encounteredValue?: Primitive,\n ) {\n this.errorLocation = errorLocation;\n this.errorType = errorType;\n this.errorPath = errorPath;\n this.expectedValue = expectedValue;\n this.encounteredValue = encounteredValue;\n }\n}\n","export const ComparisonErrorTypeValues = {\n MISSING_KEY_IN_REAL_OBJECT: 'missingKeyInRealObject',\n UNEXPECTED_KEY_IN_REAL_OBJECT: 'unexpectedKeyInRealObject',\n VALUE_MISMATCH: 'valueMismatch',\n MISSING_INDEX_IN_REAL_OBJECT: 'missingIndexInRealObject',\n UNEXPECTED_INDEX_IN_REAL_OBJECT: 'unexpectedIndexInRealObject',\n MISSING_VALUE_IN_REAL_OBJECT: 'missingValueInRealObject',\n UNEXPECTED_VALUE_IN_REAL_OBJECT: 'unexpectedValueInRealObject',\n} as const;\n\nexport type ComparisonErrorTypeValue = (typeof ComparisonErrorTypeValues)[keyof typeof ComparisonErrorTypeValues] | null;\n\nexport class ComparisonErrorType {\n private readonly value: ComparisonErrorTypeValue | null;\n\n private constructor(value: ComparisonErrorTypeValue) {\n this.value = value;\n }\n\n public getValue(): ComparisonErrorTypeValue {\n return this.value;\n }\n\n public static MISSING_KEY_IN_REAL_OBJECT = new ComparisonErrorType(ComparisonErrorTypeValues.MISSING_KEY_IN_REAL_OBJECT);\n public static UNEXPECTED_KEY_IN_REAL_OBJECT = new ComparisonErrorType(ComparisonErrorTypeValues.UNEXPECTED_KEY_IN_REAL_OBJECT);\n public static VALUE_MISMATCH = new ComparisonErrorType(ComparisonErrorTypeValues.VALUE_MISMATCH);\n public static MISSING_INDEX_IN_REAL_OBJECT = new ComparisonErrorType(ComparisonErrorTypeValues.MISSING_INDEX_IN_REAL_OBJECT);\n public static UNEXPECTED_INDEX_IN_REAL_OBJECT = new ComparisonErrorType(ComparisonErrorTypeValues.UNEXPECTED_INDEX_IN_REAL_OBJECT);\n public static MISSING_VALUE_IN_REAL_OBJECT = new ComparisonErrorType(ComparisonErrorTypeValues.MISSING_VALUE_IN_REAL_OBJECT);\n public static UNEXPECTED_VALUE_IN_REAL_OBJECT = new ComparisonErrorType(ComparisonErrorTypeValues.UNEXPECTED_VALUE_IN_REAL_OBJECT);\n public static NULL = new ComparisonErrorType(null);\n\n public static values(): ComparisonErrorType[] {\n return [\n ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT,\n ComparisonErrorType.UNEXPECTED_KEY_IN_REAL_OBJECT,\n ComparisonErrorType.VALUE_MISMATCH,\n ComparisonErrorType.MISSING_INDEX_IN_REAL_OBJECT,\n ComparisonErrorType.UNEXPECTED_INDEX_IN_REAL_OBJECT,\n ComparisonErrorType.MISSING_VALUE_IN_REAL_OBJECT,\n ComparisonErrorType.UNEXPECTED_VALUE_IN_REAL_OBJECT,\n ];\n }\n\n public static forValue(value: string | null): ComparisonErrorType {\n for (const status of ComparisonErrorType.values()) {\n if (status.getValue() === value) {\n return status;\n }\n }\n return this.NULL;\n }\n\n // noinspection JSUnusedGlobalSymbols\n toJSON() {\n return this.value;\n }\n}\n","import { ComparisonError } from './ComparisonError';\n\nexport class ComparisonResult {\n private comparisonErrors: Array<ComparisonError> = [];\n private comparisonWarnings: Array<ComparisonError> = [];\n\n public addComparisonError(error: ComparisonError) {\n this.comparisonErrors.push(error);\n }\n\n public getComparisonErrors(): Array<ComparisonError> {\n return this.comparisonErrors;\n }\n\n getComparisonErrorCount() {\n return this.comparisonErrors.length;\n }\n\n public addComparisonWarning(warning: ComparisonError) {\n this.comparisonWarnings.push(warning);\n }\n\n public getComparisonWarnings(): Array<ComparisonError> {\n return this.comparisonWarnings;\n }\n\n getComparisonWarningCount() {\n return this.comparisonWarnings.length;\n }\n\n public areEqual(): boolean {\n return this.comparisonErrors.length === 0 && this.comparisonWarnings.length === 0;\n }\n\n merge(otherResult: ComparisonResult) {\n this.comparisonErrors.push(...otherResult.comparisonErrors);\n this.comparisonWarnings.push(...otherResult.comparisonWarnings);\n }\n}\n","import { ComparisonError } from './ComparisonError';\n\nexport class JsonArtifactParsingResult {\n private blueprintComparisonErrors: Array<ComparisonError> = [];\n private blueprintComparisonWarnings: Array<ComparisonError> = [];\n\n public addBlueprintComparisonError(error: ComparisonError) {\n this.blueprintComparisonErrors.push(error);\n }\n\n public getBlueprintComparisonErrors(): Array<ComparisonError> {\n return this.blueprintComparisonErrors;\n }\n\n getBlueprintComparisonErrorCount() {\n return this.blueprintComparisonErrors.length;\n }\n\n public addBlueprintComparisonWarning(warning: ComparisonError) {\n this.blueprintComparisonWarnings.push(warning);\n }\n\n public getBlueprintComparisonWarnings(): Array<ComparisonError> {\n return this.blueprintComparisonWarnings;\n }\n\n getBlueprintComparisonWarningCount() {\n return this.blueprintComparisonWarnings.length;\n }\n\n /**\n * Nothing went wrong that stops a caller using what was read.\n *\n * Errors only. A document that parsed with warnings produced a usable\n * artifact — the warnings say it was written in a form the blueprint no longer\n * describes, not that reading it failed.\n */\n public wasSuccessful(): boolean {\n return this.blueprintComparisonErrors.length === 0;\n }\n\n /**\n * The document matches the blueprint exactly.\n *\n * Errors *and* warnings, which is what separates this from `wasSuccessful`.\n * The two were identical implementations until warnings carried real signal;\n * once a reader started recording production variations as warnings rather\n * than rejecting them, \"it read cleanly\" and \"it is in the canonical form\"\n * stopped being the same claim, and the stricter one had nowhere to live.\n *\n * A template CEDAR served in 2018 is the case that makes the difference\n * concrete: it reads, so `wasSuccessful` is true, but it does not adhere, so\n * this is false. Which one a caller wants depends on whether it is about to\n * consume the artifact or about to judge it.\n */\n public adheresToBlueprint(): boolean {\n return this.blueprintComparisonErrors.length === 0 && this.blueprintComparisonWarnings.length === 0;\n }\n\n merge(otherResult: JsonArtifactParsingResult) {\n this.blueprintComparisonErrors.push(...otherResult.blueprintComparisonErrors);\n this.blueprintComparisonWarnings.push(...otherResult.blueprintComparisonWarnings);\n }\n}\n","import { JsonArtifactParsingResult } from './JsonArtifactParsingResult';\nimport { ComparisonError } from './ComparisonError';\nimport { Primitive } from '../../types/basic-types/Primitive';\nimport { JsonPath } from '../path/JsonPath';\nimport { ComparisonErrorType } from './ComparisonErrorType';\nimport { TemplateProperty } from '../../constants/TemplateProperty';\nimport { JsonSchema } from '../../constants/JsonSchema';\nimport { CedarModel } from '../../constants/CedarModel';\nimport { ReaderWriterBehavior } from '../../../../behavior/ReaderWriterBehavior';\nimport { ComparableObject } from './ComparableObject';\n\nexport class JsonObjectComparator {\n static compareBothWays(\n comparisonResult: JsonArtifactParsingResult,\n blueprintObject: ComparableObject,\n realObject: ComparableObject,\n path: JsonPath,\n behavior: ReaderWriterBehavior,\n acceptDiffKeys: string[] = [],\n ): void {\n function recurse(currentPath: JsonPath, obj1: ComparableObject, obj2: ComparableObject) {\n const isNonOrderSensitive = currentPath.getLastComponent() == JsonSchema.required;\n\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n // Handle arrays (lists) comparison\n if (isNonOrderSensitive) {\n // Non-order-sensitive comparison\n const obj1Elements = new Set(obj1);\n const obj2Elements = new Set(obj2);\n\n obj1.forEach((element, index) => {\n const newPath = currentPath.add(index);\n if (!obj2Elements.has(element)) {\n comparisonResult.addBlueprintComparisonError(\n new ComparisonError('oca01', ComparisonErrorType.MISSING_VALUE_IN_REAL_OBJECT, newPath, element),\n );\n }\n });\n\n obj2.forEach((element, index) => {\n const newPath = currentPath.add(index);\n if (!obj1Elements.has(element)) {\n comparisonResult.addBlueprintComparisonError(\n new ComparisonError('oca02', ComparisonErrorType.UNEXPECTED_VALUE_IN_REAL_OBJECT, newPath, undefined, element),\n );\n }\n });\n } else {\n // Original order-sensitive comparison\n const maxLength = Math.max(obj1.length, obj2.length);\n for (let index = 0; index < maxLength; index++) {\n const newPath = currentPath.add(index);\n if (!(index in obj1)) {\n comparisonResult.addBlueprintComparisonError(\n new ComparisonError('ocl01', ComparisonErrorType.UNEXPECTED_INDEX_IN_REAL_OBJECT, newPath, undefined, obj2[index]),\n );\n } else if (!(index in obj2)) {\n comparisonResult.addBlueprintComparisonError(\n new ComparisonError('ocl02', ComparisonErrorType.MISSING_INDEX_IN_REAL_OBJECT, newPath, obj1[index]),\n );\n } else if (typeof obj1[index] === 'object' && obj1[index] !== null && typeof obj2[index] === 'object' && obj2[index] !== null) {\n recurse(newPath, obj1[index] as ComparableObject, obj2[index] as ComparableObject);\n } else if (obj1[index] !== obj2[index]) {\n comparisonResult.addBlueprintComparisonError(\n new ComparisonError(\n 'ocl03',\n ComparisonErrorType.VALUE_MISMATCH,\n newPath,\n obj1[index] as Primitive,\n obj2[index] as Primitive,\n ),\n );\n }\n }\n }\n } else {\n // Handle objects (maps) comparison\n const allKeys = new Set([...Object.keys(obj1), ...Object.keys(obj2)]);\n allKeys.forEach((key) => {\n const newPath = currentPath.add(key);\n if (!(key in obj1)) {\n if (\n behavior.useWarningForKnownIssues() &&\n (newPath.endsIn(JsonSchema.properties, JsonSchema.atLanguage) || JsonObjectComparator.isKnownProductionVariation(newPath))\n ) {\n comparisonResult.addBlueprintComparisonWarning(\n new ComparisonError('wco01', ComparisonErrorType.UNEXPECTED_KEY_IN_REAL_OBJECT, newPath),\n );\n } else {\n if (!acceptDiffKeys.includes(key)) {\n comparisonResult.addBlueprintComparisonError(\n new ComparisonError('oco01', ComparisonErrorType.UNEXPECTED_KEY_IN_REAL_OBJECT, newPath),\n );\n }\n }\n } else if (!(key in obj2)) {\n if (\n behavior.useWarningForKnownIssues() &&\n (newPath.endsIn(CedarModel.literals, JsonPath.ANY, CedarModel.selectedByDefault) ||\n newPath.endsIn(CedarModel.ui, CedarModel.pages) ||\n JsonObjectComparator.isKnownProductionVariation(newPath))\n ) {\n comparisonResult.addBlueprintComparisonWarning(\n new ComparisonError('wco02', ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, newPath),\n );\n } else {\n comparisonResult.addBlueprintComparisonError(\n new ComparisonError('oco02', ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, newPath),\n );\n }\n } else if (typeof obj1[key] === 'object' && obj1[key] !== null && typeof obj2[key] === 'object' && obj2[key] !== null) {\n recurse(newPath, obj1[key] as ComparableObject, obj2[key] as ComparableObject);\n } else if (obj1[key] !== obj2[key]) {\n const error = new ComparisonError(\n 'oco03',\n ComparisonErrorType.VALUE_MISMATCH,\n newPath,\n obj1[key] as Primitive,\n obj2[key] as Primitive,\n );\n if (behavior.useWarningForKnownIssues() && JsonObjectComparator.isKnownProductionVariation(newPath)) {\n comparisonResult.addBlueprintComparisonWarning(error);\n } else {\n comparisonResult.addBlueprintComparisonError(error);\n }\n }\n });\n }\n }\n\n recurse(path, blueprintObject, realObject);\n }\n\n /**\n * Differences that real CEDAR templates exhibit, and which the library must\n * therefore read rather than reject.\n *\n * The blueprint describes what the library writes today. The corpus contains\n * templates CEDAR served between 2018 and 2024, and 23 of the 123 differ from\n * that blueprint — not because they are broken, but because the canonical form\n * moved while they stayed as they were emitted. A reader that rejects them\n * cannot open documents that demonstrably exist, so each shape below is\n * downgraded to a warning under a behavior that tolerates known issues.\n * `STRICT` still treats every one as an error, which is what makes it strict.\n *\n * The observation is not discarded: it is recorded as a warning and remains\n * retrievable through `getBlueprintComparisonWarnings`.\n *\n * - **`@context` additionalProperties** — the blueprint pins `false`; older\n * templates allow further URI-valued entries.\n * - **`@context` prefixes and required list** — `bibo` and others were added\n * to the canonical context over time, so earlier documents lack them.\n * - **an attribute-value field's `@context` enum** — omitted by templates\n * predating the current attribute-value serialization.\n * - **`_ui.propertyDescriptions`** — a later addition, absent throughout\n * documents written before it existed.\n */\n public static isKnownProductionVariation(path: JsonPath): boolean {\n return (\n path.endsIn(JsonSchema.atContext, TemplateProperty.additionalProperties) ||\n path.endsIn(JsonSchema.atContext, JsonSchema.properties, JsonPath.ANY, CedarModel.enum, JsonPath.ANY) ||\n path.endsIn(JsonSchema.atContext, JsonSchema.required, JsonPath.ANY) ||\n path.endsIn(JsonSchema.atContext, JsonPath.ANY) ||\n path.endsIn(CedarModel.ui, CedarModel.propertyDescriptions, JsonPath.ANY) ||\n path.endsIn(CedarModel.ui, CedarModel.propertyDescriptions) ||\n path.endsIn(CedarModel.ui, CedarModel.propertyLabels) ||\n path.endsIn(JsonSchema.properties, JsonPath.ANY, CedarModel.enum, JsonPath.ANY) ||\n path.endsIn(JsonSchema.required)\n );\n }\n\n /**\n * A one-sided blueprint difference, at the severity the behavior asks for.\n *\n * `compareToLeft` walks the template's `properties` against the blueprint, and\n * it is where the last of the production variations surface: an older\n * `@context` schema whose `additionalProperties` permits further URI entries\n * rather than pinning `false`, and one whose `required` list predates prefixes\n * later added to the canonical context. Both belong to documents CEDAR served,\n * so a reader that rejects them is refusing real data.\n */\n private static reportToLeft(comparisonResult: JsonArtifactParsingResult, behavior: ReaderWriterBehavior, error: ComparisonError): void {\n if (behavior.useWarningForKnownIssues() && JsonObjectComparator.isKnownProductionVariation(error.errorPath)) {\n comparisonResult.addBlueprintComparisonWarning(error);\n } else {\n comparisonResult.addBlueprintComparisonError(error);\n }\n }\n\n static compareToLeft(\n comparisonResult: JsonArtifactParsingResult,\n blueprintObject: ComparableObject,\n realObject: ComparableObject,\n path: JsonPath,\n behavior: ReaderWriterBehavior,\n ): void {\n function recurse(currentPath: JsonPath, obj1: ComparableObject, obj2: ComparableObject) {\n const isNonOrderSensitive = currentPath.getLastComponent() == JsonSchema.required;\n\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n // Handle arrays (lists) comparison\n if (isNonOrderSensitive) {\n // Non-order-sensitive comparison\n const obj2Elements = new Set(obj2);\n\n obj1.forEach((element, index) => {\n const newPath = currentPath.add(index);\n if (!obj2Elements.has(element)) {\n JsonObjectComparator.reportToLeft(\n comparisonResult,\n behavior,\n new ComparisonError('ola01', ComparisonErrorType.MISSING_VALUE_IN_REAL_OBJECT, newPath, element),\n );\n }\n });\n } else {\n // Original, order-sensitive comparison\n obj1.forEach((item, index) => {\n const newPath = currentPath.add(index);\n if (!(index in obj2)) {\n JsonObjectComparator.reportToLeft(\n comparisonResult,\n behavior,\n new ComparisonError('oll01', ComparisonErrorType.MISSING_INDEX_IN_REAL_OBJECT, newPath, obj1[index]),\n );\n } else if (typeof item === 'object' && item !== null && typeof obj2[index] === 'object' && obj2[index] !== null) {\n recurse(newPath, item as ComparableObject, obj2[index] as ComparableObject);\n } else if (item !== obj2[index]) {\n JsonObjectComparator.reportToLeft(\n comparisonResult,\n behavior,\n new ComparisonError('oll02', ComparisonErrorType.VALUE_MISMATCH, newPath, item as Primitive, obj2[index] as Primitive),\n );\n }\n });\n }\n } else {\n // Handle objects (maps) comparison\n Object.keys(obj1).forEach((key) => {\n const newPath = currentPath.add(key);\n if (!(key in obj2)) {\n JsonObjectComparator.reportToLeft(\n comparisonResult,\n behavior,\n new ComparisonError('olo01', ComparisonErrorType.MISSING_KEY_IN_REAL_OBJECT, newPath),\n );\n } else if (typeof obj1[key] === 'object' && obj1[key] !== null && typeof obj2[key] === 'object' && obj2[key] !== null) {\n recurse(newPath, obj1[key] as ComparableObject, obj2[key] as ComparableObject);\n } else if (obj1[key] !== obj2[key]) {\n JsonObjectComparator.reportToLeft(\n comparisonResult,\n behavior,\n new ComparisonError('olo02', ComparisonErrorType.VALUE_MISMATCH, newPath, obj1[key] as Primitive, obj2[key] as Primitive),\n );\n }\n });\n }\n }\n\n recurse(path, blueprintObject, realObject);\n }\n\n static comparePrimitive(\n comparisonResult: JsonArtifactParsingResult,\n blue: Primitive,\n actual: Primitive,\n path: JsonPath,\n ): JsonArtifactParsingResult {\n if (blue !== actual) {\n comparisonResult.addBlueprintComparisonError(new ComparisonError('opp1', ComparisonErrorType.VALUE_MISMATCH, path, blue, actual));\n }\n return comparisonResult;\n }\n}\n","import { ComparisonError } from './ComparisonError';\n\nexport class YamlArtifactParsingResult {\n private blueprintComparisonErrors: Array<ComparisonError> = [];\n private blueprintComparisonWarnings: Array<ComparisonError> = [];\n\n public addBlueprintComparisonError(error: ComparisonError) {\n this.blueprintComparisonErrors.push(error);\n }\n\n public getBlueprintComparisonErrors(): Array<ComparisonError> {\n return this.blueprintComparisonErrors;\n }\n\n getBlueprintComparisonErrorCount() {\n return this.blueprintComparisonErrors.length;\n }\n\n public addBlueprintComparisonWarning(warning: ComparisonError) {\n this.blueprintComparisonWarnings.push(warning);\n }\n\n public getBlueprintComparisonWarnings(): Array<ComparisonError> {\n return this.blueprintComparisonWarnings;\n }\n\n getBlueprintComparisonWarningCount() {\n return this.blueprintComparisonWarnings.length;\n }\n\n /**\n * Nothing went wrong that stops a caller using what was read.\n *\n * Errors only. A document that parsed with warnings produced a usable\n * artifact — the warnings say it was written in a form the blueprint no longer\n * describes, not that reading it failed.\n */\n public wasSuccessful(): boolean {\n return this.blueprintComparisonErrors.length === 0;\n }\n\n /**\n * The document matches the blueprint exactly.\n *\n * Errors *and* warnings, which is what separates this from `wasSuccessful`.\n * See the JSON counterpart for why the two stopped meaning the same thing.\n */\n public adheresToBlueprint(): boolean {\n return this.blueprintComparisonErrors.length === 0 && this.blueprintComparisonWarnings.length === 0;\n }\n\n merge(otherResult: YamlArtifactParsingResult) {\n this.blueprintComparisonErrors.push(...otherResult.blueprintComparisonErrors);\n this.blueprintComparisonWarnings.push(...otherResult.blueprintComparisonWarnings);\n }\n}\n","export const YamlComparisonErrorTypeValues = {\n MISSING_KEY_IN_RIGHT_OBJECT: 'missingKeyInRightObject',\n UNEXPECTED_KEY_IN_RIGHT_OBJECT: 'unexpectedKeyInRightObject',\n VALUE_MISMATCH: 'valueMismatch',\n MISSING_INDEX_IN_RIGHT_OBJECT: 'missingIndexInRightObject',\n UNEXPECTED_INDEX_IN_RIGHT_OBJECT: 'unexpectedIndexInRightObject',\n MISSING_VALUE_IN_RIGHT_OBJECT: 'missingValueInRightObject',\n UNEXPECTED_VALUE_IN_RIGHT_OBJECT: 'unexpectedValueInRightObject',\n} as const;\n\nexport type YamlComparisonErrorTypeValue = (typeof YamlComparisonErrorTypeValues)[keyof typeof YamlComparisonErrorTypeValues] | null;\n\nexport class YamlComparisonErrorType {\n private readonly value: YamlComparisonErrorTypeValue | null;\n\n private constructor(value: YamlComparisonErrorTypeValue) {\n this.value = value;\n }\n\n public getValue(): YamlComparisonErrorTypeValue {\n return this.value;\n }\n\n public static MISSING_KEY_IN_RIGHT_OBJECT = new YamlComparisonErrorType(YamlComparisonErrorTypeValues.MISSING_KEY_IN_RIGHT_OBJECT);\n public static UNEXPECTED_KEY_IN_RIGHT_OBJECT = new YamlComparisonErrorType(YamlComparisonErrorTypeValues.UNEXPECTED_KEY_IN_RIGHT_OBJECT);\n public static VALUE_MISMATCH = new YamlComparisonErrorType(YamlComparisonErrorTypeValues.VALUE_MISMATCH);\n public static MISSING_INDEX_IN_RIGHT_OBJECT = new YamlComparisonErrorType(YamlComparisonErrorTypeValues.MISSING_INDEX_IN_RIGHT_OBJECT);\n public static UNEXPECTED_INDEX_IN_RIGHT_OBJECT = new YamlComparisonErrorType(\n YamlComparisonErrorTypeValues.UNEXPECTED_INDEX_IN_RIGHT_OBJECT,\n );\n public static MISSING_VALUE_IN_RIGHT_OBJECT = new YamlComparisonErrorType(YamlComparisonErrorTypeValues.MISSING_VALUE_IN_RIGHT_OBJECT);\n public static UNEXPECTED_VALUE_IN_RIGHT_OBJECT = new YamlComparisonErrorType(\n YamlComparisonErrorTypeValues.UNEXPECTED_VALUE_IN_RIGHT_OBJECT,\n );\n public static NULL = new YamlComparisonErrorType(null);\n\n public static values(): YamlComparisonErrorType[] {\n return [\n YamlComparisonErrorType.MISSING_KEY_IN_RIGHT_OBJECT,\n YamlComparisonErrorType.UNEXPECTED_KEY_IN_RIGHT_OBJECT,\n YamlComparisonErrorType.VALUE_MISMATCH,\n YamlComparisonErrorType.MISSING_INDEX_IN_RIGHT_OBJECT,\n YamlComparisonErrorType.UNEXPECTED_INDEX_IN_RIGHT_OBJECT,\n YamlComparisonErrorType.MISSING_VALUE_IN_RIGHT_OBJECT,\n YamlComparisonErrorType.UNEXPECTED_VALUE_IN_RIGHT_OBJECT,\n ];\n }\n\n public static forValue(value: string | null): YamlComparisonErrorType {\n for (const status of YamlComparisonErrorType.values()) {\n if (status.getValue() === value) {\n return status;\n }\n }\n return this.NULL;\n }\n\n // noinspection JSUnusedGlobalSymbols\n toJSON() {\n return this.value;\n }\n}\n","import { ComparisonError } from './ComparisonError';\nimport { JsonPath } from '../path/JsonPath';\nimport { YamlComparisonErrorType } from './YamlComparisonErrorType';\nimport { ComparisonResult } from './ComparisonResult';\nimport { Primitive } from '../../types/basic-types/Primitive';\nimport { ComparableObject } from './ComparableObject';\n\nexport class YamlObjectComparator {\n static compare(leftObject: ComparableObject, rightObject: ComparableObject): ComparisonResult {\n const result = new ComparisonResult();\n this.compareBothWays(result, leftObject, rightObject, new JsonPath());\n return result;\n }\n\n static compareBothWays(\n comparisonResult: ComparisonResult,\n leftObject: ComparableObject,\n rightObject: ComparableObject,\n path: JsonPath,\n ): void {\n function recurse(currentPath: JsonPath, obj1: ComparableObject, obj2: ComparableObject) {\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n // Handle arrays (lists) comparison\n\n // Original order-sensitive comparison\n const maxLength = Math.max(obj1.length, obj2.length);\n for (let index = 0; index < maxLength; index++) {\n const newPath = currentPath.add(index);\n if (!(index in obj1)) {\n comparisonResult.addComparisonError(\n new ComparisonError('ocl01', YamlComparisonErrorType.UNEXPECTED_INDEX_IN_RIGHT_OBJECT, newPath, undefined, obj2[index]),\n );\n } else if (!(index in obj2)) {\n comparisonResult.addComparisonError(\n new ComparisonError('ocl02', YamlComparisonErrorType.MISSING_INDEX_IN_RIGHT_OBJECT, newPath, obj1[index]),\n );\n } else if (typeof obj1[index] === 'object' && obj1[index] !== null && typeof obj2[index] === 'object' && obj2[index] !== null) {\n recurse(newPath, obj1[index] as ComparableObject, obj2[index] as ComparableObject);\n } else if (obj1[index] !== obj2[index]) {\n comparisonResult.addComparisonError(\n new ComparisonError(\n 'ocl03',\n YamlComparisonErrorType.VALUE_MISMATCH,\n newPath,\n obj1[index] as Primitive,\n obj2[index] as Primitive,\n ),\n );\n }\n }\n } else {\n // Handle objects (maps) comparison\n const allKeys = new Set([...Object.keys(obj1), ...Object.keys(obj2)]);\n allKeys.forEach((key) => {\n const newPath = currentPath.add(key);\n if (!(key in obj1)) {\n comparisonResult.addComparisonError(\n new ComparisonError('oco01', YamlComparisonErrorType.UNEXPECTED_KEY_IN_RIGHT_OBJECT, newPath),\n );\n } else if (!(key in obj2)) {\n comparisonResult.addComparisonError(new ComparisonError('oco02', YamlComparisonErrorType.MISSING_KEY_IN_RIGHT_OBJECT, newPath));\n } else if (typeof obj1[key] === 'object' && obj1[key] !== null && typeof obj2[key] === 'object' && obj2[key] !== null) {\n recurse(newPath, obj1[key] as ComparableObject, obj2[key] as ComparableObject);\n } else if (obj1[key] !== obj2[key]) {\n comparisonResult.addComparisonError(\n new ComparisonError('oco03', YamlComparisonErrorType.VALUE_MISMATCH, newPath, obj1[key] as Primitive, obj2[key] as Primitive),\n );\n }\n });\n }\n }\n\n recurse(path, leftObject, rightObject);\n }\n}\n","export class JsonPath {\n private readonly path: Array<string | number>;\n\n public static ANY: string = '*';\n\n constructor(...pathComponents: Array<string | number>) {\n this.path = pathComponents;\n }\n\n equal(another: JsonPath): boolean {\n if (this.path.length !== another.path.length) return false;\n return this.path.every((component, index) => component === another.path[index]);\n }\n\n add(...pathComponents: Array<string | number>): JsonPath {\n return new JsonPath(...this.path, ...pathComponents);\n }\n\n join(another: JsonPath): JsonPath {\n return new JsonPath(...this.path, ...another.path);\n }\n\n toString(): string {\n let result = '';\n this.path.forEach((component) => {\n if (typeof component === 'number') {\n result += `/[${component}]`;\n } else {\n result += `/${component}`;\n }\n });\n return result + '/';\n }\n\n // noinspection JSUnusedGlobalSymbols\n toJSON() {\n return this.toString();\n }\n\n getLastComponent(): string | number | null {\n if (this.path.length === 0) {\n return null;\n }\n return this.path[this.path.length - 1];\n }\n\n endsIn(...pathComponents: Array<string | number>): boolean {\n // console.log(this.toString(), pathComponents);\n for (let i = 1; i <= pathComponents.length; i++) {\n if (i > this.path.length) {\n // console.log('RET FALSE 1');\n return false;\n }\n const pc = pathComponents[pathComponents.length - i];\n // console.log('--> ' + pc);\n if (this.path[this.path.length - i] !== pc && pc != JsonPath.ANY) {\n // console.log('RET FALSE 2');\n return false;\n }\n }\n // console.log('RET TRUE');\n return true;\n }\n\n getLastNComponents(n: number): JsonPath {\n if (n <= 0 || this.path.length === 0) {\n return new JsonPath();\n }\n const startIdx = Math.max(this.path.length - n, 0);\n const lastNComponents = this.path.slice(startIdx);\n return new JsonPath(...lastNComponents);\n }\n}\n","import { ReaderUtil } from '../../../../io/reader/ReaderUtil';\nimport { JsonNode } from '../../types/basic-types/JsonNode';\n\nexport class JsonContainerArtifactContent {\n // This is a verbatim representation\n public static CONTEXT_VERBATIM: JsonNode = {\n xsd: 'http://www.w3.org/2001/XMLSchema#',\n pav: 'http://purl.org/pav/',\n bibo: 'http://purl.org/ontology/bibo/',\n oslc: 'http://open-services.net/ns/core#',\n schema: 'http://schema.org/',\n 'schema:name': {\n '@type': 'xsd:string',\n },\n 'schema:description': {\n '@type': 'xsd:string',\n },\n 'pav:createdOn': {\n '@type': 'xsd:dateTime',\n },\n 'pav:createdBy': {\n '@type': '@id',\n },\n 'pav:lastUpdatedOn': {\n '@type': 'xsd:dateTime',\n },\n 'oslc:modifiedBy': {\n '@type': '@id',\n },\n };\n\n public static CONTEXT_VERBATIM_NO_BIBO: JsonNode;\n\n static {\n this.CONTEXT_VERBATIM_NO_BIBO = ReaderUtil.deepClone(this.CONTEXT_VERBATIM);\n ReaderUtil.deleteNodeKey(this.CONTEXT_VERBATIM_NO_BIBO, 'bibo');\n ReaderUtil.deepFreeze(this.CONTEXT_VERBATIM_NO_BIBO);\n\n ReaderUtil.deepFreeze(this.CONTEXT_VERBATIM);\n }\n}\n","import { ReaderUtil } from '../../../../io/reader/ReaderUtil';\nimport { JsonNode } from '../../types/basic-types/JsonNode';\n\nexport class JsonTemplateContent {\n // This will have the names of elements and fields as well\n public static REQUIRED_PARTIAL = [\n '@context',\n '@id',\n 'schema:isBasedOn',\n 'schema:name',\n 'schema:description',\n 'pav:createdOn',\n 'pav:createdBy',\n 'pav:lastUpdatedOn',\n 'oslc:modifiedBy',\n ];\n\n // @context/properties will have the Property IRI Mappings\n // Also will contain the definitions of the included fields and elements\n public static PROPERTIES_PARTIAL: JsonNode = {\n '@context': {\n type: 'object',\n properties: {\n rdfs: {\n type: 'string',\n format: 'uri',\n enum: ['http://www.w3.org/2000/01/rdf-schema#'],\n },\n xsd: {\n type: 'string',\n format: 'uri',\n enum: ['http://www.w3.org/2001/XMLSchema#'],\n },\n pav: {\n type: 'string',\n format: 'uri',\n enum: ['http://purl.org/pav/'],\n },\n schema: {\n type: 'string',\n format: 'uri',\n enum: ['http://schema.org/'],\n },\n oslc: {\n type: 'string',\n format: 'uri',\n enum: ['http://open-services.net/ns/core#'],\n },\n skos: {\n type: 'string',\n format: 'uri',\n enum: ['http://www.w3.org/2004/02/skos/core#'],\n },\n 'rdfs:label': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['xsd:string'],\n },\n },\n },\n 'schema:isBasedOn': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['@id'],\n },\n },\n },\n 'schema:name': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['xsd:string'],\n },\n },\n },\n 'schema:description': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['xsd:string'],\n },\n },\n },\n 'pav:derivedFrom': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['@id'],\n },\n },\n },\n 'pav:createdOn': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['xsd:dateTime'],\n },\n },\n },\n 'pav:createdBy': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['@id'],\n },\n },\n },\n 'pav:lastUpdatedOn': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['xsd:dateTime'],\n },\n },\n },\n 'oslc:modifiedBy': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['@id'],\n },\n },\n },\n 'skos:notation': {\n type: 'object',\n properties: {\n '@type': {\n type: 'string',\n enum: ['xsd:string'],\n },\n },\n },\n },\n required: [\n 'xsd',\n 'pav',\n 'schema',\n 'oslc',\n 'schema:isBasedOn',\n 'schema:name',\n 'schema:description',\n 'pav:createdOn',\n 'pav:createdBy',\n 'pav:lastUpdatedOn',\n 'oslc:modifiedBy',\n ],\n additionalProperties: false,\n },\n '@id': {\n type: ['string', 'null'],\n format: 'uri',\n },\n '@type': {\n oneOf: [\n {\n type: 'string',\n format: 'uri',\n },\n {\n type: 'array',\n minItems: 1,\n items: {\n type: 'string',\n format: 'uri',\n },\n uniqueItems: true,\n },\n ],\n },\n 'schema:isBasedOn': {\n type: 'string',\n format: 'uri',\n },\n 'schema:name': {\n type: 'string',\n minLength: 1,\n },\n 'schema:description': {\n type: 'string',\n },\n 'pav:derivedFrom': {\n type: 'string',\n format: 'uri',\n },\n 'pav:createdOn': {\n type: ['string', 'null'],\n format: 'date-time',\n },\n 'pav:createdBy': {\n type: ['string', 'null'],\n format: 'uri',\n },\n 'pav:lastUpdatedOn': {\n type: ['string', 'null'],\n format: 'date-time',\n },\n 'oslc:modifiedBy': {\n type: ['string', 'null'],\n format: 'uri',\n },\n };\n\n public static REQUIRED_PARTIAL_KEY_MAP: Map<string, boolean>;\n public static PROPERTIES_PARTIAL_KEY_LIST: Array<string> = [];\n public static PROPERTIES_PARTIAL_KEY_MAP: Map<string, boolean> = new Map();\n public static CONTEXT_VERBATIM_NO_BIBO: JsonNode;\n\n static {\n Object.keys(JsonTemplateContent.PROPERTIES_PARTIAL).forEach((key) => {\n this.PROPERTIES_PARTIAL_KEY_LIST.push(key);\n this.PROPERTIES_PARTIAL_KEY_MAP.set(key, true);\n });\n this.REQUIRED_PARTIAL_KEY_MAP = this.REQUIRED_PARTIAL.reduce((acc, current) => {\n acc.set(current, true);\n return acc;\n }, new Map<string, boolean>());\n\n ReaderUtil.deepFreeze(this.REQUIRED_PARTIAL);\n ReaderUtil.deepFreeze(this.PROPERTIES_PARTIAL);\n ReaderUtil.deepFreeze(this.REQUIRED_PARTIAL_KEY_MAP);\n ReaderUtil.deepFreeze(this.PROPERTIES_PARTIAL_KEY_LIST);\n ReaderUtil.deepFreeze(this.PROPERTIES_PARTIAL_KEY_MAP);\n }\n}\n","import { ReaderUtil } from '../../../../io/reader/ReaderUtil';\nimport { JsonNode } from '../../types/basic-types/JsonNode';\n\nexport class JsonTemplateElementContent {\n // This will have the names of elements and fields as well\n public static REQUIRED_PARTIAL = ['@context', '@id'];\n\n // @context/properties will have the Property IRI Mappings\n // Also will contain the definitions of the included fields and elements\n public static PROPERTIES_PARTIAL: JsonNode = {\n '@context': {\n type: 'object',\n properties: {},\n required: [],\n additionalProperties: false,\n },\n // As a template types its own instance's `@id`. An occurrence of this element has no identity\n // until the instance is uploaded, and null is what a document carries meanwhile; typed as a bare\n // string, the template refused a draft the server itself would fill. A document typed the older\n // way reads as it always did — see `acceptEitherIdTyping`.\n '@id': {\n type: ['string', 'null'],\n format: 'uri',\n },\n '@type': {\n oneOf: [\n {\n type: 'string',\n format: 'uri',\n },\n {\n type: 'array',\n minItems: 1,\n items: {\n type: 'string',\n format: 'uri',\n },\n uniqueItems: true,\n },\n ],\n },\n };\n\n /**\n * The `@id` typing a stored element carries, which is not the one written now.\n *\n * An occurrence has no identity until its instance is uploaded, so a template written since the\n * server took that over types the key `[\"string\", \"null\"]`. Everything written before types it\n * `\"string\"`, and both are documents this library has to read: nothing rewrites a stored artifact,\n * and an artifact is not wrong for predating a rule. A reader accepts either; only a writer moves.\n */\n public static readonly LEGACY_ID_TYPING: JsonNode = {\n type: 'string',\n format: 'uri',\n };\n\n /**\n * The blueprint, with the `@id` typing the document actually carries.\n *\n * Comparison is verbatim, so the blueprint has to name the accepted form the document chose, or a\n * stored element reads as departing from the model for a key it types exactly as it was told to.\n */\n public static acceptEitherIdTyping(blueprint: JsonNode, documentProperties: JsonNode): void {\n const stated = ReaderUtil.getNode(documentProperties, '@id');\n if (stated !== null && JSON.stringify(stated) === JSON.stringify(JsonTemplateElementContent.LEGACY_ID_TYPING)) {\n blueprint['@id'] = ReaderUtil.deepClone(JsonTemplateElementContent.LEGACY_ID_TYPING) as JsonNode;\n }\n }\n\n public static REQUIRED_PARTIAL_KEY_MAP: Map<string, boolean>;\n public static PROPERTIES_PARTIAL_KEY_MAP: Map<string, boolean> = new Map();\n public static CONTEXT_VERBATIM_NO_BIBO: JsonNode;\n\n static {\n Object.keys(JsonTemplateElementContent.PROPERTIES_PARTIAL).forEach((key) => {\n this.PROPERTIES_PARTIAL_KEY_MAP.set(key, true);\n });\n this.REQUIRED_PARTIAL_KEY_MAP = this.REQUIRED_PARTIAL.reduce((acc, current) => {\n acc.set(current, true);\n return acc;\n }, new Map<string, boolean>());\n\n ReaderUtil.deepFreeze(this.REQUIRED_PARTIAL);\n ReaderUtil.deepFreeze(this.PROPERTIES_PARTIAL);\n ReaderUtil.deepFreeze(this.REQUIRED_PARTIAL_KEY_MAP);\n ReaderUtil.deepFreeze(this.PROPERTIES_PARTIAL_KEY_MAP);\n }\n}\n","import { ReaderUtil } from '../../../../io/reader/ReaderUtil';\nimport { JsonNode } from '../../types/basic-types/JsonNode';\nimport { JsonSchema } from '../../constants/JsonSchema';\nimport { CedarModel } from '../../constants/CedarModel';\n\nexport class JsonTemplateFieldContentDynamic {\n // This is a verbatim representation\n public static CONTEXT_VERBATIM: JsonNode = {\n xsd: 'http://www.w3.org/2001/XMLSchema#',\n pav: 'http://purl.org/pav/',\n bibo: 'http://purl.org/ontology/bibo/',\n oslc: 'http://open-services.net/ns/core#',\n schema: 'http://schema.org/',\n skos: 'http://www.w3.org/2004/02/skos/core#',\n 'schema:name': {\n '@type': 'xsd:string',\n },\n 'schema:description': {\n '@type': 'xsd:string',\n },\n 'skos:prefLabel': {\n '@type': 'xsd:string',\n },\n 'skos:altLabel': {\n '@type': 'xsd:string',\n },\n 'pav:createdOn': {\n '@type': 'xsd:dateTime',\n },\n 'pav:createdBy': {\n '@type': '@id',\n },\n 'pav:lastUpdatedOn': {\n '@type': 'xsd:dateTime',\n },\n 'oslc:modifiedBy': {\n '@type': '@id',\n },\n };\n\n // This is a verbatim representation for regular fields\n public static PROPERTIES_VERBATIM_LITERAL: JsonNode = {\n '@type': {\n type: 'string',\n format: 'uri',\n },\n 'rdfs:label': {\n type: ['string', 'null'],\n },\n '@value': {\n type: ['string', 'null'],\n },\n '@language': {\n type: ['string', 'null'],\n minLength: 1,\n },\n };\n\n // This is a verbatim representation for controlled fields and IRIs\n public static PROPERTIES_VERBATIM_IRI: JsonNode = {\n '@type': {\n type: 'string',\n format: 'uri',\n },\n '@id': {\n type: 'string',\n format: 'uri',\n },\n 'rdfs:label': {\n type: ['string', 'null'],\n },\n 'skos:notation': {\n type: ['string', 'null'],\n },\n };\n\n // This content goes into the container additionalProperties in case of an attribute-value field\n public static ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_OUTSIDE: JsonNode = {\n type: 'object',\n properties: {\n '@value': {\n type: ['string', 'null'],\n },\n '@type': {\n type: 'string',\n format: 'uri',\n },\n },\n required: ['@value'],\n additionalProperties: false,\n };\n\n public static ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_INSIDE: JsonNode = {\n type: 'string',\n format: 'uri',\n };\n\n public static PROPERTIES_VERBATIM_LITERAL_NO_AT_LANGUAGE: JsonNode;\n public static PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION: JsonNode;\n public static CONTEXT_VERBATIM_NO_BIBO: JsonNode;\n\n static {\n ReaderUtil.deepFreeze(this.CONTEXT_VERBATIM);\n ReaderUtil.deepFreeze(this.PROPERTIES_VERBATIM_LITERAL);\n\n this.PROPERTIES_VERBATIM_LITERAL_NO_AT_LANGUAGE = ReaderUtil.deepClone(this.PROPERTIES_VERBATIM_LITERAL);\n ReaderUtil.deleteNodeKey(this.PROPERTIES_VERBATIM_LITERAL_NO_AT_LANGUAGE, JsonSchema.atLanguage);\n ReaderUtil.deepFreeze(this.PROPERTIES_VERBATIM_LITERAL_NO_AT_LANGUAGE);\n\n this.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION = ReaderUtil.deepClone(this.PROPERTIES_VERBATIM_IRI);\n ReaderUtil.deleteNodeKey(this.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION, CedarModel.skosNotation);\n ReaderUtil.deepFreeze(this.PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION);\n\n this.CONTEXT_VERBATIM_NO_BIBO = ReaderUtil.deepClone(this.CONTEXT_VERBATIM);\n ReaderUtil.deleteNodeKey(this.CONTEXT_VERBATIM_NO_BIBO, 'bibo');\n ReaderUtil.deepFreeze(this.CONTEXT_VERBATIM_NO_BIBO);\n\n ReaderUtil.deepFreeze(this.PROPERTIES_VERBATIM_IRI);\n ReaderUtil.deepFreeze(this.ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_OUTSIDE);\n ReaderUtil.deepFreeze(this.ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_INSIDE);\n }\n}\n","import { ReaderUtil } from '../../../../io/reader/ReaderUtil';\nimport { JsonNode } from '../../types/basic-types/JsonNode';\n\nexport class JsonTemplateFieldContentStatic {\n // This is a verbatim representation\n public static CONTEXT_VERBATIM: JsonNode = {\n schema: 'http://schema.org/',\n pav: 'http://purl.org/pav/',\n bibo: 'http://purl.org/ontology/bibo/',\n oslc: 'http://open-services.net/ns/core#',\n };\n\n public static CONTEXT_VERBATIM_NO_BIBO: JsonNode;\n\n static {\n ReaderUtil.deepFreeze(this.CONTEXT_VERBATIM);\n\n this.CONTEXT_VERBATIM_NO_BIBO = ReaderUtil.deepClone(this.CONTEXT_VERBATIM);\n ReaderUtil.deleteNodeKey(this.CONTEXT_VERBATIM_NO_BIBO, 'bibo');\n ReaderUtil.deepFreeze(this.CONTEXT_VERBATIM_NO_BIBO);\n }\n}\n","import { ReaderUtil } from '../../../../io/reader/ReaderUtil';\nimport { JsonNode } from '../../types/basic-types/JsonNode';\n\nexport class JsonTemplateInstanceContent {\n // This is a verbatim representation\n public static CONTEXT_VERBATIM: JsonNode = {\n rdfs: 'http://www.w3.org/2000/01/rdf-schema#',\n xsd: 'http://www.w3.org/2001/XMLSchema#',\n pav: 'http://purl.org/pav/',\n schema: 'http://schema.org/',\n oslc: 'http://open-services.net/ns/core#',\n skos: 'http://www.w3.org/2004/02/skos/core#',\n 'rdfs:label': {\n '@type': 'xsd:string',\n },\n 'schema:isBasedOn': {\n '@type': '@id',\n },\n 'schema:name': {\n '@type': 'xsd:string',\n },\n 'schema:description': {\n '@type': 'xsd:string',\n },\n 'pav:derivedFrom': {\n '@type': '@id',\n },\n 'pav:createdOn': {\n '@type': 'xsd:dateTime',\n },\n 'pav:createdBy': {\n '@type': '@id',\n },\n 'pav:lastUpdatedOn': {\n '@type': 'xsd:dateTime',\n },\n 'oslc:modifiedBy': {\n '@type': '@id',\n },\n 'skos:notation': {\n '@type': 'xsd:string',\n },\n };\n\n static {\n ReaderUtil.deepFreeze(this.CONTEXT_VERBATIM);\n }\n}\n","const ALIAS = Symbol.for('yaml.alias');\nconst DOC = Symbol.for('yaml.document');\nconst MAP = Symbol.for('yaml.map');\nconst PAIR = Symbol.for('yaml.pair');\nconst SCALAR = Symbol.for('yaml.scalar');\nconst SEQ = Symbol.for('yaml.seq');\nconst NODE_TYPE = Symbol.for('yaml.node.type');\nconst isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;\nconst isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;\nconst isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;\nconst isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;\nconst isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;\nconst isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;\nfunction isCollection(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case MAP:\n case SEQ:\n return true;\n }\n return false;\n}\nfunction isNode(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case ALIAS:\n case MAP:\n case SCALAR:\n case SEQ:\n return true;\n }\n return false;\n}\nconst hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;\n\nexport { ALIAS, DOC, MAP, NODE_TYPE, PAIR, SCALAR, SEQ, hasAnchor, isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq };\n","import { isDocument, isNode, isPair, isCollection, isMap, isSeq, isScalar, isAlias } from './nodes/identity.js';\n\nconst BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove node');\n/**\n * Apply a visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nfunction visit(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = visit_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n visit_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisit.SKIP = SKIP;\n/** Remove the current node */\nvisit.REMOVE = REMOVE;\nfunction visit_(key, node, visitor, path) {\n const ctrl = callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = visit_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = visit_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = visit_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\n/**\n * Apply an async visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `Promise`: Must resolve to one of the following values\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nasync function visitAsync(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = await visitAsync_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n await visitAsync_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisitAsync.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisitAsync.SKIP = SKIP;\n/** Remove the current node */\nvisitAsync.REMOVE = REMOVE;\nasync function visitAsync_(key, node, visitor, path) {\n const ctrl = await callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = await visitAsync_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = await visitAsync_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = await visitAsync_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\nfunction initVisitor(visitor) {\n if (typeof visitor === 'object' &&\n (visitor.Collection || visitor.Node || visitor.Value)) {\n return Object.assign({\n Alias: visitor.Node,\n Map: visitor.Node,\n Scalar: visitor.Node,\n Seq: visitor.Node\n }, visitor.Value && {\n Map: visitor.Value,\n Scalar: visitor.Value,\n Seq: visitor.Value\n }, visitor.Collection && {\n Map: visitor.Collection,\n Seq: visitor.Collection\n }, visitor);\n }\n return visitor;\n}\nfunction callVisitor(key, node, visitor, path) {\n if (typeof visitor === 'function')\n return visitor(key, node, path);\n if (isMap(node))\n return visitor.Map?.(key, node, path);\n if (isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (isPair(node))\n return visitor.Pair?.(key, node, path);\n if (isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (isAlias(node))\n return visitor.Alias?.(key, node, path);\n return undefined;\n}\nfunction replaceNode(key, path, node) {\n const parent = path[path.length - 1];\n if (isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexport { visit, visitAsync };\n","import { isNode } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\nconst escapeChars = {\n '!': '%21',\n ',': '%2C',\n '[': '%5B',\n ']': '%5D',\n '{': '%7B',\n '}': '%7D'\n};\nconst escapeTagName = (tn) => tn.replace(/[!,[\\]{}]/g, ch => escapeChars[ch]);\nclass Directives {\n constructor(yaml, tags) {\n /**\n * The directives-end/doc-start marker `---`. If `null`, a marker may still be\n * included in the document's stringified representation.\n */\n this.docStart = null;\n /** The doc-end marker `...`. */\n this.docEnd = false;\n this.yaml = Object.assign({}, Directives.defaultYaml, yaml);\n this.tags = Object.assign({}, Directives.defaultTags, tags);\n }\n clone() {\n const copy = new Directives(this.yaml, this.tags);\n copy.docStart = this.docStart;\n return copy;\n }\n /**\n * During parsing, get a Directives instance for the current document and\n * update the stream state according to the current version's spec.\n */\n atDocument() {\n const res = new Directives(this.yaml, this.tags);\n switch (this.yaml.version) {\n case '1.1':\n this.atNextDocument = true;\n break;\n case '1.2':\n this.atNextDocument = false;\n this.yaml = {\n explicit: Directives.defaultYaml.explicit,\n version: '1.2'\n };\n this.tags = Object.assign({}, Directives.defaultTags);\n break;\n }\n return res;\n }\n /**\n * @param onError - May be called even if the action was successful\n * @returns `true` on success\n */\n add(line, onError) {\n if (this.atNextDocument) {\n this.yaml = { explicit: Directives.defaultYaml.explicit, version: '1.1' };\n this.tags = Object.assign({}, Directives.defaultTags);\n this.atNextDocument = false;\n }\n const parts = line.trim().split(/[ \\t]+/);\n const name = parts.shift();\n switch (name) {\n case '%TAG': {\n if (parts.length !== 2) {\n onError(0, '%TAG directive should contain exactly two parts');\n if (parts.length < 2)\n return false;\n }\n const [handle, prefix] = parts;\n this.tags[handle] = prefix;\n return true;\n }\n case '%YAML': {\n this.yaml.explicit = true;\n if (parts.length !== 1) {\n onError(0, '%YAML directive should contain exactly one part');\n return false;\n }\n const [version] = parts;\n if (version === '1.1' || version === '1.2') {\n this.yaml.version = version;\n return true;\n }\n else {\n const isValid = /^\\d+\\.\\d+$/.test(version);\n onError(6, `Unsupported YAML version ${version}`, isValid);\n return false;\n }\n }\n default:\n onError(0, `Unknown directive ${name}`, true);\n return false;\n }\n }\n /**\n * Resolves a tag, matching handles to those defined in %TAG directives.\n *\n * @returns Resolved tag, which may also be the non-specific tag `'!'` or a\n * `'!local'` tag, or `null` if unresolvable.\n */\n tagName(source, onError) {\n if (source === '!')\n return '!'; // non-specific tag\n if (source[0] !== '!') {\n onError(`Not a valid tag: ${source}`);\n return null;\n }\n if (source[1] === '<') {\n const verbatim = source.slice(2, -1);\n if (verbatim === '!' || verbatim === '!!') {\n onError(`Verbatim tags aren't resolved, so ${source} is invalid.`);\n return null;\n }\n if (source[source.length - 1] !== '>')\n onError('Verbatim tags must end with a >');\n return verbatim;\n }\n const [, handle, suffix] = source.match(/^(.*!)([^!]*)$/s);\n if (!suffix)\n onError(`The ${source} tag has no suffix`);\n const prefix = this.tags[handle];\n if (prefix) {\n try {\n return prefix + decodeURIComponent(suffix);\n }\n catch (error) {\n onError(String(error));\n return null;\n }\n }\n if (handle === '!')\n return source; // local tag\n onError(`Could not resolve tag: ${source}`);\n return null;\n }\n /**\n * Given a fully resolved tag, returns its printable string form,\n * taking into account current tag prefixes and defaults.\n */\n tagString(tag) {\n for (const [handle, prefix] of Object.entries(this.tags)) {\n if (tag.startsWith(prefix))\n return handle + escapeTagName(tag.substring(prefix.length));\n }\n return tag[0] === '!' ? tag : `!<${tag}>`;\n }\n toString(doc) {\n const lines = this.yaml.explicit\n ? [`%YAML ${this.yaml.version || '1.2'}`]\n : [];\n const tagEntries = Object.entries(this.tags);\n let tagNames;\n if (doc && tagEntries.length > 0 && isNode(doc.contents)) {\n const tags = {};\n visit(doc.contents, (_key, node) => {\n if (isNode(node) && node.tag)\n tags[node.tag] = true;\n });\n tagNames = Object.keys(tags);\n }\n else\n tagNames = [];\n for (const [handle, prefix] of tagEntries) {\n if (handle === '!!' && prefix === 'tag:yaml.org,2002:')\n continue;\n if (!doc || tagNames.some(tn => tn.startsWith(prefix)))\n lines.push(`%TAG ${handle} ${prefix}`);\n }\n return lines.join('\\n');\n }\n}\nDirectives.defaultYaml = { explicit: false, version: '1.2' };\nDirectives.defaultTags = { '!!': 'tag:yaml.org,2002:' };\n\nexport { Directives };\n","import { isScalar, isCollection } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\n/**\n * Verify that the input string is a valid anchor.\n *\n * Will throw on errors.\n */\nfunction anchorIsValid(anchor) {\n if (/[\\x00-\\x19\\s,[\\]{}]/.test(anchor)) {\n const sa = JSON.stringify(anchor);\n const msg = `Anchor must not contain whitespace or control characters: ${sa}`;\n throw new Error(msg);\n }\n return true;\n}\nfunction anchorNames(root) {\n const anchors = new Set();\n visit(root, {\n Value(_key, node) {\n if (node.anchor)\n anchors.add(node.anchor);\n }\n });\n return anchors;\n}\n/** Find a new anchor name with the given `prefix` and a one-indexed suffix. */\nfunction findNewAnchor(prefix, exclude) {\n for (let i = 1; true; ++i) {\n const name = `${prefix}${i}`;\n if (!exclude.has(name))\n return name;\n }\n}\nfunction createNodeAnchors(doc, prefix) {\n const aliasObjects = [];\n const sourceObjects = new Map();\n let prevAnchors = null;\n return {\n onAnchor: (source) => {\n aliasObjects.push(source);\n prevAnchors ?? (prevAnchors = anchorNames(doc));\n const anchor = findNewAnchor(prefix, prevAnchors);\n prevAnchors.add(anchor);\n return anchor;\n },\n /**\n * With circular references, the source node is only resolved after all\n * of its child nodes are. This is why anchors are set only after all of\n * the nodes have been created.\n */\n setAnchors: () => {\n for (const source of aliasObjects) {\n const ref = sourceObjects.get(source);\n if (typeof ref === 'object' &&\n ref.anchor &&\n (isScalar(ref.node) || isCollection(ref.node))) {\n ref.node.anchor = ref.anchor;\n }\n else {\n const error = new Error('Failed to resolve repeated object (this should not happen)');\n error.source = source;\n throw error;\n }\n }\n },\n sourceObjects\n };\n}\n\nexport { anchorIsValid, anchorNames, createNodeAnchors, findNewAnchor };\n","/**\n * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,\n * in section 24.5.1.1 \"Runtime Semantics: InternalizeJSONProperty\" of the\n * 2021 edition: https://tc39.es/ecma262/#sec-json.parse\n *\n * Includes extensions for handling Map and Set objects.\n */\nfunction applyReviver(reviver, obj, key, val) {\n if (val && typeof val === 'object') {\n if (Array.isArray(val)) {\n for (let i = 0, len = val.length; i < len; ++i) {\n const v0 = val[i];\n const v1 = applyReviver(reviver, val, String(i), v0);\n // eslint-disable-next-line @typescript-eslint/no-array-delete\n if (v1 === undefined)\n delete val[i];\n else if (v1 !== v0)\n val[i] = v1;\n }\n }\n else if (val instanceof Map) {\n for (const k of Array.from(val.keys())) {\n const v0 = val.get(k);\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n val.delete(k);\n else if (v1 !== v0)\n val.set(k, v1);\n }\n }\n else if (val instanceof Set) {\n for (const v0 of Array.from(val)) {\n const v1 = applyReviver(reviver, val, v0, v0);\n if (v1 === undefined)\n val.delete(v0);\n else if (v1 !== v0) {\n val.delete(v0);\n val.add(v1);\n }\n }\n }\n else {\n for (const [k, v0] of Object.entries(val)) {\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n delete val[k];\n else if (v1 !== v0)\n val[k] = v1;\n }\n }\n }\n return reviver.call(obj, key, val);\n}\n\nexport { applyReviver };\n","import { hasAnchor } from './identity.js';\n\n/**\n * Recursively convert any node or its contents to native JavaScript\n *\n * @param value - The input value\n * @param arg - If `value` defines a `toJSON()` method, use this\n * as its first argument\n * @param ctx - Conversion context, originally set in Document#toJS(). If\n * `{ keep: true }` is not set, output should be suitable for JSON\n * stringification.\n */\nfunction toJS(value, arg, ctx) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (Array.isArray(value))\n return value.map((v, i) => toJS(v, String(i), ctx));\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (!ctx || !hasAnchor(value))\n return value.toJSON(arg, ctx);\n const data = { aliasCount: 0, count: 1, res: undefined };\n ctx.anchors.set(value, data);\n ctx.onCreate = res => {\n data.res = res;\n delete ctx.onCreate;\n };\n const res = value.toJSON(arg, ctx);\n if (ctx.onCreate)\n ctx.onCreate(res);\n return res;\n }\n if (typeof value === 'bigint' && !ctx?.keep)\n return Number(value);\n return value;\n}\n\nexport { toJS };\n","import { applyReviver } from '../doc/applyReviver.js';\nimport { NODE_TYPE, isDocument } from './identity.js';\nimport { toJS } from './toJS.js';\n\nclass NodeBase {\n constructor(type) {\n Object.defineProperty(this, NODE_TYPE, { value: type });\n }\n /** Create a copy of this node. */\n clone() {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** A plain JavaScript representation of this node. */\n toJS(doc, { mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n if (!isDocument(doc))\n throw new TypeError('A document argument is required');\n const ctx = {\n anchors: new Map(),\n doc,\n keep: true,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this, '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n}\n\nexport { NodeBase };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { visit } from '../visit.js';\nimport { ALIAS, isAlias, isCollection, isPair, hasAnchor } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nclass Alias extends NodeBase {\n constructor(source) {\n super(ALIAS);\n this.source = source;\n Object.defineProperty(this, 'tag', {\n set() {\n throw new Error('Alias nodes cannot have tags');\n }\n });\n }\n /**\n * Resolve the value of this alias within `doc`, finding the last\n * instance of the `source` anchor before this node.\n */\n resolve(doc, ctx) {\n if (ctx?.maxAliasCount === 0)\n throw new ReferenceError('Alias resolution is disabled');\n let nodes;\n if (ctx?.aliasResolveCache) {\n nodes = ctx.aliasResolveCache;\n }\n else {\n nodes = [];\n visit(doc, {\n Node: (_key, node) => {\n if (isAlias(node) || hasAnchor(node))\n nodes.push(node);\n }\n });\n if (ctx)\n ctx.aliasResolveCache = nodes;\n }\n let found = undefined;\n for (const node of nodes) {\n if (node === this)\n break;\n if (node.anchor === this.source)\n found = node;\n }\n return found;\n }\n toJSON(_arg, ctx) {\n if (!ctx)\n return { source: this.source };\n const { anchors, doc, maxAliasCount } = ctx;\n const source = this.resolve(doc, ctx);\n if (!source) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new ReferenceError(msg);\n }\n let data = anchors.get(source);\n if (!data) {\n // Resolve anchors for Node.prototype.toJS()\n toJS(source, null, ctx);\n data = anchors.get(source);\n }\n /* istanbul ignore if */\n if (data?.res === undefined) {\n const msg = 'This should not happen: Alias anchor was not resolved?';\n throw new ReferenceError(msg);\n }\n if (maxAliasCount >= 0) {\n data.count += 1;\n if (data.aliasCount === 0)\n data.aliasCount = getAliasCount(doc, source, anchors);\n if (data.count * data.aliasCount > maxAliasCount) {\n const msg = 'Excessive alias count indicates a resource exhaustion attack';\n throw new ReferenceError(msg);\n }\n }\n return data.res;\n }\n toString(ctx, _onComment, _onChompKeep) {\n const src = `*${this.source}`;\n if (ctx) {\n anchorIsValid(this.source);\n if (ctx.options.verifyAliasOrder && !ctx.anchors.has(this.source)) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new Error(msg);\n }\n if (ctx.implicitKey)\n return `${src} `;\n }\n return src;\n }\n}\nfunction getAliasCount(doc, node, anchors) {\n if (isAlias(node)) {\n const source = node.resolve(doc);\n const anchor = anchors && source && anchors.get(source);\n return anchor ? anchor.count * anchor.aliasCount : 0;\n }\n else if (isCollection(node)) {\n let count = 0;\n for (const item of node.items) {\n const c = getAliasCount(doc, item, anchors);\n if (c > count)\n count = c;\n }\n return count;\n }\n else if (isPair(node)) {\n const kc = getAliasCount(doc, node.key, anchors);\n const vc = getAliasCount(doc, node.value, anchors);\n return Math.max(kc, vc);\n }\n return 1;\n}\n\nexport { Alias };\n","import { SCALAR } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nconst isScalarValue = (value) => !value || (typeof value !== 'function' && typeof value !== 'object');\nclass Scalar extends NodeBase {\n constructor(value) {\n super(SCALAR);\n this.value = value;\n }\n toJSON(arg, ctx) {\n return ctx?.keep ? this.value : toJS(this.value, arg, ctx);\n }\n toString() {\n return String(this.value);\n }\n}\nScalar.BLOCK_FOLDED = 'BLOCK_FOLDED';\nScalar.BLOCK_LITERAL = 'BLOCK_LITERAL';\nScalar.PLAIN = 'PLAIN';\nScalar.QUOTE_DOUBLE = 'QUOTE_DOUBLE';\nScalar.QUOTE_SINGLE = 'QUOTE_SINGLE';\n\nexport { Scalar, isScalarValue };\n","import { Alias } from '../nodes/Alias.js';\nimport { isNode, isPair, MAP, SEQ, isDocument } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\n\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nfunction findTagObject(value, tagName, tags) {\n if (tagName) {\n const match = tags.filter(t => t.tag === tagName);\n const tagObj = match.find(t => !t.format) ?? match[0];\n if (!tagObj)\n throw new Error(`Tag ${tagName} not found`);\n return tagObj;\n }\n return tags.find(t => t.identify?.(value) && !t.format);\n}\nfunction createNode(value, tagName, ctx) {\n if (isDocument(value))\n value = value.contents;\n if (isNode(value))\n return value;\n if (isPair(value)) {\n const map = ctx.schema[MAP].createNode?.(ctx.schema, null, ctx);\n map.items.push(value);\n return map;\n }\n if (value instanceof String ||\n value instanceof Number ||\n value instanceof Boolean ||\n (typeof BigInt !== 'undefined' && value instanceof BigInt) // not supported everywhere\n ) {\n // https://tc39.es/ecma262/#sec-serializejsonproperty\n value = value.valueOf();\n }\n const { aliasDuplicateObjects, onAnchor, onTagObj, schema, sourceObjects } = ctx;\n // Detect duplicate references to the same object & use Alias nodes for all\n // after first. The `ref` wrapper allows for circular references to resolve.\n let ref = undefined;\n if (aliasDuplicateObjects && value && typeof value === 'object') {\n ref = sourceObjects.get(value);\n if (ref) {\n ref.anchor ?? (ref.anchor = onAnchor(value));\n return new Alias(ref.anchor);\n }\n else {\n ref = { anchor: null, node: null };\n sourceObjects.set(value, ref);\n }\n }\n if (tagName?.startsWith('!!'))\n tagName = defaultTagPrefix + tagName.slice(2);\n let tagObj = findTagObject(value, tagName, schema.tags);\n if (!tagObj) {\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n value = value.toJSON();\n }\n if (!value || typeof value !== 'object') {\n const node = new Scalar(value);\n if (ref)\n ref.node = node;\n return node;\n }\n tagObj =\n value instanceof Map\n ? schema[MAP]\n : Symbol.iterator in Object(value)\n ? schema[SEQ]\n : schema[MAP];\n }\n if (onTagObj) {\n onTagObj(tagObj);\n delete ctx.onTagObj;\n }\n const node = tagObj?.createNode\n ? tagObj.createNode(ctx.schema, value, ctx)\n : typeof tagObj?.nodeClass?.from === 'function'\n ? tagObj.nodeClass.from(ctx.schema, value, ctx)\n : new Scalar(value);\n if (tagName)\n node.tag = tagName;\n else if (!tagObj.default)\n node.tag = tagObj.tag;\n if (ref)\n ref.node = node;\n return node;\n}\n\nexport { createNode };\n","import { createNode } from '../doc/createNode.js';\nimport { isNode, isPair, isCollection, isScalar } from './identity.js';\nimport { NodeBase } from './Node.js';\n\nfunction collectionFromPath(schema, path, value) {\n let v = value;\n for (let i = path.length - 1; i >= 0; --i) {\n const k = path[i];\n if (typeof k === 'number' && Number.isInteger(k) && k >= 0) {\n const a = [];\n a[k] = v;\n v = a;\n }\n else {\n v = new Map([[k, v]]);\n }\n }\n return createNode(v, undefined, {\n aliasDuplicateObjects: false,\n keepUndefined: false,\n onAnchor: () => {\n throw new Error('This should not happen, please report a bug.');\n },\n schema,\n sourceObjects: new Map()\n });\n}\n// Type guard is intentionally a little wrong so as to be more useful,\n// as it does not cover untypable empty non-string iterables (e.g. []).\nconst isEmptyPath = (path) => path == null ||\n (typeof path === 'object' && !!path[Symbol.iterator]().next().done);\nclass Collection extends NodeBase {\n constructor(type, schema) {\n super(type);\n Object.defineProperty(this, 'schema', {\n value: schema,\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n /**\n * Create a copy of this collection.\n *\n * @param schema - If defined, overwrites the original's schema\n */\n clone(schema) {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (schema)\n copy.schema = schema;\n copy.items = copy.items.map(it => isNode(it) || isPair(it) ? it.clone(schema) : it);\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /**\n * Adds a value to the collection. For `!!map` and `!!omap` the value must\n * be a Pair instance or a `{ key, value }` object, which may not have a key\n * that already exists in the map.\n */\n addIn(path, value) {\n if (isEmptyPath(path))\n this.add(value);\n else {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (isCollection(node))\n node.addIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n /**\n * Removes a value from the collection.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.delete(key);\n const node = this.get(key, true);\n if (isCollection(node))\n return node.deleteIn(rest);\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (rest.length === 0)\n return !keepScalar && isScalar(node) ? node.value : node;\n else\n return isCollection(node) ? node.getIn(rest, keepScalar) : undefined;\n }\n hasAllNullValues(allowScalar) {\n return this.items.every(node => {\n if (!isPair(node))\n return false;\n const n = node.value;\n return (n == null ||\n (allowScalar &&\n isScalar(n) &&\n n.value == null &&\n !n.commentBefore &&\n !n.comment &&\n !n.tag));\n });\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n */\n hasIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.has(key);\n const node = this.get(key, true);\n return isCollection(node) ? node.hasIn(rest) : false;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n const [key, ...rest] = path;\n if (rest.length === 0) {\n this.set(key, value);\n }\n else {\n const node = this.get(key, true);\n if (isCollection(node))\n node.setIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n}\n\nexport { Collection, collectionFromPath, isEmptyPath };\n","/**\n * Stringifies a comment.\n *\n * Empty comment lines are left empty,\n * lines consisting of a single space are replaced by `#`,\n * and all other lines are prefixed with a `#`.\n */\nconst stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, '#');\nfunction indentComment(comment, indent) {\n if (/^\\n+$/.test(comment))\n return comment.substring(1);\n return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;\n}\nconst lineComment = (str, indent, comment) => str.endsWith('\\n')\n ? indentComment(comment, indent)\n : comment.includes('\\n')\n ? '\\n' + indentComment(comment, indent)\n : (str.endsWith(' ') ? '' : ' ') + comment;\n\nexport { indentComment, lineComment, stringifyComment };\n","const FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted';\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n */\nfunction foldFlowLines(text, indent, mode = 'flow', { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {\n if (!lineWidth || lineWidth < 0)\n return text;\n if (lineWidth < minContentWidth)\n minContentWidth = 0;\n const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep)\n return text;\n const folds = [];\n const escapedFolds = {};\n let end = lineWidth - indent.length;\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth))\n folds.push(0);\n else\n end = lineWidth - indentAtStart;\n }\n let split = undefined;\n let prev = undefined;\n let overflow = false;\n let i = -1;\n let escStart = -1;\n let escEnd = -1;\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i, indent.length);\n if (i !== -1)\n end = i + endStep;\n }\n for (let ch; (ch = text[(i += 1)]);) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n case 'u':\n i += 5;\n break;\n case 'U':\n i += 9;\n break;\n default:\n i += 1;\n }\n escEnd = i;\n }\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK)\n i = consumeMoreIndentedLines(text, i, indent.length);\n end = i + indent.length + endStep;\n split = undefined;\n }\n else {\n if (ch === ' ' &&\n prev &&\n prev !== ' ' &&\n prev !== '\\n' &&\n prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n const next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t')\n split = i;\n }\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n }\n else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[(i += 1)];\n overflow = true;\n }\n // Account for newline escape, but don't break preceding escape\n const j = i > escEnd + 1 ? i - 2 : escStart - 1;\n // Bail out if lineWidth & minContentWidth are shorter than an escape string\n if (escapedFolds[j])\n return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n }\n else {\n overflow = true;\n }\n }\n }\n prev = ch;\n }\n if (overflow && onOverflow)\n onOverflow();\n if (folds.length === 0)\n return text;\n if (onFold)\n onFold();\n let res = text.slice(0, folds[0]);\n for (let i = 0; i < folds.length; ++i) {\n const fold = folds[i];\n const end = folds[i + 1] || text.length;\n if (fold === 0)\n res = `\\n${indent}${text.slice(0, end)}`;\n else {\n if (mode === FOLD_QUOTED && escapedFolds[fold])\n res += `${text[fold]}\\\\`;\n res += `\\n${indent}${text.slice(fold + 1, end)}`;\n }\n }\n return res;\n}\n/**\n * Presumes `i + 1` is at the start of a line\n * @returns index of last newline in more-indented block\n */\nfunction consumeMoreIndentedLines(text, i, indent) {\n let end = i;\n let start = i + 1;\n let ch = text[start];\n while (ch === ' ' || ch === '\\t') {\n if (i < start + indent) {\n ch = text[++i];\n }\n else {\n do {\n ch = text[++i];\n } while (ch && ch !== '\\n');\n end = i;\n start = i + 1;\n ch = text[start];\n }\n }\n return end;\n}\n\nexport { FOLD_BLOCK, FOLD_FLOW, FOLD_QUOTED, foldFlowLines };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { foldFlowLines, FOLD_FLOW, FOLD_QUOTED, FOLD_BLOCK } from './foldFlowLines.js';\n\nconst getFoldOptions = (ctx, isBlock) => ({\n indentAtStart: isBlock ? ctx.indent.length : ctx.indentAtStart,\n lineWidth: ctx.options.lineWidth,\n minContentWidth: ctx.options.minContentWidth\n});\n// Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\nconst containsDocumentMarker = (str) => /^(%|---|\\.\\.\\.)/m.test(str);\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0)\n return false;\n const limit = lineWidth - indentLength;\n const strLen = str.length;\n if (strLen <= limit)\n return false;\n for (let i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit)\n return true;\n start = i + 1;\n if (strLen - start <= limit)\n return false;\n }\n }\n return true;\n}\nfunction doubleQuotedString(value, ctx) {\n const json = JSON.stringify(value);\n if (ctx.options.doubleQuotedAsJSON)\n return json;\n const { implicitKey } = ctx;\n const minMultiLineLength = ctx.options.doubleQuotedMinMultiLineLength;\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n let str = '';\n let start = 0;\n for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n if (ch === '\\\\')\n switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n const code = json.substr(i + 2, 4);\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n case '0007':\n str += '\\\\a';\n break;\n case '000b':\n str += '\\\\v';\n break;\n case '001b':\n str += '\\\\e';\n break;\n case '0085':\n str += '\\\\N';\n break;\n case '00a0':\n str += '\\\\_';\n break;\n case '2028':\n str += '\\\\L';\n break;\n case '2029':\n str += '\\\\P';\n break;\n default:\n if (code.substr(0, 2) === '00')\n str += '\\\\x' + code.substr(2);\n else\n str += json.substr(i, 6);\n }\n i += 5;\n start = i + 1;\n }\n break;\n case 'n':\n if (implicitKey ||\n json[i + 2] === '\"' ||\n json.length < minMultiLineLength) {\n i += 1;\n }\n else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n while (json[i + 2] === '\\\\' &&\n json[i + 3] === 'n' &&\n json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n str += indent;\n // space after newline needs to be escaped to not be folded\n if (json[i + 2] === ' ')\n str += '\\\\';\n i += 1;\n start = i + 1;\n }\n break;\n default:\n i += 1;\n }\n }\n str = start ? str + json.slice(start) : json;\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx, false));\n}\nfunction singleQuotedString(value, ctx) {\n if (ctx.options.singleQuote === false ||\n (ctx.implicitKey && value.includes('\\n')) ||\n /[ \\t]\\n|\\n[ \\t]/.test(value) // single quoted string can't have leading or trailing whitespace around newline\n )\n return doubleQuotedString(value, ctx);\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n return ctx.implicitKey\n ? res\n : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction quotedString(value, ctx) {\n const { singleQuote } = ctx.options;\n let qs;\n if (singleQuote === false)\n qs = doubleQuotedString;\n else {\n const hasDouble = value.includes('\"');\n const hasSingle = value.includes(\"'\");\n if (hasDouble && !hasSingle)\n qs = singleQuotedString;\n else if (hasSingle && !hasDouble)\n qs = doubleQuotedString;\n else\n qs = singleQuote ? singleQuotedString : doubleQuotedString;\n }\n return qs(value, ctx);\n}\n// The negative lookbehind avoids a polynomial search,\n// but isn't supported yet on Safari: https://caniuse.com/js-regexp-lookbehind\nlet blockEndNewlines;\ntry {\n blockEndNewlines = new RegExp('(^|(?<!\\n))\\n+(?!\\n|$)', 'g');\n}\ncatch {\n blockEndNewlines = /\\n+(?!\\n|$)/g;\n}\nfunction blockString({ comment, type, value }, ctx, onComment, onChompKeep) {\n const { blockQuote, commentString, lineWidth } = ctx.options;\n // 1. Block can't end in whitespace unless the last line is non-empty.\n // 2. Strings consisting of only whitespace are best rendered explicitly.\n if (!blockQuote || /\\n[\\t ]+$/.test(value)) {\n return quotedString(value, ctx);\n }\n const indent = ctx.indent ||\n (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : '');\n const literal = blockQuote === 'literal'\n ? true\n : blockQuote === 'folded' || type === Scalar.BLOCK_FOLDED\n ? false\n : type === Scalar.BLOCK_LITERAL\n ? true\n : !lineLengthOverLimit(value, lineWidth, indent.length);\n if (!value)\n return literal ? '|\\n' : '>\\n';\n // determine chomping from whitespace at value end\n let chomp;\n let endStart;\n for (endStart = value.length; endStart > 0; --endStart) {\n const ch = value[endStart - 1];\n if (ch !== '\\n' && ch !== '\\t' && ch !== ' ')\n break;\n }\n let end = value.substring(endStart);\n const endNlPos = end.indexOf('\\n');\n if (endNlPos === -1) {\n chomp = '-'; // strip\n }\n else if (value === end || endNlPos !== end.length - 1) {\n chomp = '+'; // keep\n if (onChompKeep)\n onChompKeep();\n }\n else {\n chomp = ''; // clip\n }\n if (end) {\n value = value.slice(0, -end.length);\n if (end[end.length - 1] === '\\n')\n end = end.slice(0, -1);\n end = end.replace(blockEndNewlines, `$&${indent}`);\n }\n // determine indent indicator from whitespace at value start\n let startWithSpace = false;\n let startEnd;\n let startNlPos = -1;\n for (startEnd = 0; startEnd < value.length; ++startEnd) {\n const ch = value[startEnd];\n if (ch === ' ')\n startWithSpace = true;\n else if (ch === '\\n')\n startNlPos = startEnd;\n else\n break;\n }\n let start = value.substring(0, startNlPos < startEnd ? startNlPos + 1 : startEnd);\n if (start) {\n value = value.substring(start.length);\n start = start.replace(/\\n+/g, `$&${indent}`);\n }\n const indentSize = indent ? '2' : '1'; // root is at -1\n // Leading | or > is added later\n let header = (startWithSpace ? indentSize : '') + chomp;\n if (comment) {\n header += ' ' + commentString(comment.replace(/ ?[\\r\\n]+/g, ' '));\n if (onComment)\n onComment();\n }\n if (!literal) {\n const foldedValue = value\n .replace(/\\n+/g, '\\n$&')\n .replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, `$&${indent}`);\n let literalFallback = false;\n const foldOptions = getFoldOptions(ctx, true);\n if (blockQuote !== 'folded' && type !== Scalar.BLOCK_FOLDED) {\n foldOptions.onOverflow = () => {\n literalFallback = true;\n };\n }\n const body = foldFlowLines(`${start}${foldedValue}${end}`, indent, FOLD_BLOCK, foldOptions);\n if (!literalFallback)\n return `>${header}\\n${indent}${body}`;\n }\n value = value.replace(/\\n+/g, `$&${indent}`);\n return `|${header}\\n${indent}${start}${value}${end}`;\n}\nfunction plainString(item, ctx, onComment, onChompKeep) {\n const { type, value } = item;\n const { actualString, implicitKey, indent, indentStep, inFlow } = ctx;\n if ((implicitKey && value.includes('\\n')) ||\n (inFlow && /[[\\]{},]/.test(value))) {\n return quotedString(value, ctx);\n }\n if (/^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || !value.includes('\\n')\n ? quotedString(value, ctx)\n : blockString(item, ctx, onComment, onChompKeep);\n }\n if (!implicitKey &&\n !inFlow &&\n type !== Scalar.PLAIN &&\n value.includes('\\n')) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n if (containsDocumentMarker(value)) {\n if (indent === '') {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n else if (implicitKey && indent === indentStep) {\n return quotedString(value, ctx);\n }\n }\n const str = value.replace(/\\n+/g, `$&\\n${indent}`);\n // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n if (actualString) {\n const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && tag.test?.test(str);\n const { compat, tags } = ctx.doc.schema;\n if (tags.some(test) || compat?.some(test))\n return quotedString(value, ctx);\n }\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n const { implicitKey, inFlow } = ctx;\n const ss = typeof item.value === 'string'\n ? item\n : Object.assign({}, item, { value: String(item.value) });\n let { type } = item;\n if (type !== Scalar.QUOTE_DOUBLE) {\n // force double quotes on control characters & unpaired surrogates\n if (/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(ss.value))\n type = Scalar.QUOTE_DOUBLE;\n }\n const _stringify = (_type) => {\n switch (_type) {\n case Scalar.BLOCK_FOLDED:\n case Scalar.BLOCK_LITERAL:\n return implicitKey || inFlow\n ? quotedString(ss.value, ctx) // blocks are not valid inside flow containers\n : blockString(ss, ctx, onComment, onChompKeep);\n case Scalar.QUOTE_DOUBLE:\n return doubleQuotedString(ss.value, ctx);\n case Scalar.QUOTE_SINGLE:\n return singleQuotedString(ss.value, ctx);\n case Scalar.PLAIN:\n return plainString(ss, ctx, onComment, onChompKeep);\n default:\n return null;\n }\n };\n let res = _stringify(type);\n if (res === null) {\n const { defaultKeyType, defaultStringType } = ctx.options;\n const t = (implicitKey && defaultKeyType) || defaultStringType;\n res = _stringify(t);\n if (res === null)\n throw new Error(`Unsupported default string type ${t}`);\n }\n return res;\n}\n\nexport { stringifyString };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/identity.js';\nimport { stringifyComment } from './stringifyComment.js';\nimport { stringifyString } from './stringifyString.js';\n\nfunction createStringifyContext(doc, options) {\n const opt = Object.assign({\n blockQuote: true,\n commentString: stringifyComment,\n defaultKeyType: null,\n defaultStringType: 'PLAIN',\n directives: null,\n doubleQuotedAsJSON: false,\n doubleQuotedMinMultiLineLength: 40,\n falseStr: 'false',\n flowCollectionPadding: true,\n indentSeq: true,\n lineWidth: 80,\n minContentWidth: 20,\n nullStr: 'null',\n simpleKeys: false,\n singleQuote: null,\n trailingComma: false,\n trueStr: 'true',\n verifyAliasOrder: true\n }, doc.schema.toStringOptions, options);\n let inFlow;\n switch (opt.collectionStyle) {\n case 'block':\n inFlow = false;\n break;\n case 'flow':\n inFlow = true;\n break;\n default:\n inFlow = null;\n }\n return {\n anchors: new Set(),\n doc,\n flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',\n indent: '',\n indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',\n inFlow,\n options: opt\n };\n}\nfunction getTagObject(tags, item) {\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0)\n return match.find(t => t.format === item.format) ?? match[0];\n }\n let tagObj = undefined;\n let obj;\n if (isScalar(item)) {\n obj = item.value;\n let match = tags.filter(t => t.identify?.(obj));\n if (match.length > 1) {\n const testMatch = match.filter(t => t.test);\n if (testMatch.length > 0)\n match = testMatch;\n }\n tagObj =\n match.find(t => t.format === item.format) ?? match.find(t => !t.format);\n }\n else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n if (!tagObj) {\n const name = obj?.constructor?.name ?? (obj === null ? 'null' : typeof obj);\n throw new Error(`Tag not resolved for ${name} value`);\n }\n return tagObj;\n}\n// needs to be called before value stringifier to allow for circular anchor refs\nfunction stringifyProps(node, tagObj, { anchors, doc }) {\n if (!doc.directives)\n return '';\n const props = [];\n const anchor = (isScalar(node) || isCollection(node)) && node.anchor;\n if (anchor && anchorIsValid(anchor)) {\n anchors.add(anchor);\n props.push(`&${anchor}`);\n }\n const tag = node.tag ?? (tagObj.default ? null : tagObj.tag);\n if (tag)\n props.push(doc.directives.tagString(tag));\n return props.join(' ');\n}\nfunction stringify(item, ctx, onComment, onChompKeep) {\n if (isPair(item))\n return item.toString(ctx, onComment, onChompKeep);\n if (isAlias(item)) {\n if (ctx.doc.directives)\n return item.toString(ctx);\n if (ctx.resolvedAliases?.has(item)) {\n throw new TypeError(`Cannot stringify circular structure without alias nodes`);\n }\n else {\n if (ctx.resolvedAliases)\n ctx.resolvedAliases.add(item);\n else\n ctx.resolvedAliases = new Set([item]);\n item = item.resolve(ctx.doc);\n }\n }\n let tagObj = undefined;\n const node = isNode(item)\n ? item\n : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });\n tagObj ?? (tagObj = getTagObject(ctx.doc.schema.tags, node));\n const props = stringifyProps(node, tagObj, ctx);\n if (props.length > 0)\n ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function'\n ? tagObj.stringify(node, ctx, onComment, onChompKeep)\n : isScalar(node)\n ? stringifyString(node, ctx, onComment, onChompKeep)\n : node.toString(ctx, onComment, onChompKeep);\n if (!props)\n return str;\n return isScalar(node) || str[0] === '{' || str[0] === '['\n ? `${props} ${str}`\n : `${props}\\n${ctx.indent}${str}`;\n}\n\nexport { createStringifyContext, stringify };\n","function debug(logLevel, ...messages) {\n if (logLevel === 'debug')\n console.log(...messages);\n}\nfunction warn(logLevel, warning) {\n if (logLevel === 'debug' || logLevel === 'warn') {\n console.warn(warning);\n }\n}\n\nexport { debug, warn };\n","import { isScalar, isSeq, isAlias, isMap } from '../../nodes/identity.js';\nimport { Scalar } from '../../nodes/Scalar.js';\n\n// If the value associated with a merge key is a single mapping node, each of\n// its key/value pairs is inserted into the current mapping, unless the key\n// already exists in it. If the value associated with the merge key is a\n// sequence, then this sequence is expected to contain mapping nodes and each\n// of these nodes is merged in turn according to its order in the sequence.\n// Keys in mapping nodes earlier in the sequence override keys specified in\n// later mapping nodes. -- http://yaml.org/type/merge.html\nconst MERGE_KEY = '<<';\nconst merge = {\n identify: value => value === MERGE_KEY ||\n (typeof value === 'symbol' && value.description === MERGE_KEY),\n default: 'key',\n tag: 'tag:yaml.org,2002:merge',\n test: /^<<$/,\n resolve: () => Object.assign(new Scalar(Symbol(MERGE_KEY)), {\n addToJSMap: addMergeToJSMap\n }),\n stringify: () => MERGE_KEY\n};\nconst isMergeKey = (ctx, key) => (merge.identify(key) ||\n (isScalar(key) &&\n (!key.type || key.type === Scalar.PLAIN) &&\n merge.identify(key.value))) &&\n ctx?.doc.schema.tags.some(tag => tag.tag === merge.tag && tag.default);\nfunction addMergeToJSMap(ctx, map, value) {\n const source = resolveAliasValue(ctx, value);\n if (isSeq(source))\n for (const it of source.items)\n mergeValue(ctx, map, it);\n else if (Array.isArray(source))\n for (const it of source)\n mergeValue(ctx, map, it);\n else\n mergeValue(ctx, map, source);\n}\nfunction mergeValue(ctx, map, value) {\n const source = resolveAliasValue(ctx, value);\n if (!isMap(source))\n throw new Error('Merge sources must be maps or map aliases');\n const srcMap = source.toJSON(null, ctx, Map);\n for (const [key, value] of srcMap) {\n if (map instanceof Map) {\n if (!map.has(key))\n map.set(key, value);\n }\n else if (map instanceof Set) {\n map.add(key);\n }\n else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n return map;\n}\nfunction resolveAliasValue(ctx, value) {\n return ctx && isAlias(value) ? value.resolve(ctx.doc, ctx) : value;\n}\n\nexport { addMergeToJSMap, isMergeKey, merge };\n","import { warn } from '../log.js';\nimport { isMergeKey, addMergeToJSMap } from '../schema/yaml-1.1/merge.js';\nimport { createStringifyContext } from '../stringify/stringify.js';\nimport { isNode } from './identity.js';\nimport { toJS } from './toJS.js';\n\nfunction addPairToJSMap(ctx, map, { key, value }) {\n if (isNode(key) && key.addToJSMap)\n key.addToJSMap(ctx, map, value);\n // TODO: Should drop this special case for bare << handling\n else if (isMergeKey(ctx, key))\n addMergeToJSMap(ctx, map, value);\n else {\n const jsKey = toJS(key, '', ctx);\n if (map instanceof Map) {\n map.set(jsKey, toJS(value, jsKey, ctx));\n }\n else if (map instanceof Set) {\n map.add(jsKey);\n }\n else {\n const stringKey = stringifyKey(key, jsKey, ctx);\n const jsValue = toJS(value, stringKey, ctx);\n if (stringKey in map)\n Object.defineProperty(map, stringKey, {\n value: jsValue,\n writable: true,\n enumerable: true,\n configurable: true\n });\n else\n map[stringKey] = jsValue;\n }\n }\n return map;\n}\nfunction stringifyKey(key, jsKey, ctx) {\n if (jsKey === null)\n return '';\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n if (typeof jsKey !== 'object')\n return String(jsKey);\n if (isNode(key) && ctx?.doc) {\n const strCtx = createStringifyContext(ctx.doc, {});\n strCtx.anchors = new Set();\n for (const node of ctx.anchors.keys())\n strCtx.anchors.add(node.anchor);\n strCtx.inFlow = true;\n strCtx.inStringifyKey = true;\n const strKey = key.toString(strCtx);\n if (!ctx.mapKeyWarned) {\n let jsonStr = JSON.stringify(strKey);\n if (jsonStr.length > 40)\n jsonStr = jsonStr.substring(0, 36) + '...\"';\n warn(ctx.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${jsonStr}. Set mapAsMap: true to use object keys.`);\n ctx.mapKeyWarned = true;\n }\n return strKey;\n }\n return JSON.stringify(jsKey);\n}\n\nexport { addPairToJSMap };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyPair } from '../stringify/stringifyPair.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { NODE_TYPE, PAIR, isNode } from './identity.js';\n\nfunction createPair(key, value, ctx) {\n const k = createNode(key, undefined, ctx);\n const v = createNode(value, undefined, ctx);\n return new Pair(k, v);\n}\nclass Pair {\n constructor(key, value = null) {\n Object.defineProperty(this, NODE_TYPE, { value: PAIR });\n this.key = key;\n this.value = value;\n }\n clone(schema) {\n let { key, value } = this;\n if (isNode(key))\n key = key.clone(schema);\n if (isNode(value))\n value = value.clone(schema);\n return new Pair(key, value);\n }\n toJSON(_, ctx) {\n const pair = ctx?.mapAsMap ? new Map() : {};\n return addPairToJSMap(ctx, pair, this);\n }\n toString(ctx, onComment, onChompKeep) {\n return ctx?.doc\n ? stringifyPair(this, ctx, onComment, onChompKeep)\n : JSON.stringify(this);\n }\n}\n\nexport { Pair, createPair };\n","import { isCollection, isNode, isScalar, isSeq } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyPair({ key, value }, ctx, onComment, onChompKeep) {\n const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;\n let keyComment = (isNode(key) && key.comment) || null;\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n if (isCollection(key) || (!isNode(key) && typeof key === 'object')) {\n const msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n let explicitKey = !simpleKeys &&\n (!key ||\n (keyComment && value == null && !ctx.inFlow) ||\n isCollection(key) ||\n (isScalar(key)\n ? key.type === Scalar.BLOCK_FOLDED || key.type === Scalar.BLOCK_LITERAL\n : typeof key === 'object'));\n ctx = Object.assign({}, ctx, {\n allNullValues: false,\n implicitKey: !explicitKey && (simpleKeys || !allNullValues),\n indent: indent + indentStep\n });\n let keyCommentDone = false;\n let chompKeep = false;\n let str = stringify(key, ctx, () => (keyCommentDone = true), () => (chompKeep = true));\n if (!explicitKey && !ctx.inFlow && str.length > 1024) {\n if (simpleKeys)\n throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n if (ctx.inFlow) {\n if (allNullValues || value == null) {\n if (keyCommentDone && onComment)\n onComment();\n return str === '' ? '?' : explicitKey ? `? ${str}` : str;\n }\n }\n else if ((allNullValues && !simpleKeys) || (value == null && explicitKey)) {\n str = `? ${str}`;\n if (keyComment && !keyCommentDone) {\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n }\n if (keyCommentDone)\n keyComment = null;\n if (explicitKey) {\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n str = `? ${str}\\n${indent}:`;\n }\n else {\n str = `${str}:`;\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n let vsb, vcb, valueComment;\n if (isNode(value)) {\n vsb = !!value.spaceBefore;\n vcb = value.commentBefore;\n valueComment = value.comment;\n }\n else {\n vsb = false;\n vcb = null;\n valueComment = null;\n if (value && typeof value === 'object')\n value = doc.createNode(value);\n }\n ctx.implicitKey = false;\n if (!explicitKey && !keyComment && isScalar(value))\n ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n if (!indentSeq &&\n indentStep.length >= 2 &&\n !ctx.inFlow &&\n !explicitKey &&\n isSeq(value) &&\n !value.flow &&\n !value.tag &&\n !value.anchor) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substring(2);\n }\n let valueCommentDone = false;\n const valueStr = stringify(value, ctx, () => (valueCommentDone = true), () => (chompKeep = true));\n let ws = ' ';\n if (keyComment || vsb || vcb) {\n ws = vsb ? '\\n' : '';\n if (vcb) {\n const cs = commentString(vcb);\n ws += `\\n${indentComment(cs, ctx.indent)}`;\n }\n if (valueStr === '' && !ctx.inFlow) {\n if (ws === '\\n' && valueComment)\n ws = '\\n\\n';\n }\n else {\n ws += `\\n${ctx.indent}`;\n }\n }\n else if (!explicitKey && isCollection(value)) {\n const vs0 = valueStr[0];\n const nl0 = valueStr.indexOf('\\n');\n const hasNewline = nl0 !== -1;\n const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;\n if (hasNewline || !flow) {\n let hasPropsLine = false;\n if (hasNewline && (vs0 === '&' || vs0 === '!')) {\n let sp0 = valueStr.indexOf(' ');\n if (vs0 === '&' &&\n sp0 !== -1 &&\n sp0 < nl0 &&\n valueStr[sp0 + 1] === '!') {\n sp0 = valueStr.indexOf(' ', sp0 + 1);\n }\n if (sp0 === -1 || nl0 < sp0)\n hasPropsLine = true;\n }\n if (!hasPropsLine)\n ws = `\\n${ctx.indent}`;\n }\n }\n else if (valueStr === '' || valueStr[0] === '\\n') {\n ws = '';\n }\n str += ws + valueStr;\n if (ctx.inFlow) {\n if (valueCommentDone && onComment)\n onComment();\n }\n else if (valueComment && !valueCommentDone) {\n str += lineComment(str, ctx.indent, commentString(valueComment));\n }\n else if (chompKeep && onChompKeep) {\n onChompKeep();\n }\n return str;\n}\n\nexport { stringifyPair };\n","import { isNode, isPair } from '../nodes/identity.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyCollection(collection, ctx, options) {\n const flow = ctx.inFlow ?? collection.flow;\n const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;\n return stringify(collection, ctx, options);\n}\nfunction stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {\n const { indent, options: { commentString } } = ctx;\n const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });\n let chompKeep = false; // flag for the preceding node's status\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (!chompKeep && item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, chompKeep);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (!chompKeep && ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);\n }\n }\n chompKeep = false;\n let str = stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (chompKeep && comment)\n chompKeep = false;\n lines.push(blockItemPrefix + str);\n }\n let str;\n if (lines.length === 0) {\n str = flowChars.start + flowChars.end;\n }\n else {\n str = lines[0];\n for (let i = 1; i < lines.length; ++i) {\n const line = lines[i];\n str += line ? `\\n${indent}${line}` : '\\n';\n }\n }\n if (comment) {\n str += '\\n' + indentComment(commentString(comment), indent);\n if (onComment)\n onComment();\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n}\nfunction stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {\n const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;\n itemIndent += indentStep;\n const itemCtx = Object.assign({}, ctx, {\n indent: itemIndent,\n inFlow: true,\n type: null\n });\n let reqNewline = false;\n let linesAtValue = 0;\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, false);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, false);\n if (ik.comment)\n reqNewline = true;\n }\n const iv = isNode(item.value) ? item.value : null;\n if (iv) {\n if (iv.comment)\n comment = iv.comment;\n if (iv.commentBefore)\n reqNewline = true;\n }\n else if (item.value == null && ik?.comment) {\n comment = ik.comment;\n }\n }\n if (comment)\n reqNewline = true;\n let str = stringify(item, itemCtx, () => (comment = null));\n reqNewline || (reqNewline = lines.length > linesAtValue || str.includes('\\n'));\n if (i < items.length - 1) {\n str += ',';\n }\n else if (ctx.options.trailingComma) {\n if (ctx.options.lineWidth > 0) {\n reqNewline || (reqNewline = lines.reduce((sum, line) => sum + line.length + 2, 2) +\n (str.length + 2) >\n ctx.options.lineWidth);\n }\n if (reqNewline) {\n str += ',';\n }\n }\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n lines.push(str);\n linesAtValue = lines.length;\n }\n const { start, end } = flowChars;\n if (lines.length === 0) {\n return start + end;\n }\n else {\n if (!reqNewline) {\n const len = lines.reduce((sum, line) => sum + line.length + 2, 2);\n reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;\n }\n if (reqNewline) {\n let str = start;\n for (const line of lines)\n str += line ? `\\n${indentStep}${indent}${line}` : '\\n';\n return `${str}\\n${indent}${end}`;\n }\n else {\n return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;\n }\n }\n}\nfunction addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {\n if (comment && chompKeep)\n comment = comment.replace(/^\\n+/, '');\n if (comment) {\n const ic = indentComment(commentString(comment), indent);\n lines.push(ic.trimStart()); // Avoid double indent on first line\n }\n}\n\nexport { stringifyCollection };\n","import { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { Collection } from './Collection.js';\nimport { MAP, isPair, isScalar } from './identity.js';\nimport { Pair, createPair } from './Pair.js';\nimport { isScalarValue } from './Scalar.js';\n\nfunction findPair(items, key) {\n const k = isScalar(key) ? key.value : key;\n for (const it of items) {\n if (isPair(it)) {\n if (it.key === key || it.key === k)\n return it;\n if (isScalar(it.key) && it.key.value === k)\n return it;\n }\n }\n return undefined;\n}\nclass YAMLMap extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:map';\n }\n constructor(schema) {\n super(MAP, schema);\n this.items = [];\n }\n /**\n * A generic collection parsing method that can be extended\n * to other node classes that inherit from YAMLMap\n */\n static from(schema, obj, ctx) {\n const { keepUndefined, replacer } = ctx;\n const map = new this(schema);\n const add = (key, value) => {\n if (typeof replacer === 'function')\n value = replacer.call(obj, key, value);\n else if (Array.isArray(replacer) && !replacer.includes(key))\n return;\n if (value !== undefined || keepUndefined)\n map.items.push(createPair(key, value, ctx));\n };\n if (obj instanceof Map) {\n for (const [key, value] of obj)\n add(key, value);\n }\n else if (obj && typeof obj === 'object') {\n for (const key of Object.keys(obj))\n add(key, obj[key]);\n }\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n return map;\n }\n /**\n * Adds a value to the collection.\n *\n * @param overwrite - If not set `true`, using a key that is already in the\n * collection will throw. Otherwise, overwrites the previous value.\n */\n add(pair, overwrite) {\n let _pair;\n if (isPair(pair))\n _pair = pair;\n else if (!pair || typeof pair !== 'object' || !('key' in pair)) {\n // In TypeScript, this never happens.\n _pair = new Pair(pair, pair?.value);\n }\n else\n _pair = new Pair(pair.key, pair.value);\n const prev = findPair(this.items, _pair.key);\n const sortEntries = this.schema?.sortMapEntries;\n if (prev) {\n if (!overwrite)\n throw new Error(`Key ${_pair.key} already set`);\n // For scalars, keep the old node & its comments and anchors\n if (isScalar(prev.value) && isScalarValue(_pair.value))\n prev.value.value = _pair.value;\n else\n prev.value = _pair.value;\n }\n else if (sortEntries) {\n const i = this.items.findIndex(item => sortEntries(_pair, item) < 0);\n if (i === -1)\n this.items.push(_pair);\n else\n this.items.splice(i, 0, _pair);\n }\n else {\n this.items.push(_pair);\n }\n }\n delete(key) {\n const it = findPair(this.items, key);\n if (!it)\n return false;\n const del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const it = findPair(this.items, key);\n const node = it?.value;\n return (!keepScalar && isScalar(node) ? node.value : node) ?? undefined;\n }\n has(key) {\n return !!findPair(this.items, key);\n }\n set(key, value) {\n this.add(new Pair(key, value), true);\n }\n /**\n * @param ctx - Conversion context, originally set in Document#toJS()\n * @param {Class} Type - If set, forces the returned collection type\n * @returns Instance of Type, Map, or Object\n */\n toJSON(_, ctx, Type) {\n const map = Type ? new Type() : ctx?.mapAsMap ? new Map() : {};\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const item of this.items)\n addPairToJSMap(ctx, map, item);\n return map;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n for (const item of this.items) {\n if (!isPair(item))\n throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n }\n if (!ctx.allNullValues && this.hasAllNullValues(false))\n ctx = Object.assign({}, ctx, { allNullValues: true });\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '',\n flowChars: { start: '{', end: '}' },\n itemIndent: ctx.indent || '',\n onChompKeep,\n onComment\n });\n }\n}\n\nexport { YAMLMap, findPair };\n","import { isMap } from '../../nodes/identity.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\n\nconst map = {\n collection: 'map',\n default: true,\n nodeClass: YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve(map, onError) {\n if (!isMap(map))\n onError('Expected a mapping for this tag');\n return map;\n },\n createNode: (schema, obj, ctx) => YAMLMap.from(schema, obj, ctx)\n};\n\nexport { map };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { Collection } from './Collection.js';\nimport { SEQ, isScalar } from './identity.js';\nimport { isScalarValue } from './Scalar.js';\nimport { toJS } from './toJS.js';\n\nclass YAMLSeq extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:seq';\n }\n constructor(schema) {\n super(SEQ, schema);\n this.items = [];\n }\n add(value) {\n this.items.push(value);\n }\n /**\n * Removes a value from the collection.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n *\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return false;\n const del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return undefined;\n const it = this.items[idx];\n return !keepScalar && isScalar(it) ? it.value : it;\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n */\n has(key) {\n const idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n *\n * If `key` does not contain a representation of an integer, this will throw.\n * It may be wrapped in a `Scalar`.\n */\n set(key, value) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n throw new Error(`Expected a valid index, not ${key}.`);\n const prev = this.items[idx];\n if (isScalar(prev) && isScalarValue(value))\n prev.value = value;\n else\n this.items[idx] = value;\n }\n toJSON(_, ctx) {\n const seq = [];\n if (ctx?.onCreate)\n ctx.onCreate(seq);\n let i = 0;\n for (const item of this.items)\n seq.push(toJS(item, String(i++), ctx));\n return seq;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '- ',\n flowChars: { start: '[', end: ']' },\n itemIndent: (ctx.indent || '') + ' ',\n onChompKeep,\n onComment\n });\n }\n static from(schema, obj, ctx) {\n const { replacer } = ctx;\n const seq = new this(schema);\n if (obj && Symbol.iterator in Object(obj)) {\n let i = 0;\n for (let it of obj) {\n if (typeof replacer === 'function') {\n const key = obj instanceof Set ? it : String(i++);\n it = replacer.call(obj, key, it);\n }\n seq.items.push(createNode(it, undefined, ctx));\n }\n }\n return seq;\n }\n}\nfunction asItemIndex(key) {\n let idx = isScalar(key) ? key.value : key;\n if (idx && typeof idx === 'string')\n idx = Number(idx);\n return typeof idx === 'number' && Number.isInteger(idx) && idx >= 0\n ? idx\n : null;\n}\n\nexport { YAMLSeq };\n","import { isSeq } from '../../nodes/identity.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nconst seq = {\n collection: 'seq',\n default: true,\n nodeClass: YAMLSeq,\n tag: 'tag:yaml.org,2002:seq',\n resolve(seq, onError) {\n if (!isSeq(seq))\n onError('Expected a sequence for this tag');\n return seq;\n },\n createNode: (schema, obj, ctx) => YAMLSeq.from(schema, obj, ctx)\n};\n\nexport { seq };\n","import { stringifyString } from '../../stringify/stringifyString.js';\n\nconst string = {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify(item, ctx, onComment, onChompKeep) {\n ctx = Object.assign({ actualString: true }, ctx);\n return stringifyString(item, ctx, onComment, onChompKeep);\n }\n};\n\nexport { string };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst nullTag = {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: () => new Scalar(null),\n stringify: ({ source }, ctx) => typeof source === 'string' && nullTag.test.test(source)\n ? source\n : ctx.options.nullStr\n};\n\nexport { nullTag };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst boolTag = {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n resolve: str => new Scalar(str[0] === 't' || str[0] === 'T'),\n stringify({ source, value }, ctx) {\n if (source && boolTag.test.test(source)) {\n const sv = source[0] === 't' || source[0] === 'T';\n if (value === sv)\n return source;\n }\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n }\n};\n\nexport { boolTag };\n","function stringifyNumber({ format, minFractionDigits, tag, value }) {\n if (typeof value === 'bigint')\n return String(value);\n const num = typeof value === 'number' ? value : Number(value);\n if (!isFinite(num))\n return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf';\n let n = Object.is(value, -0) ? '-0' : JSON.stringify(value);\n if (!format &&\n minFractionDigits &&\n (!tag || tag === 'tag:yaml.org,2002:float') &&\n /^-?\\d/.test(n) &&\n !n.includes('e')) {\n let i = n.indexOf('.');\n if (i < 0) {\n i = n.length;\n n += '.';\n }\n let d = minFractionDigits - (n.length - i - 1);\n while (d-- > 0)\n n += '0';\n }\n return n;\n}\n\nexport { stringifyNumber };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: str => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n resolve: str => parseFloat(str),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str));\n const dot = str.indexOf('.');\n if (dot !== -1 && str[str.length - 1] === '0')\n node.minFractionDigits = str.length - dot - 1;\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nconst intResolve = (str, offset, radix, { intAsBigInt }) => (intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix));\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value) && value >= 0)\n return prefix + value.toString(radix);\n return stringifyNumber(node);\n}\nconst intOct = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^0o[0-7]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 8, opt),\n stringify: node => intStringify(node, 8, '0o')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^0x[0-9a-fA-F]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intHex, intOct };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { boolTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intOct, int, intHex } from './int.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n boolTag,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float\n];\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { map } from '../common/map.js';\nimport { seq } from '../common/seq.js';\n\nfunction intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n}\nconst stringifyJSON = ({ value }) => JSON.stringify(value);\nconst jsonScalars = [\n {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify: stringifyJSON\n },\n {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^null$/,\n resolve: () => null,\n stringify: stringifyJSON\n },\n {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^true$|^false$/,\n resolve: str => str === 'true',\n stringify: stringifyJSON\n },\n {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^-?(?:0|[1-9][0-9]*)$/,\n resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10),\n stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value)\n },\n {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n resolve: str => parseFloat(str),\n stringify: stringifyJSON\n }\n];\nconst jsonError = {\n default: true,\n tag: '',\n test: /^/,\n resolve(str, onError) {\n onError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n return str;\n }\n};\nconst schema = [map, seq].concat(jsonScalars, jsonError);\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyString } from '../../stringify/stringifyString.js';\n\nconst binary = {\n identify: value => value instanceof Uint8Array, // Buffer inherits from Uint8Array\n default: false,\n tag: 'tag:yaml.org,2002:binary',\n /**\n * Returns a Buffer in node and an Uint8Array in browsers\n *\n * To use the resulting buffer as an image, you'll want to do something like:\n *\n * const blob = new Blob([buffer], { type: 'image/jpeg' })\n * document.querySelector('#photo').src = URL.createObjectURL(blob)\n */\n resolve(src, onError) {\n if (typeof atob === 'function') {\n // On IE 11, atob() can't handle newlines\n const str = atob(src.replace(/[\\n\\r]/g, ''));\n const buffer = new Uint8Array(str.length);\n for (let i = 0; i < str.length; ++i)\n buffer[i] = str.charCodeAt(i);\n return buffer;\n }\n else {\n onError('This environment does not support reading binary tags; either Buffer or atob is required');\n return src;\n }\n },\n stringify({ comment, type, value }, ctx, onComment, onChompKeep) {\n if (!value)\n return '';\n const buf = value; // checked earlier by binary.identify()\n let str;\n if (typeof btoa === 'function') {\n let s = '';\n for (let i = 0; i < buf.length; ++i)\n s += String.fromCharCode(buf[i]);\n str = btoa(s);\n }\n else {\n throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n }\n type ?? (type = Scalar.BLOCK_LITERAL);\n if (type !== Scalar.QUOTE_DOUBLE) {\n const lineWidth = Math.max(ctx.options.lineWidth - ctx.indent.length, ctx.options.minContentWidth);\n const n = Math.ceil(str.length / lineWidth);\n const lines = new Array(n);\n for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n lines[i] = str.substr(o, lineWidth);\n }\n str = lines.join(type === Scalar.BLOCK_LITERAL ? '\\n' : ' ');\n }\n return stringifyString({ comment, type, value: str }, ctx, onComment, onChompKeep);\n }\n};\n\nexport { binary };\n","import { isSeq, isPair, isMap } from '../../nodes/identity.js';\nimport { createPair, Pair } from '../../nodes/Pair.js';\nimport { Scalar } from '../../nodes/Scalar.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nfunction resolvePairs(seq, onError) {\n if (isSeq(seq)) {\n for (let i = 0; i < seq.items.length; ++i) {\n let item = seq.items[i];\n if (isPair(item))\n continue;\n else if (isMap(item)) {\n if (item.items.length > 1)\n onError('Each pair must have its own sequence indicator');\n const pair = item.items[0] || new Pair(new Scalar(null));\n if (item.commentBefore)\n pair.key.commentBefore = pair.key.commentBefore\n ? `${item.commentBefore}\\n${pair.key.commentBefore}`\n : item.commentBefore;\n if (item.comment) {\n const cn = pair.value ?? pair.key;\n cn.comment = cn.comment\n ? `${item.comment}\\n${cn.comment}`\n : item.comment;\n }\n item = pair;\n }\n seq.items[i] = isPair(item) ? item : new Pair(item);\n }\n }\n else\n onError('Expected a sequence for this tag');\n return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n const { replacer } = ctx;\n const pairs = new YAMLSeq(schema);\n pairs.tag = 'tag:yaml.org,2002:pairs';\n let i = 0;\n if (iterable && Symbol.iterator in Object(iterable))\n for (let it of iterable) {\n if (typeof replacer === 'function')\n it = replacer.call(iterable, String(i++), it);\n let key, value;\n if (Array.isArray(it)) {\n if (it.length === 2) {\n key = it[0];\n value = it[1];\n }\n else\n throw new TypeError(`Expected [key, value] tuple: ${it}`);\n }\n else if (it && it instanceof Object) {\n const keys = Object.keys(it);\n if (keys.length === 1) {\n key = keys[0];\n value = it[key];\n }\n else {\n throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);\n }\n }\n else {\n key = it;\n }\n pairs.items.push(createPair(key, value, ctx));\n }\n return pairs;\n}\nconst pairs = {\n collection: 'seq',\n default: false,\n tag: 'tag:yaml.org,2002:pairs',\n resolve: resolvePairs,\n createNode: createPairs\n};\n\nexport { createPairs, pairs, resolvePairs };\n","import { isScalar, isPair } from '../../nodes/identity.js';\nimport { toJS } from '../../nodes/toJS.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\nimport { resolvePairs, createPairs } from './pairs.js';\n\nclass YAMLOMap extends YAMLSeq {\n constructor() {\n super();\n this.add = YAMLMap.prototype.add.bind(this);\n this.delete = YAMLMap.prototype.delete.bind(this);\n this.get = YAMLMap.prototype.get.bind(this);\n this.has = YAMLMap.prototype.has.bind(this);\n this.set = YAMLMap.prototype.set.bind(this);\n this.tag = YAMLOMap.tag;\n }\n /**\n * If `ctx` is given, the return type is actually `Map<unknown, unknown>`,\n * but TypeScript won't allow widening the signature of a child method.\n */\n toJSON(_, ctx) {\n if (!ctx)\n return super.toJSON(_);\n const map = new Map();\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const pair of this.items) {\n let key, value;\n if (isPair(pair)) {\n key = toJS(pair.key, '', ctx);\n value = toJS(pair.value, key, ctx);\n }\n else {\n key = toJS(pair, '', ctx);\n }\n if (map.has(key))\n throw new Error('Ordered maps must not include duplicate keys');\n map.set(key, value);\n }\n return map;\n }\n static from(schema, iterable, ctx) {\n const pairs = createPairs(schema, iterable, ctx);\n const omap = new this();\n omap.items = pairs.items;\n return omap;\n }\n}\nYAMLOMap.tag = 'tag:yaml.org,2002:omap';\nconst omap = {\n collection: 'seq',\n identify: value => value instanceof Map,\n nodeClass: YAMLOMap,\n default: false,\n tag: 'tag:yaml.org,2002:omap',\n resolve(seq, onError) {\n const pairs = resolvePairs(seq, onError);\n const seenKeys = [];\n for (const { key } of pairs.items) {\n if (isScalar(key)) {\n if (seenKeys.includes(key.value)) {\n onError(`Ordered maps must not include duplicate keys: ${key.value}`);\n }\n else {\n seenKeys.push(key.value);\n }\n }\n }\n return Object.assign(new YAMLOMap(), pairs);\n },\n createNode: (schema, iterable, ctx) => YAMLOMap.from(schema, iterable, ctx)\n};\n\nexport { YAMLOMap, omap };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nfunction boolStringify({ value, source }, ctx) {\n const boolObj = value ? trueTag : falseTag;\n if (source && boolObj.test.test(source))\n return source;\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n}\nconst trueTag = {\n identify: value => value === true,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n resolve: () => new Scalar(true),\n stringify: boolStringify\n};\nconst falseTag = {\n identify: value => value === false,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,\n resolve: () => new Scalar(false),\n stringify: boolStringify\n};\n\nexport { falseTag, trueTag };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: (str) => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n resolve: (str) => parseFloat(str.replace(/_/g, '')),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str.replace(/_/g, '')));\n const dot = str.indexOf('.');\n if (dot !== -1) {\n const f = str.substring(dot + 1).replace(/_/g, '');\n if (f[f.length - 1] === '0')\n node.minFractionDigits = f.length;\n }\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nfunction intResolve(str, offset, radix, { intAsBigInt }) {\n const sign = str[0];\n if (sign === '-' || sign === '+')\n offset += 1;\n str = str.substring(offset).replace(/_/g, '');\n if (intAsBigInt) {\n switch (radix) {\n case 2:\n str = `0b${str}`;\n break;\n case 8:\n str = `0o${str}`;\n break;\n case 16:\n str = `0x${str}`;\n break;\n }\n const n = BigInt(str);\n return sign === '-' ? BigInt(-1) * n : n;\n }\n const n = parseInt(str, radix);\n return sign === '-' ? -1 * n : n;\n}\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value)) {\n const str = value.toString(radix);\n return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n }\n return stringifyNumber(node);\n}\nconst intBin = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'BIN',\n test: /^[-+]?0b[0-1_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 2, opt),\n stringify: node => intStringify(node, 2, '0b')\n};\nconst intOct = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^[-+]?0[0-7_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 1, 8, opt),\n stringify: node => intStringify(node, 8, '0')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9][0-9_]*$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^[-+]?0x[0-9a-fA-F_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intBin, intHex, intOct };\n","import { isMap, isPair, isScalar } from '../../nodes/identity.js';\nimport { Pair, createPair } from '../../nodes/Pair.js';\nimport { YAMLMap, findPair } from '../../nodes/YAMLMap.js';\n\nclass YAMLSet extends YAMLMap {\n constructor(schema) {\n super(schema);\n this.tag = YAMLSet.tag;\n }\n add(key) {\n let pair;\n if (isPair(key))\n pair = key;\n else if (key &&\n typeof key === 'object' &&\n 'key' in key &&\n 'value' in key &&\n key.value === null)\n pair = new Pair(key.key, null);\n else\n pair = new Pair(key, null);\n const prev = findPair(this.items, pair.key);\n if (!prev)\n this.items.push(pair);\n }\n /**\n * If `keepPair` is `true`, returns the Pair matching `key`.\n * Otherwise, returns the value of that Pair's key.\n */\n get(key, keepPair) {\n const pair = findPair(this.items, key);\n return !keepPair && isPair(pair)\n ? isScalar(pair.key)\n ? pair.key.value\n : pair.key\n : pair;\n }\n set(key, value) {\n if (typeof value !== 'boolean')\n throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n const prev = findPair(this.items, key);\n if (prev && !value) {\n this.items.splice(this.items.indexOf(prev), 1);\n }\n else if (!prev && value) {\n this.items.push(new Pair(key));\n }\n }\n toJSON(_, ctx) {\n return super.toJSON(_, ctx, Set);\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n if (this.hasAllNullValues(true))\n return super.toString(Object.assign({}, ctx, { allNullValues: true }), onComment, onChompKeep);\n else\n throw new Error('Set items must all have null values');\n }\n static from(schema, iterable, ctx) {\n const { replacer } = ctx;\n const set = new this(schema);\n if (iterable && Symbol.iterator in Object(iterable))\n for (let value of iterable) {\n if (typeof replacer === 'function')\n value = replacer.call(iterable, value, value);\n set.items.push(createPair(value, null, ctx));\n }\n return set;\n }\n}\nYAMLSet.tag = 'tag:yaml.org,2002:set';\nconst set = {\n collection: 'map',\n identify: value => value instanceof Set,\n nodeClass: YAMLSet,\n default: false,\n tag: 'tag:yaml.org,2002:set',\n createNode: (schema, iterable, ctx) => YAMLSet.from(schema, iterable, ctx),\n resolve(map, onError) {\n if (isMap(map)) {\n if (map.hasAllNullValues(true))\n return Object.assign(new YAMLSet(), map);\n else\n onError('Set items must all have null values');\n }\n else\n onError('Expected a mapping for this tag');\n return map;\n }\n};\n\nexport { YAMLSet, set };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\n/** Internal types handle bigint as number, because TS can't figure it out. */\nfunction parseSexagesimal(str, asBigInt) {\n const sign = str[0];\n const parts = sign === '-' || sign === '+' ? str.substring(1) : str;\n const num = (n) => asBigInt ? BigInt(n) : Number(n);\n const res = parts\n .replace(/_/g, '')\n .split(':')\n .reduce((res, p) => res * num(60) + num(p), num(0));\n return (sign === '-' ? num(-1) * res : res);\n}\n/**\n * hhhh:mm:ss.sss\n *\n * Internal types handle bigint as number, because TS can't figure it out.\n */\nfunction stringifySexagesimal(node) {\n let { value } = node;\n let num = (n) => n;\n if (typeof value === 'bigint')\n num = n => BigInt(n);\n else if (isNaN(value) || !isFinite(value))\n return stringifyNumber(node);\n let sign = '';\n if (value < 0) {\n sign = '-';\n value *= num(-1);\n }\n const _60 = num(60);\n const parts = [value % _60]; // seconds, including ms\n if (value < 60) {\n parts.unshift(0); // at least one : is required\n }\n else {\n value = (value - parts[0]) / _60;\n parts.unshift(value % _60); // minutes\n if (value >= 60) {\n value = (value - parts[0]) / _60;\n parts.unshift(value); // hours\n }\n }\n return (sign +\n parts\n .map(n => String(n).padStart(2, '0'))\n .join(':')\n .replace(/000000\\d*$/, '') // % 60 may introduce error\n );\n}\nconst intTime = {\n identify: value => typeof value === 'bigint' || Number.isInteger(value),\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,\n resolve: (str, _onError, { intAsBigInt }) => parseSexagesimal(str, intAsBigInt),\n stringify: stringifySexagesimal\n};\nconst floatTime = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,\n resolve: str => parseSexagesimal(str, false),\n stringify: stringifySexagesimal\n};\nconst timestamp = {\n identify: value => value instanceof Date,\n default: true,\n tag: 'tag:yaml.org,2002:timestamp',\n // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n // may be omitted altogether, resulting in a date format. In such a case, the time part is\n // assumed to be 00:00:00Z (start of day, UTC).\n test: RegExp('^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n '(?:' + // time is optional\n '(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n ')?$'),\n resolve(str) {\n const match = str.match(timestamp.test);\n if (!match)\n throw new Error('!!timestamp expects a date, starting with yyyy-mm-dd');\n const [, year, month, day, hour, minute, second] = match.map(Number);\n const millisec = match[7] ? Number((match[7] + '00').substr(1, 3)) : 0;\n let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec);\n const tz = match[8];\n if (tz && tz !== 'Z') {\n let d = parseSexagesimal(tz, false);\n if (Math.abs(d) < 30)\n d *= 60;\n date -= 60000 * d;\n }\n return new Date(date);\n },\n stringify: ({ value }) => value?.toISOString().replace(/(T00:00:00)?\\.000Z$/, '') ?? ''\n};\n\nexport { floatTime, intTime, timestamp };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { binary } from './binary.js';\nimport { trueTag, falseTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intBin, intOct, int, intHex } from './int.js';\nimport { merge } from './merge.js';\nimport { omap } from './omap.js';\nimport { pairs } from './pairs.js';\nimport { set } from './set.js';\nimport { intTime, floatTime, timestamp } from './timestamp.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n trueTag,\n falseTag,\n intBin,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float,\n binary,\n merge,\n omap,\n pairs,\n set,\n intTime,\n floatTime,\n timestamp\n];\n\nexport { schema };\n","import { map } from './common/map.js';\nimport { nullTag } from './common/null.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { boolTag } from './core/bool.js';\nimport { floatNaN, floatExp, float } from './core/float.js';\nimport { intOct, intHex, int } from './core/int.js';\nimport { schema } from './core/schema.js';\nimport { schema as schema$1 } from './json/schema.js';\nimport { binary } from './yaml-1.1/binary.js';\nimport { merge } from './yaml-1.1/merge.js';\nimport { omap } from './yaml-1.1/omap.js';\nimport { pairs } from './yaml-1.1/pairs.js';\nimport { schema as schema$2 } from './yaml-1.1/schema.js';\nimport { set } from './yaml-1.1/set.js';\nimport { timestamp, intTime, floatTime } from './yaml-1.1/timestamp.js';\n\nconst schemas = new Map([\n ['core', schema],\n ['failsafe', [map, seq, string]],\n ['json', schema$1],\n ['yaml11', schema$2],\n ['yaml-1.1', schema$2]\n]);\nconst tagsByName = {\n binary,\n bool: boolTag,\n float,\n floatExp,\n floatNaN,\n floatTime,\n int,\n intHex,\n intOct,\n intTime,\n map,\n merge,\n null: nullTag,\n omap,\n pairs,\n seq,\n set,\n timestamp\n};\nconst coreKnownTags = {\n 'tag:yaml.org,2002:binary': binary,\n 'tag:yaml.org,2002:merge': merge,\n 'tag:yaml.org,2002:omap': omap,\n 'tag:yaml.org,2002:pairs': pairs,\n 'tag:yaml.org,2002:set': set,\n 'tag:yaml.org,2002:timestamp': timestamp\n};\nfunction getTags(customTags, schemaName, addMergeTag) {\n const schemaTags = schemas.get(schemaName);\n if (schemaTags && !customTags) {\n return addMergeTag && !schemaTags.includes(merge)\n ? schemaTags.concat(merge)\n : schemaTags.slice();\n }\n let tags = schemaTags;\n if (!tags) {\n if (Array.isArray(customTags))\n tags = [];\n else {\n const keys = Array.from(schemas.keys())\n .filter(key => key !== 'yaml11')\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown schema \"${schemaName}\"; use one of ${keys} or define customTags array`);\n }\n }\n if (Array.isArray(customTags)) {\n for (const tag of customTags)\n tags = tags.concat(tag);\n }\n else if (typeof customTags === 'function') {\n tags = customTags(tags.slice());\n }\n if (addMergeTag)\n tags = tags.concat(merge);\n return tags.reduce((tags, tag) => {\n const tagObj = typeof tag === 'string' ? tagsByName[tag] : tag;\n if (!tagObj) {\n const tagName = JSON.stringify(tag);\n const keys = Object.keys(tagsByName)\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown custom tag ${tagName}; use one of ${keys}`);\n }\n if (!tags.includes(tagObj))\n tags.push(tagObj);\n return tags;\n }, []);\n}\n\nexport { coreKnownTags, getTags };\n","import { MAP, SCALAR, SEQ } from '../nodes/identity.js';\nimport { map } from './common/map.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { getTags, coreKnownTags } from './tags.js';\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\nclass Schema {\n constructor({ compat, customTags, merge, resolveKnownTags, schema, sortMapEntries, toStringDefaults }) {\n this.compat = Array.isArray(compat)\n ? getTags(compat, 'compat')\n : compat\n ? getTags(null, compat)\n : null;\n this.name = (typeof schema === 'string' && schema) || 'core';\n this.knownTags = resolveKnownTags ? coreKnownTags : {};\n this.tags = getTags(customTags, this.name, merge);\n this.toStringOptions = toStringDefaults ?? null;\n Object.defineProperty(this, MAP, { value: map });\n Object.defineProperty(this, SCALAR, { value: string });\n Object.defineProperty(this, SEQ, { value: seq });\n // Used by createMap()\n this.sortMapEntries =\n typeof sortMapEntries === 'function'\n ? sortMapEntries\n : sortMapEntries === true\n ? sortMapEntriesByKey\n : null;\n }\n clone() {\n const copy = Object.create(Schema.prototype, Object.getOwnPropertyDescriptors(this));\n copy.tags = this.tags.slice();\n return copy;\n }\n}\n\nexport { Schema };\n","import { Alias } from '../nodes/Alias.js';\nimport { isEmptyPath, collectionFromPath } from '../nodes/Collection.js';\nimport { NODE_TYPE, DOC, isNode, isCollection, isScalar } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { toJS } from '../nodes/toJS.js';\nimport { Schema } from '../schema/Schema.js';\nimport { stringifyDocument } from '../stringify/stringifyDocument.js';\nimport { anchorNames, findNewAnchor, createNodeAnchors } from './anchors.js';\nimport { applyReviver } from './applyReviver.js';\nimport { createNode } from './createNode.js';\nimport { Directives } from './directives.js';\n\nclass Document {\n constructor(value, replacer, options) {\n /** A comment before this Document */\n this.commentBefore = null;\n /** A comment immediately after this Document */\n this.comment = null;\n /** Errors encountered during parsing. */\n this.errors = [];\n /** Warnings encountered during parsing. */\n this.warnings = [];\n Object.defineProperty(this, NODE_TYPE, { value: DOC });\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const opt = Object.assign({\n intAsBigInt: false,\n keepSourceTokens: false,\n logLevel: 'warn',\n prettyErrors: true,\n strict: true,\n stringKeys: false,\n uniqueKeys: true,\n version: '1.2'\n }, options);\n this.options = opt;\n let { version } = opt;\n if (options?._directives) {\n this.directives = options._directives.atDocument();\n if (this.directives.yaml.explicit)\n version = this.directives.yaml.version;\n }\n else\n this.directives = new Directives({ version });\n this.setSchema(version, options);\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents =\n value === undefined ? null : this.createNode(value, _replacer, options);\n }\n /**\n * Create a deep copy of this Document and its contents.\n *\n * Custom Node values that inherit from `Object` still refer to their original instances.\n */\n clone() {\n const copy = Object.create(Document.prototype, {\n [NODE_TYPE]: { value: DOC }\n });\n copy.commentBefore = this.commentBefore;\n copy.comment = this.comment;\n copy.errors = this.errors.slice();\n copy.warnings = this.warnings.slice();\n copy.options = Object.assign({}, this.options);\n if (this.directives)\n copy.directives = this.directives.clone();\n copy.schema = this.schema.clone();\n // @ts-expect-error We can't really know that this matches Contents.\n copy.contents = isNode(this.contents)\n ? this.contents.clone(copy.schema)\n : this.contents;\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** Adds a value to the document. */\n add(value) {\n if (assertCollection(this.contents))\n this.contents.add(value);\n }\n /** Adds a value to the document. */\n addIn(path, value) {\n if (assertCollection(this.contents))\n this.contents.addIn(path, value);\n }\n /**\n * Create a new `Alias` node, ensuring that the target `node` has the required anchor.\n *\n * If `node` already has an anchor, `name` is ignored.\n * Otherwise, the `node.anchor` value will be set to `name`,\n * or if an anchor with that name is already present in the document,\n * `name` will be used as a prefix for a new unique anchor.\n * If `name` is undefined, the generated anchor will use 'a' as a prefix.\n */\n createAlias(node, name) {\n if (!node.anchor) {\n const prev = anchorNames(this);\n node.anchor =\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n !name || prev.has(name) ? findNewAnchor(name || 'a', prev) : name;\n }\n return new Alias(node.anchor);\n }\n createNode(value, replacer, options) {\n let _replacer = undefined;\n if (typeof replacer === 'function') {\n value = replacer.call({ '': value }, '', value);\n _replacer = replacer;\n }\n else if (Array.isArray(replacer)) {\n const keyToStr = (v) => typeof v === 'number' || v instanceof String || v instanceof Number;\n const asStr = replacer.filter(keyToStr).map(String);\n if (asStr.length > 0)\n replacer = replacer.concat(asStr);\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const { aliasDuplicateObjects, anchorPrefix, flow, keepUndefined, onTagObj, tag } = options ?? {};\n const { onAnchor, setAnchors, sourceObjects } = createNodeAnchors(this, \n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n anchorPrefix || 'a');\n const ctx = {\n aliasDuplicateObjects: aliasDuplicateObjects ?? true,\n keepUndefined: keepUndefined ?? false,\n onAnchor,\n onTagObj,\n replacer: _replacer,\n schema: this.schema,\n sourceObjects\n };\n const node = createNode(value, tag, ctx);\n if (flow && isCollection(node))\n node.flow = true;\n setAnchors();\n return node;\n }\n /**\n * Convert a key and a value into a `Pair` using the current schema,\n * recursively wrapping all values as `Scalar` or `Collection` nodes.\n */\n createPair(key, value, options = {}) {\n const k = this.createNode(key, null, options);\n const v = this.createNode(value, null, options);\n return new Pair(k, v);\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n return assertCollection(this.contents) ? this.contents.delete(key) : false;\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n if (isEmptyPath(path)) {\n if (this.contents == null)\n return false;\n // @ts-expect-error Presumed impossible if Strict extends false\n this.contents = null;\n return true;\n }\n return assertCollection(this.contents)\n ? this.contents.deleteIn(path)\n : false;\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n get(key, keepScalar) {\n return isCollection(this.contents)\n ? this.contents.get(key, keepScalar)\n : undefined;\n }\n /**\n * Returns item at `path`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n if (isEmptyPath(path))\n return !keepScalar && isScalar(this.contents)\n ? this.contents.value\n : this.contents;\n return isCollection(this.contents)\n ? this.contents.getIn(path, keepScalar)\n : undefined;\n }\n /**\n * Checks if the document includes a value with the key `key`.\n */\n has(key) {\n return isCollection(this.contents) ? this.contents.has(key) : false;\n }\n /**\n * Checks if the document includes a value at `path`.\n */\n hasIn(path) {\n if (isEmptyPath(path))\n return this.contents !== undefined;\n return isCollection(this.contents) ? this.contents.hasIn(path) : false;\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n set(key, value) {\n if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, [key], value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.set(key, value);\n }\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n if (isEmptyPath(path)) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = value;\n }\n else if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, Array.from(path), value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.setIn(path, value);\n }\n }\n /**\n * Change the YAML version and schema used by the document.\n * A `null` version disables support for directives, explicit tags, anchors, and aliases.\n * It also requires the `schema` option to be given as a `Schema` instance value.\n *\n * Overrides all previously set schema options.\n */\n setSchema(version, options = {}) {\n if (typeof version === 'number')\n version = String(version);\n let opt;\n switch (version) {\n case '1.1':\n if (this.directives)\n this.directives.yaml.version = '1.1';\n else\n this.directives = new Directives({ version: '1.1' });\n opt = { resolveKnownTags: false, schema: 'yaml-1.1' };\n break;\n case '1.2':\n case 'next':\n if (this.directives)\n this.directives.yaml.version = version;\n else\n this.directives = new Directives({ version });\n opt = { resolveKnownTags: true, schema: 'core' };\n break;\n case null:\n if (this.directives)\n delete this.directives;\n opt = null;\n break;\n default: {\n const sv = JSON.stringify(version);\n throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${sv}`);\n }\n }\n // Not using `instanceof Schema` to allow for duck typing\n if (options.schema instanceof Object)\n this.schema = options.schema;\n else if (opt)\n this.schema = new Schema(Object.assign(opt, options));\n else\n throw new Error(`With a null YAML version, the { schema: Schema } option is required`);\n }\n // json & jsonArg are only used from toJSON()\n toJS({ json, jsonArg, mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n const ctx = {\n anchors: new Map(),\n doc: this,\n keep: !json,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this.contents, jsonArg ?? '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n /**\n * A JSON representation of the document `contents`.\n *\n * @param jsonArg Used by `JSON.stringify` to indicate the array index or\n * property name.\n */\n toJSON(jsonArg, onAnchor) {\n return this.toJS({ json: true, jsonArg, mapAsMap: false, onAnchor });\n }\n /** A YAML representation of the document. */\n toString(options = {}) {\n if (this.errors.length > 0)\n throw new Error('Document with errors cannot be stringified');\n if ('indent' in options &&\n (!Number.isInteger(options.indent) || Number(options.indent) <= 0)) {\n const s = JSON.stringify(options.indent);\n throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n }\n return stringifyDocument(this, options);\n }\n}\nfunction assertCollection(contents) {\n if (isCollection(contents))\n return true;\n throw new Error('Expected a YAML collection as document contents');\n}\n\nexport { Document };\n","import { isNode } from '../nodes/identity.js';\nimport { createStringifyContext, stringify } from './stringify.js';\nimport { indentComment, lineComment } from './stringifyComment.js';\n\nfunction stringifyDocument(doc, options) {\n const lines = [];\n let hasDirectives = options.directives === true;\n if (options.directives !== false && doc.directives) {\n const dir = doc.directives.toString(doc);\n if (dir) {\n lines.push(dir);\n hasDirectives = true;\n }\n else if (doc.directives.docStart)\n hasDirectives = true;\n }\n if (hasDirectives)\n lines.push('---');\n const ctx = createStringifyContext(doc, options);\n const { commentString } = ctx.options;\n if (doc.commentBefore) {\n if (lines.length !== 1)\n lines.unshift('');\n const cs = commentString(doc.commentBefore);\n lines.unshift(indentComment(cs, ''));\n }\n let chompKeep = false;\n let contentComment = null;\n if (doc.contents) {\n if (isNode(doc.contents)) {\n if (doc.contents.spaceBefore && hasDirectives)\n lines.push('');\n if (doc.contents.commentBefore) {\n const cs = commentString(doc.contents.commentBefore);\n lines.push(indentComment(cs, ''));\n }\n // top-level block scalars need to be indented if followed by a comment\n ctx.forceBlockIndent = !!doc.comment;\n contentComment = doc.contents.comment;\n }\n const onChompKeep = contentComment ? undefined : () => (chompKeep = true);\n let body = stringify(doc.contents, ctx, () => (contentComment = null), onChompKeep);\n if (contentComment)\n body += lineComment(body, '', commentString(contentComment));\n if ((body[0] === '|' || body[0] === '>') &&\n lines[lines.length - 1] === '---') {\n // Top-level block scalars with a preceding doc marker ought to use the\n // same line for their header.\n lines[lines.length - 1] = `--- ${body}`;\n }\n else\n lines.push(body);\n }\n else {\n lines.push(stringify(doc.contents, ctx));\n }\n if (doc.directives?.docEnd) {\n if (doc.comment) {\n const cs = commentString(doc.comment);\n if (cs.includes('\\n')) {\n lines.push('...');\n lines.push(indentComment(cs, ''));\n }\n else {\n lines.push(`... ${cs}`);\n }\n }\n else {\n lines.push('...');\n }\n }\n else {\n let dc = doc.comment;\n if (dc && chompKeep)\n dc = dc.replace(/^\\n+/, '');\n if (dc) {\n if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '')\n lines.push('');\n lines.push(indentComment(commentString(dc), ''));\n }\n }\n return lines.join('\\n') + '\\n';\n}\n\nexport { stringifyDocument };\n","class YAMLError extends Error {\n constructor(name, pos, code, message) {\n super();\n this.name = name;\n this.code = code;\n this.message = message;\n this.pos = pos;\n }\n}\nclass YAMLParseError extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLParseError', pos, code, message);\n }\n}\nclass YAMLWarning extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLWarning', pos, code, message);\n }\n}\nconst prettifyError = (src, lc) => (error) => {\n if (error.pos[0] === -1)\n return;\n error.linePos = error.pos.map(pos => lc.linePos(pos));\n const { line, col } = error.linePos[0];\n error.message += ` at line ${line}, column ${col}`;\n let ci = col - 1;\n let lineStr = src\n .substring(lc.lineStarts[line - 1], lc.lineStarts[line])\n .replace(/[\\n\\r]+$/, '');\n // Trim to max 80 chars, keeping col position near the middle\n if (ci >= 60 && lineStr.length > 80) {\n const trimStart = Math.min(ci - 39, lineStr.length - 79);\n lineStr = '…' + lineStr.substring(trimStart);\n ci -= trimStart - 1;\n }\n if (lineStr.length > 80)\n lineStr = lineStr.substring(0, 79) + '…';\n // Include previous line in context if pointing at line start\n if (line > 1 && /^ *$/.test(lineStr.substring(0, ci))) {\n // Regexp won't match if start is trimmed\n let prev = src.substring(lc.lineStarts[line - 2], lc.lineStarts[line - 1]);\n if (prev.length > 80)\n prev = prev.substring(0, 79) + '…\\n';\n lineStr = prev + lineStr;\n }\n if (/[^ ]/.test(lineStr)) {\n let count = 1;\n const end = error.linePos[1];\n if (end?.line === line && end.col > col) {\n count = Math.max(1, Math.min(end.col - col, 80 - ci));\n }\n const pointer = ' '.repeat(ci) + '^'.repeat(count);\n error.message += `:\\n\\n${lineStr}\\n${pointer}\\n`;\n }\n};\n\nexport { YAMLError, YAMLParseError, YAMLWarning, prettifyError };\n","function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {\n let spaceBefore = false;\n let atNewline = startOnNewline;\n let hasSpace = startOnNewline;\n let comment = '';\n let commentSep = '';\n let hasNewline = false;\n let reqSpace = false;\n let tab = null;\n let anchor = null;\n let tag = null;\n let newlineAfterProp = null;\n let comma = null;\n let found = null;\n let start = null;\n for (const token of tokens) {\n if (reqSpace) {\n if (token.type !== 'space' &&\n token.type !== 'newline' &&\n token.type !== 'comma')\n onError(token.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n reqSpace = false;\n }\n if (tab) {\n if (atNewline && token.type !== 'comment' && token.type !== 'newline') {\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n }\n tab = null;\n }\n switch (token.type) {\n case 'space':\n // At the doc level, tabs at line start may be parsed\n // as leading white space rather than indentation.\n // In a flow collection, only the parser handles indent.\n if (!flow &&\n (indicator !== 'doc-start' || next?.type !== 'flow-collection') &&\n token.source.includes('\\t')) {\n tab = token;\n }\n hasSpace = true;\n break;\n case 'comment': {\n if (!hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = token.source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += commentSep + cb;\n commentSep = '';\n atNewline = false;\n break;\n }\n case 'newline':\n if (atNewline) {\n if (comment)\n comment += token.source;\n else if (!found || indicator !== 'seq-item-ind')\n spaceBefore = true;\n }\n else\n commentSep += token.source;\n atNewline = true;\n hasNewline = true;\n if (anchor || tag)\n newlineAfterProp = token;\n hasSpace = true;\n break;\n case 'anchor':\n if (anchor)\n onError(token, 'MULTIPLE_ANCHORS', 'A node can have at most one anchor');\n if (token.source.endsWith(':'))\n onError(token.offset + token.source.length - 1, 'BAD_ALIAS', 'Anchor ending in : is ambiguous', true);\n anchor = token;\n start ?? (start = token.offset);\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n case 'tag': {\n if (tag)\n onError(token, 'MULTIPLE_TAGS', 'A node can have at most one tag');\n tag = token;\n start ?? (start = token.offset);\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n }\n case indicator:\n // Could here handle preceding comments differently\n if (anchor || tag)\n onError(token, 'BAD_PROP_ORDER', `Anchors and tags must be after the ${token.source} indicator`);\n if (found)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.source} in ${flow ?? 'collection'}`);\n found = token;\n atNewline =\n indicator === 'seq-item-ind' || indicator === 'explicit-key-ind';\n hasSpace = false;\n break;\n case 'comma':\n if (flow) {\n if (comma)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected , in ${flow}`);\n comma = token;\n atNewline = false;\n hasSpace = false;\n break;\n }\n // else fallthrough\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.type} token`);\n atNewline = false;\n hasSpace = false;\n }\n }\n const last = tokens[tokens.length - 1];\n const end = last ? last.offset + last.source.length : offset;\n if (reqSpace &&\n next &&\n next.type !== 'space' &&\n next.type !== 'newline' &&\n next.type !== 'comma' &&\n (next.type !== 'scalar' || next.source !== '')) {\n onError(next.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n }\n if (tab &&\n ((atNewline && tab.indent <= parentIndent) ||\n next?.type === 'block-map' ||\n next?.type === 'block-seq'))\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n return {\n comma,\n found,\n spaceBefore,\n comment,\n hasNewline,\n anchor,\n tag,\n newlineAfterProp,\n end,\n start: start ?? end\n };\n}\n\nexport { resolveProps };\n","function containsNewline(key) {\n if (!key)\n return null;\n switch (key.type) {\n case 'alias':\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n if (key.source.includes('\\n'))\n return true;\n if (key.end)\n for (const st of key.end)\n if (st.type === 'newline')\n return true;\n return false;\n case 'flow-collection':\n for (const it of key.items) {\n for (const st of it.start)\n if (st.type === 'newline')\n return true;\n if (it.sep)\n for (const st of it.sep)\n if (st.type === 'newline')\n return true;\n if (containsNewline(it.key) || containsNewline(it.value))\n return true;\n }\n return false;\n default:\n return true;\n }\n}\n\nexport { containsNewline };\n","import { containsNewline } from './util-contains-newline.js';\n\nfunction flowIndentCheck(indent, fc, onError) {\n if (fc?.type === 'flow-collection') {\n const end = fc.end[0];\n if (end.indent === indent &&\n (end.source === ']' || end.source === '}') &&\n containsNewline(fc)) {\n const msg = 'Flow end indicator should be more indented than parent';\n onError(end, 'BAD_INDENT', msg, true);\n }\n }\n}\n\nexport { flowIndentCheck };\n","import { isScalar } from '../nodes/identity.js';\n\nfunction mapIncludes(ctx, items, search) {\n const { uniqueKeys } = ctx.options;\n if (uniqueKeys === false)\n return false;\n const isEqual = typeof uniqueKeys === 'function'\n ? uniqueKeys\n : (a, b) => a === b || (isScalar(a) && isScalar(b) && a.value === b.value);\n return items.some(pair => isEqual(pair.key, search));\n}\n\nexport { mapIncludes };\n","import { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst startColMsg = 'All mapping items must start at the same column';\nfunction resolveBlockMap({ composeNode, composeEmptyNode }, ctx, bm, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLMap;\n const map = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n let offset = bm.offset;\n let commentEnd = null;\n for (const collItem of bm.items) {\n const { start, key, sep, value } = collItem;\n // key properties\n const keyProps = resolveProps(start, {\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: bm.indent,\n startOnNewline: true\n });\n const implicitKey = !keyProps.found;\n if (implicitKey) {\n if (key) {\n if (key.type === 'block-seq')\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'A block sequence may not be used as an implicit map key');\n else if ('indent' in key && key.indent !== bm.indent)\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n if (!keyProps.anchor && !keyProps.tag && !sep) {\n commentEnd = keyProps.end;\n if (keyProps.comment) {\n if (map.comment)\n map.comment += '\\n' + keyProps.comment;\n else\n map.comment = keyProps.comment;\n }\n continue;\n }\n if (keyProps.newlineAfterProp || containsNewline(key)) {\n onError(key ?? start[start.length - 1], 'MULTILINE_IMPLICIT_KEY', 'Implicit keys need to be on a single line');\n }\n }\n else if (keyProps.found?.indent !== bm.indent) {\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n // key value\n ctx.atKey = true;\n const keyStart = keyProps.end;\n const keyNode = key\n ? composeNode(ctx, key, keyProps, onError)\n : composeEmptyNode(ctx, keyStart, start, null, keyProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, key, onError);\n ctx.atKey = false;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: bm.indent,\n startOnNewline: !key || key.type === 'block-scalar'\n });\n offset = valueProps.end;\n if (valueProps.found) {\n if (implicitKey) {\n if (value?.type === 'block-map' && !valueProps.hasNewline)\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'Nested mappings are not allowed in compact mappings');\n if (ctx.options.strict &&\n keyProps.start < valueProps.found.offset - 1024)\n onError(keyNode.range, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit block mapping key');\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : composeEmptyNode(ctx, offset, sep, null, valueProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, value, onError);\n offset = valueNode.range[2];\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n else {\n // key with no value\n if (implicitKey)\n onError(keyNode.range, 'MISSING_CHAR', 'Implicit map keys need to be followed by map values');\n if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n }\n if (commentEnd && commentEnd < offset)\n onError(commentEnd, 'IMPOSSIBLE', 'Map comment with trailing content');\n map.range = [bm.offset, offset, commentEnd ?? offset];\n return map;\n}\n\nexport { resolveBlockMap };\n","function resolveEnd(end, offset, reqSpace, onError) {\n let comment = '';\n if (end) {\n let hasSpace = false;\n let sep = '';\n for (const token of end) {\n const { source, type } = token;\n switch (type) {\n case 'space':\n hasSpace = true;\n break;\n case 'comment': {\n if (reqSpace && !hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += sep + cb;\n sep = '';\n break;\n }\n case 'newline':\n if (comment)\n sep += source;\n hasSpace = true;\n break;\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${type} at node end`);\n }\n offset += source.length;\n }\n }\n return { comment, offset };\n}\n\nexport { resolveEnd };\n","import { isPair } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst blockMsg = 'Block collections are not allowed within flow collections';\nconst isBlock = (token) => token && (token.type === 'block-map' || token.type === 'block-seq');\nfunction resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onError, tag) {\n const isMap = fc.start.source === '{';\n const fcName = isMap ? 'flow map' : 'flow sequence';\n const NodeClass = (tag?.nodeClass ?? (isMap ? YAMLMap : YAMLSeq));\n const coll = new NodeClass(ctx.schema);\n coll.flow = true;\n const atRoot = ctx.atRoot;\n if (atRoot)\n ctx.atRoot = false;\n if (ctx.atKey)\n ctx.atKey = false;\n let offset = fc.offset + fc.start.source.length;\n for (let i = 0; i < fc.items.length; ++i) {\n const collItem = fc.items[i];\n const { start, key, sep, value } = collItem;\n const props = resolveProps(start, {\n flow: fcName,\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (!props.found) {\n if (!props.anchor && !props.tag && !sep && !value) {\n if (i === 0 && props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n else if (i < fc.items.length - 1)\n onError(props.start, 'UNEXPECTED_TOKEN', `Unexpected empty item in ${fcName}`);\n if (props.comment) {\n if (coll.comment)\n coll.comment += '\\n' + props.comment;\n else\n coll.comment = props.comment;\n }\n offset = props.end;\n continue;\n }\n if (!isMap && ctx.options.strict && containsNewline(key))\n onError(key, // checked by containsNewline()\n 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n }\n if (i === 0) {\n if (props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n }\n else {\n if (!props.comma)\n onError(props.start, 'MISSING_CHAR', `Missing , between ${fcName} items`);\n if (props.comment) {\n let prevItemComment = '';\n loop: for (const st of start) {\n switch (st.type) {\n case 'comma':\n case 'space':\n break;\n case 'comment':\n prevItemComment = st.source.substring(1);\n break loop;\n default:\n break loop;\n }\n }\n if (prevItemComment) {\n let prev = coll.items[coll.items.length - 1];\n if (isPair(prev))\n prev = prev.value ?? prev.key;\n if (prev.comment)\n prev.comment += '\\n' + prevItemComment;\n else\n prev.comment = prevItemComment;\n props.comment = props.comment.substring(prevItemComment.length + 1);\n }\n }\n }\n if (!isMap && !sep && !props.found) {\n // item is a value in a seq\n // → key & sep are empty, start does not include ? or :\n const valueNode = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, sep, null, props, onError);\n coll.items.push(valueNode);\n offset = valueNode.range[2];\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else {\n // item is a key+value pair\n // key value\n ctx.atKey = true;\n const keyStart = props.end;\n const keyNode = key\n ? composeNode(ctx, key, props, onError)\n : composeEmptyNode(ctx, keyStart, start, null, props, onError);\n if (isBlock(key))\n onError(keyNode.range, 'BLOCK_IN_FLOW', blockMsg);\n ctx.atKey = false;\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n flow: fcName,\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (valueProps.found) {\n if (!isMap && !props.found && ctx.options.strict) {\n if (sep)\n for (const st of sep) {\n if (st === valueProps.found)\n break;\n if (st.type === 'newline') {\n onError(st, 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n break;\n }\n }\n if (props.start < valueProps.found.offset - 1024)\n onError(valueProps.found, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit flow sequence key');\n }\n }\n else if (value) {\n if ('source' in value && value.source?.[0] === ':')\n onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`);\n else\n onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`);\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : valueProps.found\n ? composeEmptyNode(ctx, valueProps.end, sep, null, valueProps, onError)\n : null;\n if (valueNode) {\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n if (isMap) {\n const map = coll;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n map.items.push(pair);\n }\n else {\n const map = new YAMLMap(ctx.schema);\n map.flow = true;\n map.items.push(pair);\n const endRange = (valueNode ?? keyNode).range;\n map.range = [keyNode.range[0], endRange[1], endRange[2]];\n coll.items.push(map);\n }\n offset = valueNode ? valueNode.range[2] : valueProps.end;\n }\n }\n const expectedEnd = isMap ? '}' : ']';\n const [ce, ...ee] = fc.end;\n let cePos = offset;\n if (ce?.source === expectedEnd)\n cePos = ce.offset + ce.source.length;\n else {\n const name = fcName[0].toUpperCase() + fcName.substring(1);\n const msg = atRoot\n ? `${name} must end with a ${expectedEnd}`\n : `${name} in block collection must be sufficiently indented and end with a ${expectedEnd}`;\n onError(offset, atRoot ? 'MISSING_CHAR' : 'BAD_INDENT', msg);\n if (ce && ce.source.length !== 1)\n ee.unshift(ce);\n }\n if (ee.length > 0) {\n const end = resolveEnd(ee, cePos, ctx.options.strict, onError);\n if (end.comment) {\n if (coll.comment)\n coll.comment += '\\n' + end.comment;\n else\n coll.comment = end.comment;\n }\n coll.range = [fc.offset, cePos, end.offset];\n }\n else {\n coll.range = [fc.offset, cePos, cePos];\n }\n return coll;\n}\n\nexport { resolveFlowCollection };\n","import { isNode } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveBlockMap } from './resolve-block-map.js';\nimport { resolveBlockSeq } from './resolve-block-seq.js';\nimport { resolveFlowCollection } from './resolve-flow-collection.js';\n\nfunction resolveCollection(CN, ctx, token, onError, tagName, tag) {\n const coll = token.type === 'block-map'\n ? resolveBlockMap(CN, ctx, token, onError, tag)\n : token.type === 'block-seq'\n ? resolveBlockSeq(CN, ctx, token, onError, tag)\n : resolveFlowCollection(CN, ctx, token, onError, tag);\n const Coll = coll.constructor;\n // If we got a tagName matching the class, or the tag name is '!',\n // then use the tagName from the node class used to create it.\n if (tagName === '!' || tagName === Coll.tagName) {\n coll.tag = Coll.tagName;\n return coll;\n }\n if (tagName)\n coll.tag = tagName;\n return coll;\n}\nfunction composeCollection(CN, ctx, token, props, onError) {\n const tagToken = props.tag;\n const tagName = !tagToken\n ? null\n : ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg));\n if (token.type === 'block-seq') {\n const { anchor, newlineAfterProp: nl } = props;\n const lastProp = anchor && tagToken\n ? anchor.offset > tagToken.offset\n ? anchor\n : tagToken\n : (anchor ?? tagToken);\n if (lastProp && (!nl || nl.offset < lastProp.offset)) {\n const message = 'Missing newline after block sequence props';\n onError(lastProp, 'MISSING_CHAR', message);\n }\n }\n const expType = token.type === 'block-map'\n ? 'map'\n : token.type === 'block-seq'\n ? 'seq'\n : token.start.source === '{'\n ? 'map'\n : 'seq';\n // shortcut: check if it's a generic YAMLMap or YAMLSeq\n // before jumping into the custom tag logic.\n if (!tagToken ||\n !tagName ||\n tagName === '!' ||\n (tagName === YAMLMap.tagName && expType === 'map') ||\n (tagName === YAMLSeq.tagName && expType === 'seq')) {\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n let tag = ctx.schema.tags.find(t => t.tag === tagName && t.collection === expType);\n if (!tag) {\n const kt = ctx.schema.knownTags[tagName];\n if (kt?.collection === expType) {\n ctx.schema.tags.push(Object.assign({}, kt, { default: false }));\n tag = kt;\n }\n else {\n if (kt) {\n onError(tagToken, 'BAD_COLLECTION_TYPE', `${kt.tag} used for ${expType} collection, but expects ${kt.collection ?? 'scalar'}`, true);\n }\n else {\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, true);\n }\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n }\n const coll = resolveCollection(CN, ctx, token, onError, tagName, tag);\n const res = tag.resolve?.(coll, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg), ctx.options) ?? coll;\n const node = isNode(res)\n ? res\n : new Scalar(res);\n node.range = coll.range;\n node.tag = tagName;\n if (tag?.format)\n node.format = tag.format;\n return node;\n}\n\nexport { composeCollection };\n","import { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveProps } from './resolve-props.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\n\nfunction resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLSeq;\n const seq = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n if (ctx.atKey)\n ctx.atKey = false;\n let offset = bs.offset;\n let commentEnd = null;\n for (const { start, value } of bs.items) {\n const props = resolveProps(start, {\n indicator: 'seq-item-ind',\n next: value,\n offset,\n onError,\n parentIndent: bs.indent,\n startOnNewline: true\n });\n if (!props.found) {\n if (props.anchor || props.tag || value) {\n if (value?.type === 'block-seq')\n onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column');\n else\n onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator');\n }\n else {\n commentEnd = props.end;\n if (props.comment)\n seq.comment = props.comment;\n continue;\n }\n }\n const node = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bs.indent, value, onError);\n offset = node.range[2];\n seq.items.push(node);\n }\n seq.range = [bs.offset, offset, commentEnd ?? offset];\n return seq;\n}\n\nexport { resolveBlockSeq };\n","import { Scalar } from '../nodes/Scalar.js';\n\nfunction resolveBlockScalar(ctx, scalar, onError) {\n const start = scalar.offset;\n const header = parseBlockScalarHeader(scalar, ctx.options.strict, onError);\n if (!header)\n return { value: '', type: null, comment: '', range: [start, start, start] };\n const type = header.mode === '>' ? Scalar.BLOCK_FOLDED : Scalar.BLOCK_LITERAL;\n const lines = scalar.source ? splitLines(scalar.source) : [];\n // determine the end of content & start of chomping\n let chompStart = lines.length;\n for (let i = lines.length - 1; i >= 0; --i) {\n const content = lines[i][1];\n if (content === '' || content === '\\r')\n chompStart = i;\n else\n break;\n }\n // shortcut for empty contents\n if (chompStart === 0) {\n const value = header.chomp === '+' && lines.length > 0\n ? '\\n'.repeat(Math.max(1, lines.length - 1))\n : '';\n let end = start + header.length;\n if (scalar.source)\n end += scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n }\n // find the indentation level to trim from start\n let trimIndent = scalar.indent + header.indent;\n let offset = scalar.offset + header.length;\n let contentStart = 0;\n for (let i = 0; i < chompStart; ++i) {\n const [indent, content] = lines[i];\n if (content === '' || content === '\\r') {\n if (header.indent === 0 && indent.length > trimIndent)\n trimIndent = indent.length;\n }\n else {\n if (indent.length < trimIndent) {\n const message = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n onError(offset + indent.length, 'MISSING_CHAR', message);\n }\n if (header.indent === 0)\n trimIndent = indent.length;\n contentStart = i;\n if (trimIndent === 0 && !ctx.atRoot) {\n const message = 'Block scalar values in collections must be indented';\n onError(offset, 'BAD_INDENT', message);\n }\n break;\n }\n offset += indent.length + content.length + 1;\n }\n // include trailing more-indented empty lines in content\n for (let i = lines.length - 1; i >= chompStart; --i) {\n if (lines[i][0].length > trimIndent)\n chompStart = i + 1;\n }\n let value = '';\n let sep = '';\n let prevMoreIndented = false;\n // leading whitespace is kept intact\n for (let i = 0; i < contentStart; ++i)\n value += lines[i][0].slice(trimIndent) + '\\n';\n for (let i = contentStart; i < chompStart; ++i) {\n let [indent, content] = lines[i];\n offset += indent.length + content.length + 1;\n const crlf = content[content.length - 1] === '\\r';\n if (crlf)\n content = content.slice(0, -1);\n /* istanbul ignore if already caught in lexer */\n if (content && indent.length < trimIndent) {\n const src = header.indent\n ? 'explicit indentation indicator'\n : 'first line';\n const message = `Block scalar lines must not be less indented than their ${src}`;\n onError(offset - content.length - (crlf ? 2 : 1), 'BAD_INDENT', message);\n indent = '';\n }\n if (type === Scalar.BLOCK_LITERAL) {\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n }\n else if (indent.length > trimIndent || content[0] === '\\t') {\n // more-indented content within a folded block\n if (sep === ' ')\n sep = '\\n';\n else if (!prevMoreIndented && sep === '\\n')\n sep = '\\n\\n';\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n prevMoreIndented = true;\n }\n else if (content === '') {\n // empty line\n if (sep === '\\n')\n value += '\\n';\n else\n sep = '\\n';\n }\n else {\n value += sep + content;\n sep = ' ';\n prevMoreIndented = false;\n }\n }\n switch (header.chomp) {\n case '-':\n break;\n case '+':\n for (let i = chompStart; i < lines.length; ++i)\n value += '\\n' + lines[i][0].slice(trimIndent);\n if (value[value.length - 1] !== '\\n')\n value += '\\n';\n break;\n default:\n value += '\\n';\n }\n const end = start + header.length + scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n}\nfunction parseBlockScalarHeader({ offset, props }, strict, onError) {\n /* istanbul ignore if should not happen */\n if (props[0].type !== 'block-scalar-header') {\n onError(props[0], 'IMPOSSIBLE', 'Block scalar header not found');\n return null;\n }\n const { source } = props[0];\n const mode = source[0];\n let indent = 0;\n let chomp = '';\n let error = -1;\n for (let i = 1; i < source.length; ++i) {\n const ch = source[i];\n if (!chomp && (ch === '-' || ch === '+'))\n chomp = ch;\n else {\n const n = Number(ch);\n if (!indent && n)\n indent = n;\n else if (error === -1)\n error = offset + i;\n }\n }\n if (error !== -1)\n onError(error, 'UNEXPECTED_TOKEN', `Block scalar header includes extra characters: ${source}`);\n let hasSpace = false;\n let comment = '';\n let length = source.length;\n for (let i = 1; i < props.length; ++i) {\n const token = props[i];\n switch (token.type) {\n case 'space':\n hasSpace = true;\n // fallthrough\n case 'newline':\n length += token.source.length;\n break;\n case 'comment':\n if (strict && !hasSpace) {\n const message = 'Comments must be separated from other tokens by white space characters';\n onError(token, 'MISSING_CHAR', message);\n }\n length += token.source.length;\n comment = token.source.substring(1);\n break;\n case 'error':\n onError(token, 'UNEXPECTED_TOKEN', token.message);\n length += token.source.length;\n break;\n /* istanbul ignore next should not happen */\n default: {\n const message = `Unexpected token in block scalar header: ${token.type}`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n const ts = token.source;\n if (ts && typeof ts === 'string')\n length += ts.length;\n }\n }\n }\n return { mode, indent, chomp, comment, length };\n}\n/** @returns Array of lines split up as `[indent, content]` */\nfunction splitLines(source) {\n const split = source.split(/\\n( *)/);\n const first = split[0];\n const m = first.match(/^( *)/);\n const line0 = m?.[1]\n ? [m[1], first.slice(m[1].length)]\n : ['', first];\n const lines = [line0];\n for (let i = 1; i < split.length; i += 2)\n lines.push([split[i], split[i + 1]]);\n return lines;\n}\n\nexport { resolveBlockScalar };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction resolveFlowScalar(scalar, strict, onError) {\n const { offset, type, source, end } = scalar;\n let _type;\n let value;\n const _onError = (rel, code, msg) => onError(offset + rel, code, msg);\n switch (type) {\n case 'scalar':\n _type = Scalar.PLAIN;\n value = plainValue(source, _onError);\n break;\n case 'single-quoted-scalar':\n _type = Scalar.QUOTE_SINGLE;\n value = singleQuotedValue(source, _onError);\n break;\n case 'double-quoted-scalar':\n _type = Scalar.QUOTE_DOUBLE;\n value = doubleQuotedValue(source, _onError);\n break;\n /* istanbul ignore next should not happen */\n default:\n onError(scalar, 'UNEXPECTED_TOKEN', `Expected a flow scalar value, but found: ${type}`);\n return {\n value: '',\n type: null,\n comment: '',\n range: [offset, offset + source.length, offset + source.length]\n };\n }\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, strict, onError);\n return {\n value,\n type: _type,\n comment: re.comment,\n range: [offset, valueEnd, re.offset]\n };\n}\nfunction plainValue(source, onError) {\n let badChar = '';\n switch (source[0]) {\n /* istanbul ignore next should not happen */\n case '\\t':\n badChar = 'a tab character';\n break;\n case ',':\n badChar = 'flow indicator character ,';\n break;\n case '%':\n badChar = 'directive indicator character %';\n break;\n case '|':\n case '>': {\n badChar = `block scalar indicator ${source[0]}`;\n break;\n }\n case '@':\n case '`': {\n badChar = `reserved character ${source[0]}`;\n break;\n }\n }\n if (badChar)\n onError(0, 'BAD_SCALAR_START', `Plain value cannot start with ${badChar}`);\n return foldLines(source);\n}\nfunction singleQuotedValue(source, onError) {\n if (source[source.length - 1] !== \"'\" || source.length === 1)\n onError(source.length, 'MISSING_CHAR', \"Missing closing 'quote\");\n return foldLines(source.slice(1, -1)).replace(/''/g, \"'\");\n}\nfunction foldLines(source) {\n /**\n * The negative lookbehind here and in the `re` RegExp is to\n * prevent causing a polynomial search time in certain cases.\n *\n * The try-catch is for Safari, which doesn't support this yet:\n * https://caniuse.com/js-regexp-lookbehind\n */\n let first, line;\n try {\n first = new RegExp('(.*?)(?<![ \\t])[ \\t]*\\r?\\n', 'sy');\n line = new RegExp('[ \\t]*(.*?)(?:(?<![ \\t])[ \\t]*)?\\r?\\n', 'sy');\n }\n catch {\n first = /(.*?)[ \\t]*\\r?\\n/sy;\n line = /[ \\t]*(.*?)[ \\t]*\\r?\\n/sy;\n }\n let match = first.exec(source);\n if (!match)\n return source;\n let res = match[1];\n let sep = ' ';\n let pos = first.lastIndex;\n line.lastIndex = pos;\n while ((match = line.exec(source))) {\n if (match[1] === '') {\n if (sep === '\\n')\n res += sep;\n else\n sep = '\\n';\n }\n else {\n res += sep + match[1];\n sep = ' ';\n }\n pos = line.lastIndex;\n }\n const last = /[ \\t]*(.*)/sy;\n last.lastIndex = pos;\n match = last.exec(source);\n return res + sep + (match?.[1] ?? '');\n}\nfunction doubleQuotedValue(source, onError) {\n let res = '';\n for (let i = 1; i < source.length - 1; ++i) {\n const ch = source[i];\n if (ch === '\\r' && source[i + 1] === '\\n')\n continue;\n if (ch === '\\n') {\n const { fold, offset } = foldNewline(source, i);\n res += fold;\n i = offset;\n }\n else if (ch === '\\\\') {\n let next = source[++i];\n const cc = escapeCodes[next];\n if (cc)\n res += cc;\n else if (next === '\\n') {\n // skip escaped newlines, but still trim the following line\n next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === '\\r' && source[i + 1] === '\\n') {\n // skip escaped CRLF newlines, but still trim the following line\n next = source[++i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === 'x' || next === 'u' || next === 'U') {\n const length = next === 'x' ? 2 : next === 'u' ? 4 : 8;\n res += parseCharCode(source, i + 1, length, onError);\n i += length;\n }\n else {\n const raw = source.substr(i - 1, 2);\n onError(i - 1, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n res += raw;\n }\n }\n else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n if (next !== '\\n' && !(next === '\\r' && source[i + 2] === '\\n'))\n res += i > wsStart ? source.slice(wsStart, i + 1) : ch;\n }\n else {\n res += ch;\n }\n }\n if (source[source.length - 1] !== '\"' || source.length === 1)\n onError(source.length, 'MISSING_CHAR', 'Missing closing \"quote');\n return res;\n}\n/**\n * Fold a single newline into a space, multiple newlines to N - 1 newlines.\n * Presumes `source[offset] === '\\n'`\n */\nfunction foldNewline(source, offset) {\n let fold = '';\n let ch = source[offset + 1];\n while (ch === ' ' || ch === '\\t' || ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && source[offset + 2] !== '\\n')\n break;\n if (ch === '\\n')\n fold += '\\n';\n offset += 1;\n ch = source[offset + 1];\n }\n if (!fold)\n fold = ' ';\n return { fold, offset };\n}\nconst escapeCodes = {\n '0': '\\0', // null character\n a: '\\x07', // bell character\n b: '\\b', // backspace\n e: '\\x1b', // escape character\n f: '\\f', // form feed\n n: '\\n', // line feed\n r: '\\r', // carriage return\n t: '\\t', // horizontal tab\n v: '\\v', // vertical tab\n N: '\\u0085', // Unicode next line\n _: '\\u00a0', // Unicode non-breaking space\n L: '\\u2028', // Unicode line separator\n P: '\\u2029', // Unicode paragraph separator\n ' ': ' ',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\',\n '\\t': '\\t'\n};\nfunction parseCharCode(source, offset, length, onError) {\n const cc = source.substr(offset, length);\n const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n const code = ok ? parseInt(cc, 16) : NaN;\n try {\n return String.fromCodePoint(code);\n }\n catch {\n const raw = source.substr(offset - 2, length + 2);\n onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n return raw;\n }\n}\n\nexport { resolveFlowScalar };\n","import { isScalar, SCALAR } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { resolveBlockScalar } from './resolve-block-scalar.js';\nimport { resolveFlowScalar } from './resolve-flow-scalar.js';\n\nfunction composeScalar(ctx, token, tagToken, onError) {\n const { value, type, comment, range } = token.type === 'block-scalar'\n ? resolveBlockScalar(ctx, token, onError)\n : resolveFlowScalar(token, ctx.options.strict, onError);\n const tagName = tagToken\n ? ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg))\n : null;\n let tag;\n if (ctx.options.stringKeys && ctx.atKey) {\n tag = ctx.schema[SCALAR];\n }\n else if (tagName)\n tag = findScalarTagByName(ctx.schema, value, tagName, tagToken, onError);\n else if (token.type === 'scalar')\n tag = findScalarTagByTest(ctx, value, token, onError);\n else\n tag = ctx.schema[SCALAR];\n let scalar;\n try {\n const res = tag.resolve(value, msg => onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg), ctx.options);\n scalar = isScalar(res) ? res : new Scalar(res);\n }\n catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg);\n scalar = new Scalar(value);\n }\n scalar.range = range;\n scalar.source = value;\n if (type)\n scalar.type = type;\n if (tagName)\n scalar.tag = tagName;\n if (tag.format)\n scalar.format = tag.format;\n if (comment)\n scalar.comment = comment;\n return scalar;\n}\nfunction findScalarTagByName(schema, value, tagName, tagToken, onError) {\n if (tagName === '!')\n return schema[SCALAR]; // non-specific tag\n const matchWithTest = [];\n for (const tag of schema.tags) {\n if (!tag.collection && tag.tag === tagName) {\n if (tag.default && tag.test)\n matchWithTest.push(tag);\n else\n return tag;\n }\n }\n for (const tag of matchWithTest)\n if (tag.test?.test(value))\n return tag;\n const kt = schema.knownTags[tagName];\n if (kt && !kt.collection) {\n // Ensure that the known tag is available for stringifying,\n // but does not get used by default.\n schema.tags.push(Object.assign({}, kt, { default: false, test: undefined }));\n return kt;\n }\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, tagName !== 'tag:yaml.org,2002:str');\n return schema[SCALAR];\n}\nfunction findScalarTagByTest({ atKey, directives, schema }, value, token, onError) {\n const tag = schema.tags.find(tag => (tag.default === true || (atKey && tag.default === 'key')) &&\n tag.test?.test(value)) || schema[SCALAR];\n if (schema.compat) {\n const compat = schema.compat.find(tag => tag.default && tag.test?.test(value)) ??\n schema[SCALAR];\n if (tag.tag !== compat.tag) {\n const ts = directives.tagString(tag.tag);\n const cs = directives.tagString(compat.tag);\n const msg = `Value may be parsed as either ${ts} or ${cs}`;\n onError(token, 'TAG_RESOLVE_FAILED', msg, true);\n }\n }\n return tag;\n}\n\nexport { composeScalar };\n","function emptyScalarPosition(offset, before, pos) {\n if (before) {\n pos ?? (pos = before.length);\n for (let i = pos - 1; i >= 0; --i) {\n let st = before[i];\n switch (st.type) {\n case 'space':\n case 'comment':\n case 'newline':\n offset -= st.source.length;\n continue;\n }\n // Technically, an empty scalar is immediately after the last non-empty\n // node, but it's more useful to place it after any whitespace.\n st = before[++i];\n while (st?.type === 'space') {\n offset += st.source.length;\n st = before[++i];\n }\n break;\n }\n }\n return offset;\n}\n\nexport { emptyScalarPosition };\n","import { Alias } from '../nodes/Alias.js';\nimport { isScalar } from '../nodes/identity.js';\nimport { composeCollection } from './compose-collection.js';\nimport { composeScalar } from './compose-scalar.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { emptyScalarPosition } from './util-empty-scalar-position.js';\n\nconst CN = { composeNode, composeEmptyNode };\nfunction composeNode(ctx, token, props, onError) {\n const atKey = ctx.atKey;\n const { spaceBefore, comment, anchor, tag } = props;\n let node;\n let isSrcToken = true;\n switch (token.type) {\n case 'alias':\n node = composeAlias(ctx, token, onError);\n if (anchor || tag)\n onError(token, 'ALIAS_PROPS', 'An alias node must not specify any properties');\n break;\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'block-scalar':\n node = composeScalar(ctx, token, tag, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n case 'block-map':\n case 'block-seq':\n case 'flow-collection':\n try {\n node = composeCollection(CN, ctx, token, props, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n }\n catch (error) {\n // Almost certainly here due to a stack overflow\n const message = error instanceof Error ? error.message : String(error);\n onError(token, 'RESOURCE_EXHAUSTION', message);\n }\n break;\n default: {\n const message = token.type === 'error'\n ? token.message\n : `Unsupported token (type: ${token.type})`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n isSrcToken = false;\n }\n }\n node ?? (node = composeEmptyNode(ctx, token.offset, undefined, null, props, onError));\n if (anchor && node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n if (atKey &&\n ctx.options.stringKeys &&\n (!isScalar(node) ||\n typeof node.value !== 'string' ||\n (node.tag && node.tag !== 'tag:yaml.org,2002:str'))) {\n const msg = 'With stringKeys, all keys must be strings';\n onError(tag ?? token, 'NON_STRING_KEY', msg);\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n if (token.type === 'scalar' && token.source === '')\n node.comment = comment;\n else\n node.commentBefore = comment;\n }\n // @ts-expect-error Type checking misses meaning of isSrcToken\n if (ctx.options.keepSourceTokens && isSrcToken)\n node.srcToken = token;\n return node;\n}\nfunction composeEmptyNode(ctx, offset, before, pos, { spaceBefore, comment, anchor, tag, end }, onError) {\n const token = {\n type: 'scalar',\n offset: emptyScalarPosition(offset, before, pos),\n indent: -1,\n source: ''\n };\n const node = composeScalar(ctx, token, tag, onError);\n if (anchor) {\n node.anchor = anchor.source.substring(1);\n if (node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n node.comment = comment;\n node.range[2] = end;\n }\n return node;\n}\nfunction composeAlias({ options }, { offset, source, end }, onError) {\n const alias = new Alias(source.substring(1));\n if (alias.source === '')\n onError(offset, 'BAD_ALIAS', 'Alias cannot be an empty string');\n if (alias.source.endsWith(':'))\n onError(offset + source.length - 1, 'BAD_ALIAS', 'Alias ending in : is ambiguous', true);\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, options.strict, onError);\n alias.range = [offset, valueEnd, re.offset];\n if (re.comment)\n alias.comment = re.comment;\n return alias;\n}\n\nexport { composeEmptyNode, composeNode };\n","import { Directives } from '../doc/directives.js';\nimport { Document } from '../doc/Document.js';\nimport { YAMLWarning, YAMLParseError } from '../errors.js';\nimport { isCollection, isPair } from '../nodes/identity.js';\nimport { composeDoc } from './compose-doc.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction getErrorPos(src) {\n if (typeof src === 'number')\n return [src, src + 1];\n if (Array.isArray(src))\n return src.length === 2 ? src : [src[0], src[1]];\n const { offset, source } = src;\n return [offset, offset + (typeof source === 'string' ? source.length : 1)];\n}\nfunction parsePrelude(prelude) {\n let comment = '';\n let atComment = false;\n let afterEmptyLine = false;\n for (let i = 0; i < prelude.length; ++i) {\n const source = prelude[i];\n switch (source[0]) {\n case '#':\n comment +=\n (comment === '' ? '' : afterEmptyLine ? '\\n\\n' : '\\n') +\n (source.substring(1) || ' ');\n atComment = true;\n afterEmptyLine = false;\n break;\n case '%':\n if (prelude[i + 1]?.[0] !== '#')\n i += 1;\n atComment = false;\n break;\n default:\n // This may be wrong after doc-end, but in that case it doesn't matter\n if (!atComment)\n afterEmptyLine = true;\n atComment = false;\n }\n }\n return { comment, afterEmptyLine };\n}\n/**\n * Compose a stream of CST nodes into a stream of YAML Documents.\n *\n * ```ts\n * import { Composer, Parser } from 'yaml'\n *\n * const src: string = ...\n * const tokens = new Parser().parse(src)\n * const docs = new Composer().compose(tokens)\n * ```\n */\nclass Composer {\n constructor(options = {}) {\n this.doc = null;\n this.atDirectives = false;\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n this.onError = (source, code, message, warning) => {\n const pos = getErrorPos(source);\n if (warning)\n this.warnings.push(new YAMLWarning(pos, code, message));\n else\n this.errors.push(new YAMLParseError(pos, code, message));\n };\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.directives = new Directives({ version: options.version || '1.2' });\n this.options = options;\n }\n decorate(doc, afterDoc) {\n const { comment, afterEmptyLine } = parsePrelude(this.prelude);\n //console.log({ dc: doc.comment, prelude, comment })\n if (comment) {\n const dc = doc.contents;\n if (afterDoc) {\n doc.comment = doc.comment ? `${doc.comment}\\n${comment}` : comment;\n }\n else if (afterEmptyLine || doc.directives.docStart || !dc) {\n doc.commentBefore = comment;\n }\n else if (isCollection(dc) && !dc.flow && dc.items.length > 0) {\n let it = dc.items[0];\n if (isPair(it))\n it = it.key;\n const cb = it.commentBefore;\n it.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n else {\n const cb = dc.commentBefore;\n dc.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n }\n if (afterDoc) {\n for (let i = 0; i < this.errors.length; ++i)\n doc.errors.push(this.errors[i]);\n for (let i = 0; i < this.warnings.length; ++i)\n doc.warnings.push(this.warnings[i]);\n }\n else {\n doc.errors = this.errors;\n doc.warnings = this.warnings;\n }\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n }\n /**\n * Current stream status information.\n *\n * Mostly useful at the end of input for an empty stream.\n */\n streamInfo() {\n return {\n comment: parsePrelude(this.prelude).comment,\n directives: this.directives,\n errors: this.errors,\n warnings: this.warnings\n };\n }\n /**\n * Compose tokens into documents.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *compose(tokens, forceDoc = false, endOffset = -1) {\n for (const token of tokens)\n yield* this.next(token);\n yield* this.end(forceDoc, endOffset);\n }\n /** Advance the composer by one CST token. */\n *next(token) {\n switch (token.type) {\n case 'directive':\n this.directives.add(token.source, (offset, message, warning) => {\n const pos = getErrorPos(token);\n pos[0] += offset;\n this.onError(pos, 'BAD_DIRECTIVE', message, warning);\n });\n this.prelude.push(token.source);\n this.atDirectives = true;\n break;\n case 'document': {\n const doc = composeDoc(this.options, this.directives, token, this.onError);\n if (this.atDirectives && !doc.directives.docStart)\n this.onError(token, 'MISSING_CHAR', 'Missing directives-end/doc-start indicator line');\n this.decorate(doc, false);\n if (this.doc)\n yield this.doc;\n this.doc = doc;\n this.atDirectives = false;\n break;\n }\n case 'byte-order-mark':\n case 'space':\n break;\n case 'comment':\n case 'newline':\n this.prelude.push(token.source);\n break;\n case 'error': {\n const msg = token.source\n ? `${token.message}: ${JSON.stringify(token.source)}`\n : token.message;\n const error = new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg);\n if (this.atDirectives || !this.doc)\n this.errors.push(error);\n else\n this.doc.errors.push(error);\n break;\n }\n case 'doc-end': {\n if (!this.doc) {\n const msg = 'Unexpected doc-end without preceding document';\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg));\n break;\n }\n this.doc.directives.docEnd = true;\n const end = resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);\n this.decorate(this.doc, true);\n if (end.comment) {\n const dc = this.doc.comment;\n this.doc.comment = dc ? `${dc}\\n${end.comment}` : end.comment;\n }\n this.doc.range[2] = end.offset;\n break;\n }\n default:\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', `Unsupported token ${token.type}`));\n }\n }\n /**\n * Call at end of input to yield any remaining document.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *end(forceDoc = false, endOffset = -1) {\n if (this.doc) {\n this.decorate(this.doc, true);\n yield this.doc;\n this.doc = null;\n }\n else if (forceDoc) {\n const opts = Object.assign({ _directives: this.directives }, this.options);\n const doc = new Document(undefined, opts);\n if (this.atDirectives)\n this.onError(endOffset, 'MISSING_CHAR', 'Missing directives-end indicator line');\n doc.range = [0, endOffset, endOffset];\n this.decorate(doc, false);\n yield doc;\n }\n }\n}\n\nexport { Composer };\n","import { Document } from '../doc/Document.js';\nimport { composeNode, composeEmptyNode } from './compose-node.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\n\nfunction composeDoc(options, directives, { offset, start, value, end }, onError) {\n const opts = Object.assign({ _directives: directives }, options);\n const doc = new Document(undefined, opts);\n const ctx = {\n atKey: false,\n atRoot: true,\n directives: doc.directives,\n options: doc.options,\n schema: doc.schema\n };\n const props = resolveProps(start, {\n indicator: 'doc-start',\n next: value ?? end?.[0],\n offset,\n onError,\n parentIndent: 0,\n startOnNewline: true\n });\n if (props.found) {\n doc.directives.docStart = true;\n if (value &&\n (value.type === 'block-map' || value.type === 'block-seq') &&\n !props.hasNewline)\n onError(props.end, 'MISSING_CHAR', 'Block collection cannot start on same line with directives-end marker');\n }\n // @ts-expect-error If Contents is set, let's trust the user\n doc.contents = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n const contentEnd = doc.contents.range[2];\n const re = resolveEnd(end, contentEnd, false, onError);\n if (re.comment)\n doc.comment = re.comment;\n doc.range = [offset, contentEnd, re.offset];\n return doc;\n}\n\nexport { composeDoc };\n","import { resolveBlockScalar } from '../compose/resolve-block-scalar.js';\nimport { resolveFlowScalar } from '../compose/resolve-flow-scalar.js';\nimport { YAMLParseError } from '../errors.js';\nimport { stringifyString } from '../stringify/stringifyString.js';\n\nfunction resolveAsScalar(token, strict = true, onError) {\n if (token) {\n const _onError = (pos, code, message) => {\n const offset = typeof pos === 'number' ? pos : Array.isArray(pos) ? pos[0] : pos.offset;\n if (onError)\n onError(offset, code, message);\n else\n throw new YAMLParseError([offset, offset + 1], code, message);\n };\n switch (token.type) {\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return resolveFlowScalar(token, strict, _onError);\n case 'block-scalar':\n return resolveBlockScalar({ options: { strict } }, token, _onError);\n }\n }\n return null;\n}\n/**\n * Create a new scalar token with `value`\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.end Comments and whitespace after the end of the value, or after the block scalar header. If undefined, a newline will be added.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.indent The indent level of the token.\n * @param context.inFlow Is this scalar within a flow collection? This may affect the resolved type of the token's value.\n * @param context.offset The offset position of the token.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction createScalarToken(value, context) {\n const { implicitKey = false, indent, inFlow = false, offset = -1, type = 'PLAIN' } = context;\n const source = stringifyString({ type, value }, {\n implicitKey,\n indent: indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n const end = context.end ?? [\n { type: 'newline', offset: -1, indent, source: '\\n' }\n ];\n switch (source[0]) {\n case '|':\n case '>': {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, end))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n return { type: 'block-scalar', offset, indent, props, source: body };\n }\n case '\"':\n return { type: 'double-quoted-scalar', offset, indent, source, end };\n case \"'\":\n return { type: 'single-quoted-scalar', offset, indent, source, end };\n default:\n return { type: 'scalar', offset, indent, source, end };\n }\n}\n/**\n * Set the value of `token` to the given string `value`, overwriting any previous contents and type that it may have.\n *\n * Best efforts are made to retain any comments previously associated with the `token`,\n * though all contents within a collection's `items` will be overwritten.\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param token Any token. If it does not include an `indent` value, the value will be stringified as if it were an implicit key.\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.afterKey In most cases, values after a key should have an additional level of indentation.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.inFlow Being within a flow collection may affect the resolved type of the token's value.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction setScalarValue(token, value, context = {}) {\n let { afterKey = false, implicitKey = false, inFlow = false, type } = context;\n let indent = 'indent' in token ? token.indent : null;\n if (afterKey && typeof indent === 'number')\n indent += 2;\n if (!type)\n switch (token.type) {\n case 'single-quoted-scalar':\n type = 'QUOTE_SINGLE';\n break;\n case 'double-quoted-scalar':\n type = 'QUOTE_DOUBLE';\n break;\n case 'block-scalar': {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n type = header.source[0] === '>' ? 'BLOCK_FOLDED' : 'BLOCK_LITERAL';\n break;\n }\n default:\n type = 'PLAIN';\n }\n const source = stringifyString({ type, value }, {\n implicitKey: implicitKey || indent === null,\n indent: indent !== null && indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n switch (source[0]) {\n case '|':\n case '>':\n setBlockScalarValue(token, source);\n break;\n case '\"':\n setFlowScalarValue(token, source, 'double-quoted-scalar');\n break;\n case \"'\":\n setFlowScalarValue(token, source, 'single-quoted-scalar');\n break;\n default:\n setFlowScalarValue(token, source, 'scalar');\n }\n}\nfunction setBlockScalarValue(token, source) {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n if (token.type === 'block-scalar') {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n header.source = head;\n token.source = body;\n }\n else {\n const { offset } = token;\n const indent = 'indent' in token ? token.indent : -1;\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, 'end' in token ? token.end : undefined))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type: 'block-scalar', indent, props, source: body });\n }\n}\n/** @returns `true` if last token is a newline */\nfunction addEndtoBlockProps(props, end) {\n if (end)\n for (const st of end)\n switch (st.type) {\n case 'space':\n case 'comment':\n props.push(st);\n break;\n case 'newline':\n props.push(st);\n return true;\n }\n return false;\n}\nfunction setFlowScalarValue(token, source, type) {\n switch (token.type) {\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n token.type = type;\n token.source = source;\n break;\n case 'block-scalar': {\n const end = token.props.slice(1);\n let oa = source.length;\n if (token.props[0].type === 'block-scalar-header')\n oa -= token.props[0].source.length;\n for (const tok of end)\n tok.offset += oa;\n delete token.props;\n Object.assign(token, { type, source, end });\n break;\n }\n case 'block-map':\n case 'block-seq': {\n const offset = token.offset + source.length;\n const nl = { type: 'newline', offset, indent: token.indent, source: '\\n' };\n delete token.items;\n Object.assign(token, { type, source, end: [nl] });\n break;\n }\n default: {\n const indent = 'indent' in token ? token.indent : -1;\n const end = 'end' in token && Array.isArray(token.end)\n ? token.end.filter(st => st.type === 'space' ||\n st.type === 'comment' ||\n st.type === 'newline')\n : [];\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type, indent, source, end });\n }\n }\n}\n\nexport { createScalarToken, resolveAsScalar, setScalarValue };\n","/**\n * Stringify a CST document, token, or collection item\n *\n * Fair warning: This applies no validation whatsoever, and\n * simply concatenates the sources in their logical order.\n */\nconst stringify = (cst) => 'type' in cst ? stringifyToken(cst) : stringifyItem(cst);\nfunction stringifyToken(token) {\n switch (token.type) {\n case 'block-scalar': {\n let res = '';\n for (const tok of token.props)\n res += stringifyToken(tok);\n return res + token.source;\n }\n case 'block-map':\n case 'block-seq': {\n let res = '';\n for (const item of token.items)\n res += stringifyItem(item);\n return res;\n }\n case 'flow-collection': {\n let res = token.start.source;\n for (const item of token.items)\n res += stringifyItem(item);\n for (const st of token.end)\n res += st.source;\n return res;\n }\n case 'document': {\n let res = stringifyItem(token);\n if (token.end)\n for (const st of token.end)\n res += st.source;\n return res;\n }\n default: {\n let res = token.source;\n if ('end' in token && token.end)\n for (const st of token.end)\n res += st.source;\n return res;\n }\n }\n}\nfunction stringifyItem({ start, key, sep, value }) {\n let res = '';\n for (const st of start)\n res += st.source;\n if (key)\n res += stringifyToken(key);\n if (sep)\n for (const st of sep)\n res += st.source;\n if (value)\n res += stringifyToken(value);\n return res;\n}\n\nexport { stringify };\n","const BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove item');\n/**\n * Apply a visitor to a CST document or item.\n *\n * Walks through the tree (depth-first) starting from the root, calling a\n * `visitor` function with two arguments when entering each item:\n * - `item`: The current item, which included the following members:\n * - `start: SourceToken[]` – Source tokens before the key or value,\n * possibly including its anchor or tag.\n * - `key?: Token | null` – Set for pair values. May then be `null`, if\n * the key before the `:` separator is empty.\n * - `sep?: SourceToken[]` – Source tokens between the key and the value,\n * which should include the `:` map value indicator if `value` is set.\n * - `value?: Token` – The value of a sequence item, or of a map pair.\n * - `path`: The steps from the root to the current node, as an array of\n * `['key' | 'value', number]` tuples.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this token, continue with\n * next sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current item, then continue with the next one\n * - `number`: Set the index of the next step. This is useful especially if\n * the index of the current token has changed.\n * - `function`: Define the next visitor for this item. After the original\n * visitor is called on item entry, next visitors are called after handling\n * a non-empty `key` and when exiting the item.\n */\nfunction visit(cst, visitor) {\n if ('type' in cst && cst.type === 'document')\n cst = { start: cst.start, value: cst.value };\n _visit(Object.freeze([]), cst, visitor);\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current item */\nvisit.SKIP = SKIP;\n/** Remove the current item */\nvisit.REMOVE = REMOVE;\n/** Find the item at `path` from `cst` as the root */\nvisit.itemAtPath = (cst, path) => {\n let item = cst;\n for (const [field, index] of path) {\n const tok = item?.[field];\n if (tok && 'items' in tok) {\n item = tok.items[index];\n }\n else\n return undefined;\n }\n return item;\n};\n/**\n * Get the immediate parent collection of the item at `path` from `cst` as the root.\n *\n * Throws an error if the collection is not found, which should never happen if the item itself exists.\n */\nvisit.parentCollection = (cst, path) => {\n const parent = visit.itemAtPath(cst, path.slice(0, -1));\n const field = path[path.length - 1][0];\n const coll = parent?.[field];\n if (coll && 'items' in coll)\n return coll;\n throw new Error('Parent collection not found');\n};\nfunction _visit(path, item, visitor) {\n let ctrl = visitor(item, path);\n if (typeof ctrl === 'symbol')\n return ctrl;\n for (const field of ['key', 'value']) {\n const token = item[field];\n if (token && 'items' in token) {\n for (let i = 0; i < token.items.length; ++i) {\n const ci = _visit(Object.freeze(path.concat([[field, i]])), token.items[i], visitor);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n token.items.splice(i, 1);\n i -= 1;\n }\n }\n if (typeof ctrl === 'function' && field === 'key')\n ctrl = ctrl(item, path);\n }\n }\n return typeof ctrl === 'function' ? ctrl(item, path) : ctrl;\n}\n\nexport { visit };\n","export { createScalarToken, resolveAsScalar, setScalarValue } from './cst-scalar.js';\nexport { stringify } from './cst-stringify.js';\nexport { visit } from './cst-visit.js';\n\n/** The byte order mark */\nconst BOM = '\\u{FEFF}';\n/** Start of doc-mode */\nconst DOCUMENT = '\\x02'; // C0: Start of Text\n/** Unexpected end of flow-mode */\nconst FLOW_END = '\\x18'; // C0: Cancel\n/** Next token is a scalar value */\nconst SCALAR = '\\x1f'; // C0: Unit Separator\n/** @returns `true` if `token` is a flow or block collection */\nconst isCollection = (token) => !!token && 'items' in token;\n/** @returns `true` if `token` is a flow or block scalar; not an alias */\nconst isScalar = (token) => !!token &&\n (token.type === 'scalar' ||\n token.type === 'single-quoted-scalar' ||\n token.type === 'double-quoted-scalar' ||\n token.type === 'block-scalar');\n/* istanbul ignore next */\n/** Get a printable representation of a lexer token */\nfunction prettyToken(token) {\n switch (token) {\n case BOM:\n return '<BOM>';\n case DOCUMENT:\n return '<DOC>';\n case FLOW_END:\n return '<FLOW_END>';\n case SCALAR:\n return '<SCALAR>';\n default:\n return JSON.stringify(token);\n }\n}\n/** Identify the type of a lexer token. May return `null` for unknown tokens. */\nfunction tokenType(source) {\n switch (source) {\n case BOM:\n return 'byte-order-mark';\n case DOCUMENT:\n return 'doc-mode';\n case FLOW_END:\n return 'flow-error-end';\n case SCALAR:\n return 'scalar';\n case '---':\n return 'doc-start';\n case '...':\n return 'doc-end';\n case '':\n case '\\n':\n case '\\r\\n':\n return 'newline';\n case '-':\n return 'seq-item-ind';\n case '?':\n return 'explicit-key-ind';\n case ':':\n return 'map-value-ind';\n case '{':\n return 'flow-map-start';\n case '}':\n return 'flow-map-end';\n case '[':\n return 'flow-seq-start';\n case ']':\n return 'flow-seq-end';\n case ',':\n return 'comma';\n }\n switch (source[0]) {\n case ' ':\n case '\\t':\n return 'space';\n case '#':\n return 'comment';\n case '%':\n return 'directive-line';\n case '*':\n return 'alias';\n case '&':\n return 'anchor';\n case '!':\n return 'tag';\n case \"'\":\n return 'single-quoted-scalar';\n case '\"':\n return 'double-quoted-scalar';\n case '|':\n case '>':\n return 'block-scalar-header';\n }\n return null;\n}\n\nexport { BOM, DOCUMENT, FLOW_END, SCALAR, isCollection, isScalar, prettyToken, tokenType };\n","import { BOM, DOCUMENT, FLOW_END, SCALAR } from './cst.js';\n\n/*\nSTART -> stream\n\nstream\n directive -> line-end -> stream\n indent + line-end -> stream\n [else] -> line-start\n\nline-end\n comment -> line-end\n newline -> .\n input-end -> END\n\nline-start\n doc-start -> doc\n doc-end -> stream\n [else] -> indent -> block-start\n\nblock-start\n seq-item-start -> block-start\n explicit-key-start -> block-start\n map-value-start -> block-start\n [else] -> doc\n\ndoc\n line-end -> line-start\n spaces -> doc\n anchor -> doc\n tag -> doc\n flow-start -> flow -> doc\n flow-end -> error -> doc\n seq-item-start -> error -> doc\n explicit-key-start -> error -> doc\n map-value-start -> doc\n alias -> doc\n quote-start -> quoted-scalar -> doc\n block-scalar-header -> line-end -> block-scalar(min) -> line-start\n [else] -> plain-scalar(false, min) -> doc\n\nflow\n line-end -> flow\n spaces -> flow\n anchor -> flow\n tag -> flow\n flow-start -> flow -> flow\n flow-end -> .\n seq-item-start -> error -> flow\n explicit-key-start -> flow\n map-value-start -> flow\n alias -> flow\n quote-start -> quoted-scalar -> flow\n comma -> flow\n [else] -> plain-scalar(true, 0) -> flow\n\nquoted-scalar\n quote-end -> .\n [else] -> quoted-scalar\n\nblock-scalar(min)\n newline + peek(indent < min) -> .\n [else] -> block-scalar(min)\n\nplain-scalar(is-flow, min)\n scalar-end(is-flow) -> .\n peek(newline + (indent < min)) -> .\n [else] -> plain-scalar(min)\n*/\nfunction isEmpty(ch) {\n switch (ch) {\n case undefined:\n case ' ':\n case '\\n':\n case '\\r':\n case '\\t':\n return true;\n default:\n return false;\n }\n}\nconst hexDigits = new Set('0123456789ABCDEFabcdef');\nconst tagChars = new Set(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()\");\nconst flowIndicatorChars = new Set(',[]{}');\nconst invalidAnchorChars = new Set(' ,[]{}\\n\\r\\t');\nconst isNotAnchorChar = (ch) => !ch || invalidAnchorChars.has(ch);\n/**\n * Splits an input string into lexical tokens, i.e. smaller strings that are\n * easily identifiable by `tokens.tokenType()`.\n *\n * Lexing starts always in a \"stream\" context. Incomplete input may be buffered\n * until a complete token can be emitted.\n *\n * In addition to slices of the original input, the following control characters\n * may also be emitted:\n *\n * - `\\x02` (Start of Text): A document starts with the next token\n * - `\\x18` (Cancel): Unexpected end of flow-mode (indicates an error)\n * - `\\x1f` (Unit Separator): Next token is a scalar value\n * - `\\u{FEFF}` (Byte order mark): Emitted separately outside documents\n */\nclass Lexer {\n constructor() {\n /**\n * Flag indicating whether the end of the current buffer marks the end of\n * all input\n */\n this.atEnd = false;\n /**\n * Explicit indent set in block scalar header, as an offset from the current\n * minimum indent, so e.g. set to 1 from a header `|2+`. Set to -1 if not\n * explicitly set.\n */\n this.blockScalarIndent = -1;\n /**\n * Block scalars that include a + (keep) chomping indicator in their header\n * include trailing empty lines, which are otherwise excluded from the\n * scalar's contents.\n */\n this.blockScalarKeep = false;\n /** Current input */\n this.buffer = '';\n /**\n * Flag noting whether the map value indicator : can immediately follow this\n * node within a flow context.\n */\n this.flowKey = false;\n /** Count of surrounding flow collection levels. */\n this.flowLevel = 0;\n /**\n * Minimum level of indentation required for next lines to be parsed as a\n * part of the current scalar value.\n */\n this.indentNext = 0;\n /** Indentation level of the current line. */\n this.indentValue = 0;\n /** Position of the next \\n character. */\n this.lineEndPos = null;\n /** Stores the state of the lexer if reaching the end of incpomplete input */\n this.next = null;\n /** A pointer to `buffer`; the current position of the lexer. */\n this.pos = 0;\n }\n /**\n * Generate YAML tokens from the `source` string. If `incomplete`,\n * a part of the last line may be left as a buffer for the next call.\n *\n * @returns A generator of lexical tokens\n */\n *lex(source, incomplete = false) {\n if (source) {\n if (typeof source !== 'string')\n throw TypeError('source is not a string');\n this.buffer = this.buffer ? this.buffer + source : source;\n this.lineEndPos = null;\n }\n this.atEnd = !incomplete;\n let next = this.next ?? 'stream';\n while (next && (incomplete || this.hasChars(1)))\n next = yield* this.parseNext(next);\n }\n atLineEnd() {\n let i = this.pos;\n let ch = this.buffer[i];\n while (ch === ' ' || ch === '\\t')\n ch = this.buffer[++i];\n if (!ch || ch === '#' || ch === '\\n')\n return true;\n if (ch === '\\r')\n return this.buffer[i + 1] === '\\n';\n return false;\n }\n charAt(n) {\n return this.buffer[this.pos + n];\n }\n continueScalar(offset) {\n let ch = this.buffer[offset];\n if (this.indentNext > 0) {\n let indent = 0;\n while (ch === ' ')\n ch = this.buffer[++indent + offset];\n if (ch === '\\r') {\n const next = this.buffer[indent + offset + 1];\n if (next === '\\n' || (!next && !this.atEnd))\n return offset + indent + 1;\n }\n return ch === '\\n' || indent >= this.indentNext || (!ch && !this.atEnd)\n ? offset + indent\n : -1;\n }\n if (ch === '-' || ch === '.') {\n const dt = this.buffer.substr(offset, 3);\n if ((dt === '---' || dt === '...') && isEmpty(this.buffer[offset + 3]))\n return -1;\n }\n return offset;\n }\n getLine() {\n let end = this.lineEndPos;\n if (typeof end !== 'number' || (end !== -1 && end < this.pos)) {\n end = this.buffer.indexOf('\\n', this.pos);\n this.lineEndPos = end;\n }\n if (end === -1)\n return this.atEnd ? this.buffer.substring(this.pos) : null;\n if (this.buffer[end - 1] === '\\r')\n end -= 1;\n return this.buffer.substring(this.pos, end);\n }\n hasChars(n) {\n return this.pos + n <= this.buffer.length;\n }\n setNext(state) {\n this.buffer = this.buffer.substring(this.pos);\n this.pos = 0;\n this.lineEndPos = null;\n this.next = state;\n return null;\n }\n peek(n) {\n return this.buffer.substr(this.pos, n);\n }\n *parseNext(next) {\n switch (next) {\n case 'stream':\n return yield* this.parseStream();\n case 'line-start':\n return yield* this.parseLineStart();\n case 'block-start':\n return yield* this.parseBlockStart();\n case 'doc':\n return yield* this.parseDocument();\n case 'flow':\n return yield* this.parseFlowCollection();\n case 'quoted-scalar':\n return yield* this.parseQuotedScalar();\n case 'block-scalar':\n return yield* this.parseBlockScalar();\n case 'plain-scalar':\n return yield* this.parsePlainScalar();\n }\n }\n *parseStream() {\n let line = this.getLine();\n if (line === null)\n return this.setNext('stream');\n if (line[0] === BOM) {\n yield* this.pushCount(1);\n line = line.substring(1);\n }\n if (line[0] === '%') {\n let dirEnd = line.length;\n let cs = line.indexOf('#');\n while (cs !== -1) {\n const ch = line[cs - 1];\n if (ch === ' ' || ch === '\\t') {\n dirEnd = cs - 1;\n break;\n }\n else {\n cs = line.indexOf('#', cs + 1);\n }\n }\n while (true) {\n const ch = line[dirEnd - 1];\n if (ch === ' ' || ch === '\\t')\n dirEnd -= 1;\n else\n break;\n }\n const n = (yield* this.pushCount(dirEnd)) + (yield* this.pushSpaces(true));\n yield* this.pushCount(line.length - n); // possible comment\n this.pushNewline();\n return 'stream';\n }\n if (this.atLineEnd()) {\n const sp = yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - sp);\n yield* this.pushNewline();\n return 'stream';\n }\n yield DOCUMENT;\n return yield* this.parseLineStart();\n }\n *parseLineStart() {\n const ch = this.charAt(0);\n if (!ch && !this.atEnd)\n return this.setNext('line-start');\n if (ch === '-' || ch === '.') {\n if (!this.atEnd && !this.hasChars(4))\n return this.setNext('line-start');\n const s = this.peek(3);\n if ((s === '---' || s === '...') && isEmpty(this.charAt(3))) {\n yield* this.pushCount(3);\n this.indentValue = 0;\n this.indentNext = 0;\n return s === '---' ? 'doc' : 'stream';\n }\n }\n this.indentValue = yield* this.pushSpaces(false);\n if (this.indentNext > this.indentValue && !isEmpty(this.charAt(1)))\n this.indentNext = this.indentValue;\n return yield* this.parseBlockStart();\n }\n *parseBlockStart() {\n const [ch0, ch1] = this.peek(2);\n if (!ch1 && !this.atEnd)\n return this.setNext('block-start');\n if ((ch0 === '-' || ch0 === '?' || ch0 === ':') && isEmpty(ch1)) {\n const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));\n this.indentNext = this.indentValue + 1;\n this.indentValue += n;\n return 'block-start';\n }\n return 'doc';\n }\n *parseDocument() {\n yield* this.pushSpaces(true);\n const line = this.getLine();\n if (line === null)\n return this.setNext('doc');\n let n = yield* this.pushIndicators();\n switch (line[n]) {\n case '#':\n yield* this.pushCount(line.length - n);\n // fallthrough\n case undefined:\n yield* this.pushNewline();\n return yield* this.parseLineStart();\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel = 1;\n return 'flow';\n case '}':\n case ']':\n // this is an error\n yield* this.pushCount(1);\n return 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'doc';\n case '\"':\n case \"'\":\n return yield* this.parseQuotedScalar();\n case '|':\n case '>':\n n += yield* this.parseBlockScalarHeader();\n n += yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - n);\n yield* this.pushNewline();\n return yield* this.parseBlockScalar();\n default:\n return yield* this.parsePlainScalar();\n }\n }\n *parseFlowCollection() {\n let nl, sp;\n let indent = -1;\n do {\n nl = yield* this.pushNewline();\n if (nl > 0) {\n sp = yield* this.pushSpaces(false);\n this.indentValue = indent = sp;\n }\n else {\n sp = 0;\n }\n sp += yield* this.pushSpaces(true);\n } while (nl + sp > 0);\n const line = this.getLine();\n if (line === null)\n return this.setNext('flow');\n if ((indent !== -1 && indent < this.indentNext && line[0] !== '#') ||\n (indent === 0 &&\n (line.startsWith('---') || line.startsWith('...')) &&\n isEmpty(line[3]))) {\n // Allowing for the terminal ] or } at the same (rather than greater)\n // indent level as the initial [ or { is technically invalid, but\n // failing here would be surprising to users.\n const atFlowEndMarker = indent === this.indentNext - 1 &&\n this.flowLevel === 1 &&\n (line[0] === ']' || line[0] === '}');\n if (!atFlowEndMarker) {\n // this is an error\n this.flowLevel = 0;\n yield FLOW_END;\n return yield* this.parseLineStart();\n }\n }\n let n = 0;\n while (line[n] === ',') {\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n this.flowKey = false;\n }\n n += yield* this.pushIndicators();\n switch (line[n]) {\n case undefined:\n return 'flow';\n case '#':\n yield* this.pushCount(line.length - n);\n return 'flow';\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel += 1;\n return 'flow';\n case '}':\n case ']':\n yield* this.pushCount(1);\n this.flowKey = true;\n this.flowLevel -= 1;\n return this.flowLevel ? 'flow' : 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'flow';\n case '\"':\n case \"'\":\n this.flowKey = true;\n return yield* this.parseQuotedScalar();\n case ':': {\n const next = this.charAt(1);\n if (this.flowKey || isEmpty(next) || next === ',') {\n this.flowKey = false;\n yield* this.pushCount(1);\n yield* this.pushSpaces(true);\n return 'flow';\n }\n }\n // fallthrough\n default:\n this.flowKey = false;\n return yield* this.parsePlainScalar();\n }\n }\n *parseQuotedScalar() {\n const quote = this.charAt(0);\n let end = this.buffer.indexOf(quote, this.pos + 1);\n if (quote === \"'\") {\n while (end !== -1 && this.buffer[end + 1] === \"'\")\n end = this.buffer.indexOf(\"'\", end + 2);\n }\n else {\n // double-quote\n while (end !== -1) {\n let n = 0;\n while (this.buffer[end - 1 - n] === '\\\\')\n n += 1;\n if (n % 2 === 0)\n break;\n end = this.buffer.indexOf('\"', end + 1);\n }\n }\n // Only looking for newlines within the quotes\n const qb = this.buffer.substring(0, end);\n let nl = qb.indexOf('\\n', this.pos);\n if (nl !== -1) {\n while (nl !== -1) {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = qb.indexOf('\\n', cs);\n }\n if (nl !== -1) {\n // this is an error caused by an unexpected unindent\n end = nl - (qb[nl - 1] === '\\r' ? 2 : 1);\n }\n }\n if (end === -1) {\n if (!this.atEnd)\n return this.setNext('quoted-scalar');\n end = this.buffer.length;\n }\n yield* this.pushToIndex(end + 1, false);\n return this.flowLevel ? 'flow' : 'doc';\n }\n *parseBlockScalarHeader() {\n this.blockScalarIndent = -1;\n this.blockScalarKeep = false;\n let i = this.pos;\n while (true) {\n const ch = this.buffer[++i];\n if (ch === '+')\n this.blockScalarKeep = true;\n else if (ch > '0' && ch <= '9')\n this.blockScalarIndent = Number(ch) - 1;\n else if (ch !== '-')\n break;\n }\n return yield* this.pushUntil(ch => isEmpty(ch) || ch === '#');\n }\n *parseBlockScalar() {\n let nl = this.pos - 1; // may be -1 if this.pos === 0\n let indent = 0;\n let ch;\n loop: for (let i = this.pos; (ch = this.buffer[i]); ++i) {\n switch (ch) {\n case ' ':\n indent += 1;\n break;\n case '\\n':\n nl = i;\n indent = 0;\n break;\n case '\\r': {\n const next = this.buffer[i + 1];\n if (!next && !this.atEnd)\n return this.setNext('block-scalar');\n if (next === '\\n')\n break;\n } // fallthrough\n default:\n break loop;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('block-scalar');\n if (indent >= this.indentNext) {\n if (this.blockScalarIndent === -1)\n this.indentNext = indent;\n else {\n this.indentNext =\n this.blockScalarIndent + (this.indentNext === 0 ? 1 : this.indentNext);\n }\n do {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = this.buffer.indexOf('\\n', cs);\n } while (nl !== -1);\n if (nl === -1) {\n if (!this.atEnd)\n return this.setNext('block-scalar');\n nl = this.buffer.length;\n }\n }\n // Trailing insufficiently indented tabs are invalid.\n // To catch that during parsing, we include them in the block scalar value.\n let i = nl + 1;\n ch = this.buffer[i];\n while (ch === ' ')\n ch = this.buffer[++i];\n if (ch === '\\t') {\n while (ch === '\\t' || ch === ' ' || ch === '\\r' || ch === '\\n')\n ch = this.buffer[++i];\n nl = i - 1;\n }\n else if (!this.blockScalarKeep) {\n do {\n let i = nl - 1;\n let ch = this.buffer[i];\n if (ch === '\\r')\n ch = this.buffer[--i];\n const lastChar = i; // Drop the line if last char not more indented\n while (ch === ' ')\n ch = this.buffer[--i];\n if (ch === '\\n' && i >= this.pos && i + 1 + indent > lastChar)\n nl = i;\n else\n break;\n } while (true);\n }\n yield SCALAR;\n yield* this.pushToIndex(nl + 1, true);\n return yield* this.parseLineStart();\n }\n *parsePlainScalar() {\n const inFlow = this.flowLevel > 0;\n let end = this.pos - 1;\n let i = this.pos - 1;\n let ch;\n while ((ch = this.buffer[++i])) {\n if (ch === ':') {\n const next = this.buffer[i + 1];\n if (isEmpty(next) || (inFlow && flowIndicatorChars.has(next)))\n break;\n end = i;\n }\n else if (isEmpty(ch)) {\n let next = this.buffer[i + 1];\n if (ch === '\\r') {\n if (next === '\\n') {\n i += 1;\n ch = '\\n';\n next = this.buffer[i + 1];\n }\n else\n end = i;\n }\n if (next === '#' || (inFlow && flowIndicatorChars.has(next)))\n break;\n if (ch === '\\n') {\n const cs = this.continueScalar(i + 1);\n if (cs === -1)\n break;\n i = Math.max(i, cs - 2); // to advance, but still account for ' #'\n }\n }\n else {\n if (inFlow && flowIndicatorChars.has(ch))\n break;\n end = i;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('plain-scalar');\n yield SCALAR;\n yield* this.pushToIndex(end + 1, true);\n return inFlow ? 'flow' : 'doc';\n }\n *pushCount(n) {\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos += n;\n return n;\n }\n return 0;\n }\n *pushToIndex(i, allowEmpty) {\n const s = this.buffer.slice(this.pos, i);\n if (s) {\n yield s;\n this.pos += s.length;\n return s.length;\n }\n else if (allowEmpty)\n yield '';\n return 0;\n }\n *pushIndicators() {\n let n = 0;\n loop: while (true) {\n switch (this.charAt(0)) {\n case '!':\n n += yield* this.pushTag();\n n += yield* this.pushSpaces(true);\n continue loop;\n case '&':\n n += yield* this.pushUntil(isNotAnchorChar);\n n += yield* this.pushSpaces(true);\n continue loop;\n case '-': // this is an error\n case '?': // this is an error outside flow collections\n case ':': {\n const inFlow = this.flowLevel > 0;\n const ch1 = this.charAt(1);\n if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {\n if (!inFlow)\n this.indentNext = this.indentValue + 1;\n else if (this.flowKey)\n this.flowKey = false;\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n continue loop;\n }\n }\n }\n break loop;\n }\n return n;\n }\n *pushTag() {\n if (this.charAt(1) === '<') {\n let i = this.pos + 2;\n let ch = this.buffer[i];\n while (!isEmpty(ch) && ch !== '>')\n ch = this.buffer[++i];\n return yield* this.pushToIndex(ch === '>' ? i + 1 : i, false);\n }\n else {\n let i = this.pos + 1;\n let ch = this.buffer[i];\n while (ch) {\n if (tagChars.has(ch))\n ch = this.buffer[++i];\n else if (ch === '%' &&\n hexDigits.has(this.buffer[i + 1]) &&\n hexDigits.has(this.buffer[i + 2])) {\n ch = this.buffer[(i += 3)];\n }\n else\n break;\n }\n return yield* this.pushToIndex(i, false);\n }\n }\n *pushNewline() {\n const ch = this.buffer[this.pos];\n if (ch === '\\n')\n return yield* this.pushCount(1);\n else if (ch === '\\r' && this.charAt(1) === '\\n')\n return yield* this.pushCount(2);\n else\n return 0;\n }\n *pushSpaces(allowTabs) {\n let i = this.pos - 1;\n let ch;\n do {\n ch = this.buffer[++i];\n } while (ch === ' ' || (allowTabs && ch === '\\t'));\n const n = i - this.pos;\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos = i;\n }\n return n;\n }\n *pushUntil(test) {\n let i = this.pos;\n let ch = this.buffer[i];\n while (!test(ch))\n ch = this.buffer[++i];\n return yield* this.pushToIndex(i, false);\n }\n}\n\nexport { Lexer };\n","/**\n * Tracks newlines during parsing in order to provide an efficient API for\n * determining the one-indexed `{ line, col }` position for any offset\n * within the input.\n */\nclass LineCounter {\n constructor() {\n this.lineStarts = [];\n /**\n * Should be called in ascending order. Otherwise, call\n * `lineCounter.lineStarts.sort()` before calling `linePos()`.\n */\n this.addNewLine = (offset) => this.lineStarts.push(offset);\n /**\n * Performs a binary search and returns the 1-indexed { line, col }\n * position of `offset`. If `line === 0`, `addNewLine` has never been\n * called or `offset` is before the first known newline.\n */\n this.linePos = (offset) => {\n let low = 0;\n let high = this.lineStarts.length;\n while (low < high) {\n const mid = (low + high) >> 1; // Math.floor((low + high) / 2)\n if (this.lineStarts[mid] < offset)\n low = mid + 1;\n else\n high = mid;\n }\n if (this.lineStarts[low] === offset)\n return { line: low + 1, col: 1 };\n if (low === 0)\n return { line: 0, col: offset };\n const start = this.lineStarts[low - 1];\n return { line: low, col: offset - start + 1 };\n };\n }\n}\n\nexport { LineCounter };\n","import { tokenType } from './cst.js';\nimport { Lexer } from './lexer.js';\n\nfunction includesToken(list, type) {\n for (let i = 0; i < list.length; ++i)\n if (list[i].type === type)\n return true;\n return false;\n}\nfunction findNonEmptyIndex(list) {\n for (let i = 0; i < list.length; ++i) {\n switch (list[i].type) {\n case 'space':\n case 'comment':\n case 'newline':\n break;\n default:\n return i;\n }\n }\n return -1;\n}\nfunction isFlowToken(token) {\n switch (token?.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'flow-collection':\n return true;\n default:\n return false;\n }\n}\nfunction getPrevProps(parent) {\n switch (parent.type) {\n case 'document':\n return parent.start;\n case 'block-map': {\n const it = parent.items[parent.items.length - 1];\n return it.sep ?? it.start;\n }\n case 'block-seq':\n return parent.items[parent.items.length - 1].start;\n /* istanbul ignore next should not happen */\n default:\n return [];\n }\n}\n/** Note: May modify input array */\nfunction getFirstKeyStartProps(prev) {\n if (prev.length === 0)\n return [];\n let i = prev.length;\n loop: while (--i >= 0) {\n switch (prev[i].type) {\n case 'doc-start':\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n case 'newline':\n break loop;\n }\n }\n while (prev[++i]?.type === 'space') {\n /* loop */\n }\n return prev.splice(i, prev.length);\n}\nfunction arrayPushArray(target, source) {\n // May exhaust call stack with large `source` array\n if (source.length < 1e5)\n Array.prototype.push.apply(target, source);\n else\n for (let i = 0; i < source.length; ++i)\n target.push(source[i]);\n}\nfunction fixFlowSeqItems(fc) {\n if (fc.start.type === 'flow-seq-start') {\n for (const it of fc.items) {\n if (it.sep &&\n !it.value &&\n !includesToken(it.start, 'explicit-key-ind') &&\n !includesToken(it.sep, 'map-value-ind')) {\n if (it.key)\n it.value = it.key;\n delete it.key;\n if (isFlowToken(it.value)) {\n if (it.value.end)\n arrayPushArray(it.value.end, it.sep);\n else\n it.value.end = it.sep;\n }\n else\n arrayPushArray(it.start, it.sep);\n delete it.sep;\n }\n }\n }\n}\n/**\n * A YAML concrete syntax tree (CST) parser\n *\n * ```ts\n * const src: string = ...\n * for (const token of new Parser().parse(src)) {\n * // token: Token\n * }\n * ```\n *\n * To use the parser with a user-provided lexer:\n *\n * ```ts\n * function* parse(source: string, lexer: Lexer) {\n * const parser = new Parser()\n * for (const lexeme of lexer.lex(source))\n * yield* parser.next(lexeme)\n * yield* parser.end()\n * }\n *\n * const src: string = ...\n * const lexer = new Lexer()\n * for (const token of parse(src, lexer)) {\n * // token: Token\n * }\n * ```\n */\nclass Parser {\n /**\n * @param onNewLine - If defined, called separately with the start position of\n * each new line (in `parse()`, including the start of input).\n */\n constructor(onNewLine) {\n /** If true, space and sequence indicators count as indentation */\n this.atNewLine = true;\n /** If true, next token is a scalar value */\n this.atScalar = false;\n /** Current indentation level */\n this.indent = 0;\n /** Current offset since the start of parsing */\n this.offset = 0;\n /** On the same line with a block map key */\n this.onKeyLine = false;\n /** Top indicates the node that's currently being built */\n this.stack = [];\n /** The source of the current token, set in parse() */\n this.source = '';\n /** The type of the current token, set in parse() */\n this.type = '';\n // Must be defined after `next()`\n this.lexer = new Lexer();\n this.onNewLine = onNewLine;\n }\n /**\n * Parse `source` as a YAML stream.\n * If `incomplete`, a part of the last line may be left as a buffer for the next call.\n *\n * Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.\n *\n * @returns A generator of tokens representing each directive, document, and other structure.\n */\n *parse(source, incomplete = false) {\n if (this.onNewLine && this.offset === 0)\n this.onNewLine(0);\n for (const lexeme of this.lexer.lex(source, incomplete))\n yield* this.next(lexeme);\n if (!incomplete)\n yield* this.end();\n }\n /**\n * Advance the parser by the `source` of one lexical token.\n */\n *next(source) {\n this.source = source;\n if (this.atScalar) {\n this.atScalar = false;\n yield* this.step();\n this.offset += source.length;\n return;\n }\n const type = tokenType(source);\n if (!type) {\n const message = `Not a YAML token: ${source}`;\n yield* this.pop({ type: 'error', offset: this.offset, message, source });\n this.offset += source.length;\n }\n else if (type === 'scalar') {\n this.atNewLine = false;\n this.atScalar = true;\n this.type = 'scalar';\n }\n else {\n this.type = type;\n yield* this.step();\n switch (type) {\n case 'newline':\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine)\n this.onNewLine(this.offset + source.length);\n break;\n case 'space':\n if (this.atNewLine && source[0] === ' ')\n this.indent += source.length;\n break;\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n if (this.atNewLine)\n this.indent += source.length;\n break;\n case 'doc-mode':\n case 'flow-error-end':\n return;\n default:\n this.atNewLine = false;\n }\n this.offset += source.length;\n }\n }\n /** Call at end of input to push out any remaining constructions */\n *end() {\n while (this.stack.length > 0)\n yield* this.pop();\n }\n get sourceToken() {\n const st = {\n type: this.type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n return st;\n }\n *step() {\n const top = this.peek(1);\n if (this.type === 'doc-end' && top?.type !== 'doc-end') {\n while (this.stack.length > 0)\n yield* this.pop();\n this.stack.push({\n type: 'doc-end',\n offset: this.offset,\n source: this.source\n });\n return;\n }\n if (!top)\n return yield* this.stream();\n switch (top.type) {\n case 'document':\n return yield* this.document(top);\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return yield* this.scalar(top);\n case 'block-scalar':\n return yield* this.blockScalar(top);\n case 'block-map':\n return yield* this.blockMap(top);\n case 'block-seq':\n return yield* this.blockSequence(top);\n case 'flow-collection':\n return yield* this.flowCollection(top);\n case 'doc-end':\n return yield* this.documentEnd(top);\n }\n /* istanbul ignore next should not happen */\n yield* this.pop();\n }\n peek(n) {\n return this.stack[this.stack.length - n];\n }\n *pop(error) {\n const token = error ?? this.stack.pop();\n /* istanbul ignore if should not happen */\n if (!token) {\n const message = 'Tried to pop an empty stack';\n yield { type: 'error', offset: this.offset, source: '', message };\n }\n else if (this.stack.length === 0) {\n yield token;\n }\n else {\n const top = this.peek(1);\n if (token.type === 'block-scalar') {\n // Block scalars use their parent rather than header indent\n token.indent = 'indent' in top ? top.indent : 0;\n }\n else if (token.type === 'flow-collection' && top.type === 'document') {\n // Ignore all indent for top-level flow collections\n token.indent = 0;\n }\n if (token.type === 'flow-collection')\n fixFlowSeqItems(token);\n switch (top.type) {\n case 'document':\n top.value = token;\n break;\n case 'block-scalar':\n top.props.push(token); // error\n break;\n case 'block-map': {\n const it = top.items[top.items.length - 1];\n if (it.value) {\n top.items.push({ start: [], key: token, sep: [] });\n this.onKeyLine = true;\n return;\n }\n else if (it.sep) {\n it.value = token;\n }\n else {\n Object.assign(it, { key: token, sep: [] });\n this.onKeyLine = !it.explicitKey;\n return;\n }\n break;\n }\n case 'block-seq': {\n const it = top.items[top.items.length - 1];\n if (it.value)\n top.items.push({ start: [], value: token });\n else\n it.value = token;\n break;\n }\n case 'flow-collection': {\n const it = top.items[top.items.length - 1];\n if (!it || it.value)\n top.items.push({ start: [], key: token, sep: [] });\n else if (it.sep)\n it.value = token;\n else\n Object.assign(it, { key: token, sep: [] });\n return;\n }\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.pop(token);\n }\n if ((top.type === 'document' ||\n top.type === 'block-map' ||\n top.type === 'block-seq') &&\n (token.type === 'block-map' || token.type === 'block-seq')) {\n const last = token.items[token.items.length - 1];\n if (last &&\n !last.sep &&\n !last.value &&\n last.start.length > 0 &&\n findNonEmptyIndex(last.start) === -1 &&\n (token.indent === 0 ||\n last.start.every(st => st.type !== 'comment' || st.indent < token.indent))) {\n if (top.type === 'document')\n top.end = last.start;\n else\n top.items.push({ start: last.start });\n token.items.splice(-1, 1);\n }\n }\n }\n }\n *stream() {\n switch (this.type) {\n case 'directive-line':\n yield { type: 'directive', offset: this.offset, source: this.source };\n return;\n case 'byte-order-mark':\n case 'space':\n case 'comment':\n case 'newline':\n yield this.sourceToken;\n return;\n case 'doc-mode':\n case 'doc-start': {\n const doc = {\n type: 'document',\n offset: this.offset,\n start: []\n };\n if (this.type === 'doc-start')\n doc.start.push(this.sourceToken);\n this.stack.push(doc);\n return;\n }\n }\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML stream`,\n source: this.source\n };\n }\n *document(doc) {\n if (doc.value)\n return yield* this.lineEnd(doc);\n switch (this.type) {\n case 'doc-start': {\n if (findNonEmptyIndex(doc.start) !== -1) {\n yield* this.pop();\n yield* this.step();\n }\n else\n doc.start.push(this.sourceToken);\n return;\n }\n case 'anchor':\n case 'tag':\n case 'space':\n case 'comment':\n case 'newline':\n doc.start.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(doc);\n if (bv)\n this.stack.push(bv);\n else {\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML document`,\n source: this.source\n };\n }\n }\n *scalar(scalar) {\n if (this.type === 'map-value-ind') {\n const prev = getPrevProps(this.peek(2));\n const start = getFirstKeyStartProps(prev);\n let sep;\n if (scalar.end) {\n sep = scalar.end;\n sep.push(this.sourceToken);\n delete scalar.end;\n }\n else\n sep = [this.sourceToken];\n const map = {\n type: 'block-map',\n offset: scalar.offset,\n indent: scalar.indent,\n items: [{ start, key: scalar, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else\n yield* this.lineEnd(scalar);\n }\n *blockScalar(scalar) {\n switch (this.type) {\n case 'space':\n case 'comment':\n case 'newline':\n scalar.props.push(this.sourceToken);\n return;\n case 'scalar':\n scalar.source = this.source;\n // block-scalar source includes trailing newline\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n yield* this.pop();\n break;\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.step();\n }\n }\n *blockMap(map) {\n const it = map.items[map.items.length - 1];\n // it.sep is true-ish if pair already has key or : separator\n switch (this.type) {\n case 'newline':\n this.onKeyLine = false;\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'space':\n case 'comment':\n if (it.value) {\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n if (this.atIndentedComment(it.start, map.indent)) {\n const prev = map.items[map.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n arrayPushArray(end, it.start);\n end.push(this.sourceToken);\n map.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n }\n if (this.indent >= map.indent) {\n const atMapIndent = !this.onKeyLine && this.indent === map.indent;\n const atNextItem = atMapIndent &&\n (it.sep || it.explicitKey) &&\n this.type !== 'seq-item-ind';\n // For empty nodes, assign newline-separated not indented empty tokens to following node\n let start = [];\n if (atNextItem && it.sep && !it.value) {\n const nl = [];\n for (let i = 0; i < it.sep.length; ++i) {\n const st = it.sep[i];\n switch (st.type) {\n case 'newline':\n nl.push(i);\n break;\n case 'space':\n break;\n case 'comment':\n if (st.indent > map.indent)\n nl.length = 0;\n break;\n default:\n nl.length = 0;\n }\n }\n if (nl.length >= 2)\n start = it.sep.splice(nl[1]);\n }\n switch (this.type) {\n case 'anchor':\n case 'tag':\n if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'explicit-key-ind':\n if (!it.sep && !it.explicitKey) {\n it.start.push(this.sourceToken);\n it.explicitKey = true;\n }\n else if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start, explicitKey: true });\n }\n else {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken], explicitKey: true }]\n });\n }\n this.onKeyLine = true;\n return;\n case 'map-value-ind':\n if (it.explicitKey) {\n if (!it.sep) {\n if (includesToken(it.start, 'newline')) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else {\n const start = getFirstKeyStartProps(it.start);\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n }\n else if (it.value) {\n map.items.push({ start: [], key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n else if (isFlowToken(it.key) &&\n !includesToken(it.sep, 'newline')) {\n const start = getFirstKeyStartProps(it.start);\n const key = it.key;\n const sep = it.sep;\n sep.push(this.sourceToken);\n // @ts-expect-error type guard is wrong here\n delete it.key;\n // @ts-expect-error type guard is wrong here\n delete it.sep;\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key, sep }]\n });\n }\n else if (start.length > 0) {\n // Not actually at next item\n it.sep = it.sep.concat(start, this.sourceToken);\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n else {\n if (!it.sep) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else if (it.value || atNextItem) {\n map.items.push({ start, key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [], key: null, sep: [this.sourceToken] }]\n });\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n this.onKeyLine = true;\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (atNextItem || it.value) {\n map.items.push({ start, key: fs, sep: [] });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n this.stack.push(fs);\n }\n else {\n Object.assign(it, { key: fs, sep: [] });\n this.onKeyLine = true;\n }\n return;\n }\n default: {\n const bv = this.startBlockValue(map);\n if (bv) {\n if (bv.type === 'block-seq') {\n if (!it.explicitKey &&\n it.sep &&\n !includesToken(it.sep, 'newline')) {\n yield* this.pop({\n type: 'error',\n offset: this.offset,\n message: 'Unexpected block-seq-ind on same line with key',\n source: this.source\n });\n return;\n }\n }\n else if (atMapIndent) {\n map.items.push({ start });\n }\n this.stack.push(bv);\n return;\n }\n }\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *blockSequence(seq) {\n const it = seq.items[seq.items.length - 1];\n switch (this.type) {\n case 'newline':\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n seq.items.push({ start: [this.sourceToken] });\n }\n else\n it.start.push(this.sourceToken);\n return;\n case 'space':\n case 'comment':\n if (it.value)\n seq.items.push({ start: [this.sourceToken] });\n else {\n if (this.atIndentedComment(it.start, seq.indent)) {\n const prev = seq.items[seq.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n arrayPushArray(end, it.start);\n end.push(this.sourceToken);\n seq.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n case 'anchor':\n case 'tag':\n if (it.value || this.indent <= seq.indent)\n break;\n it.start.push(this.sourceToken);\n return;\n case 'seq-item-ind':\n if (this.indent !== seq.indent)\n break;\n if (it.value || includesToken(it.start, 'seq-item-ind'))\n seq.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n }\n if (this.indent > seq.indent) {\n const bv = this.startBlockValue(seq);\n if (bv) {\n this.stack.push(bv);\n return;\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *flowCollection(fc) {\n const it = fc.items[fc.items.length - 1];\n if (this.type === 'flow-error-end') {\n let top;\n do {\n yield* this.pop();\n top = this.peek(1);\n } while (top?.type === 'flow-collection');\n }\n else if (fc.end.length === 0) {\n switch (this.type) {\n case 'comma':\n case 'explicit-key-ind':\n if (!it || it.sep)\n fc.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n case 'map-value-ind':\n if (!it || it.value)\n fc.items.push({ start: [], key: null, sep: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n return;\n case 'space':\n case 'comment':\n case 'newline':\n case 'anchor':\n case 'tag':\n if (!it || it.value)\n fc.items.push({ start: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n it.start.push(this.sourceToken);\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (!it || it.value)\n fc.items.push({ start: [], key: fs, sep: [] });\n else if (it.sep)\n this.stack.push(fs);\n else\n Object.assign(it, { key: fs, sep: [] });\n return;\n }\n case 'flow-map-end':\n case 'flow-seq-end':\n fc.end.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(fc);\n /* istanbul ignore else should not happen */\n if (bv)\n this.stack.push(bv);\n else {\n yield* this.pop();\n yield* this.step();\n }\n }\n else {\n const parent = this.peek(2);\n if (parent.type === 'block-map' &&\n ((this.type === 'map-value-ind' && parent.indent === fc.indent) ||\n (this.type === 'newline' &&\n !parent.items[parent.items.length - 1].sep))) {\n yield* this.pop();\n yield* this.step();\n }\n else if (this.type === 'map-value-ind' &&\n parent.type !== 'flow-collection') {\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n fixFlowSeqItems(fc);\n const sep = fc.end.splice(1, fc.end.length);\n sep.push(this.sourceToken);\n const map = {\n type: 'block-map',\n offset: fc.offset,\n indent: fc.indent,\n items: [{ start, key: fc, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else {\n yield* this.lineEnd(fc);\n }\n }\n }\n flowScalar(type) {\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n return {\n type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n }\n startBlockValue(parent) {\n switch (this.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return this.flowScalar(this.type);\n case 'block-scalar-header':\n return {\n type: 'block-scalar',\n offset: this.offset,\n indent: this.indent,\n props: [this.sourceToken],\n source: ''\n };\n case 'flow-map-start':\n case 'flow-seq-start':\n return {\n type: 'flow-collection',\n offset: this.offset,\n indent: this.indent,\n start: this.sourceToken,\n items: [],\n end: []\n };\n case 'seq-item-ind':\n return {\n type: 'block-seq',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken] }]\n };\n case 'explicit-key-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n start.push(this.sourceToken);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, explicitKey: true }]\n };\n }\n case 'map-value-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n };\n }\n }\n return null;\n }\n atIndentedComment(start, indent) {\n if (this.type !== 'comment')\n return false;\n if (this.indent <= indent)\n return false;\n return start.every(st => st.type === 'newline' || st.type === 'space');\n }\n *documentEnd(docEnd) {\n if (this.type !== 'doc-mode') {\n if (docEnd.end)\n docEnd.end.push(this.sourceToken);\n else\n docEnd.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n *lineEnd(token) {\n switch (this.type) {\n case 'comma':\n case 'doc-start':\n case 'doc-end':\n case 'flow-seq-end':\n case 'flow-map-end':\n case 'map-value-ind':\n yield* this.pop();\n yield* this.step();\n break;\n case 'newline':\n this.onKeyLine = false;\n // fallthrough\n case 'space':\n case 'comment':\n default:\n // all other values are errors\n if (token.end)\n token.end.push(this.sourceToken);\n else\n token.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n}\n\nexport { Parser };\n","import { Composer } from './compose/composer.js';\nimport { Document } from './doc/Document.js';\nimport { prettifyError, YAMLParseError } from './errors.js';\nimport { warn } from './log.js';\nimport { isDocument } from './nodes/identity.js';\nimport { LineCounter } from './parse/line-counter.js';\nimport { Parser } from './parse/parser.js';\n\nfunction parseOptions(options) {\n const prettyErrors = options.prettyErrors !== false;\n const lineCounter = options.lineCounter || (prettyErrors && new LineCounter()) || null;\n return { lineCounter, prettyErrors };\n}\n/**\n * Parse the input as a stream of YAML documents.\n *\n * Documents should be separated from each other by `...` or `---` marker lines.\n *\n * @returns If an empty `docs` array is returned, it will be of type\n * EmptyStream and contain additional stream information. In\n * TypeScript, you should use `'empty' in docs` as a type guard for it.\n */\nfunction parseAllDocuments(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n const docs = Array.from(composer.compose(parser.parse(source)));\n if (prettyErrors && lineCounter)\n for (const doc of docs) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n if (docs.length > 0)\n return docs;\n return Object.assign([], { empty: true }, composer.streamInfo());\n}\n/** Parse an input string into a single YAML.Document */\nfunction parseDocument(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n // `doc` is always set by compose.end(true) at the very latest\n let doc = null;\n for (const _doc of composer.compose(parser.parse(source), true, source.length)) {\n if (!doc)\n doc = _doc;\n else if (doc.options.logLevel !== 'silent') {\n doc.errors.push(new YAMLParseError(_doc.range.slice(0, 2), 'MULTIPLE_DOCS', 'Source contains multiple documents; please use YAML.parseAllDocuments()'));\n break;\n }\n }\n if (prettyErrors && lineCounter) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n return doc;\n}\nfunction parse(src, reviver, options) {\n let _reviver = undefined;\n if (typeof reviver === 'function') {\n _reviver = reviver;\n }\n else if (options === undefined && reviver && typeof reviver === 'object') {\n options = reviver;\n }\n const doc = parseDocument(src, options);\n if (!doc)\n return null;\n doc.warnings.forEach(warning => warn(doc.options.logLevel, warning));\n if (doc.errors.length > 0) {\n if (doc.options.logLevel !== 'silent')\n throw doc.errors[0];\n else\n doc.errors = [];\n }\n return doc.toJS(Object.assign({ reviver: _reviver }, options));\n}\nfunction stringify(value, replacer, options) {\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n }\n if (typeof options === 'string')\n options = options.length;\n if (typeof options === 'number') {\n const indent = Math.round(options);\n options = indent < 1 ? undefined : indent > 8 ? { indent: 8 } : { indent };\n }\n if (value === undefined) {\n const { keepUndefined } = options ?? replacer ?? {};\n if (!keepUndefined)\n return undefined;\n }\n if (isDocument(value) && !_replacer)\n return value.toString(options);\n return new Document(value, _replacer, options).toString(options);\n}\n\nexport { parse, parseAllDocuments, parseDocument, stringify };\n","// `export * as default from ...` fails on Webpack v4\n// https://github.com/eemeli/yaml/issues/228\nimport * as YAML from './dist/index.js'\nexport default YAML\nexport * from './dist/index.js'\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tif(!__webpack_require__.o(exports, key)) {\n\t\t\t\tif(binding === 0) {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, value: definition[i++] });\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: binding });\n\t\t\t\t}\n\t\t\t} else if(binding === 0) { i++; }\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { CedarWriters } from './org/metadatacenter/io/writer/CedarWriters';\nimport { CedarBuilders } from './org/metadatacenter/io/builder/CedarBuilders';\n\nimport { JsonTemplateFieldReader } from './org/metadatacenter/io/reader/json/JsonTemplateFieldReader';\nimport { JsonTemplateElementReader } from './org/metadatacenter/io/reader/json/JsonTemplateElementReader';\nimport { JsonTemplateReader } from './org/metadatacenter/io/reader/json/JsonTemplateReader';\n\nimport { JsonTemplateFieldWriterInternal } from './org/metadatacenter/io/writer/json/JsonTemplateFieldWriterInternal';\nimport { YamlTemplateFieldWriterInternal } from './org/metadatacenter/io/writer/yaml/YamlTemplateFieldWriterInternal';\n\nimport { JsonTemplateElementWriter } from './org/metadatacenter/io/writer/json/JsonTemplateElementWriter';\nimport { JsonTemplateWriter } from './org/metadatacenter/io/writer/json/JsonTemplateWriter';\n\nimport { YamlTemplateElementWriter } from './org/metadatacenter/io/writer/yaml/YamlTemplateElementWriter';\nimport { YamlTemplateWriter } from './org/metadatacenter/io/writer/yaml/YamlTemplateWriter';\n\nimport { TemplateField } from './org/metadatacenter/model/cedar/field/TemplateField';\nimport { AttributeValueField } from './org/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueField';\nimport { AttributeValueFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/attribute-value/AttributeValueFieldBuilder';\nimport { CheckboxField } from './org/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxField';\nimport { CheckboxFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/checkbox/CheckboxFieldBuilder';\nimport { ControlledTermField } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermField';\nimport { ControlledTermFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/ControlledTermFieldBuilder';\nimport { EmailField } from './org/metadatacenter/model/cedar/field/dynamic/email/EmailField';\nimport { EmailFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/email/EmailFieldBuilder';\nimport { LinkField } from './org/metadatacenter/model/cedar/field/dynamic/link/LinkField';\nimport { LinkFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/link/LinkFieldBuilder';\nimport { SingleChoiceListField } from './org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListField';\nimport { SingleChoiceListFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/list-single-choice/SingleChoiceListFieldBuilder';\nimport { MultipleChoiceListField } from './org/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListField';\nimport { MultipleChoiceListFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/list-multiple-choice/MultipleChoiceListFieldBuilder';\nimport { NumericField } from './org/metadatacenter/model/cedar/field/dynamic/numeric/NumericField';\nimport { NumericFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/numeric/NumericFieldBuilder';\nimport { PhoneNumberField } from './org/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberField';\nimport { PhoneNumberFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/phone-number/PhoneNumberFieldBuilder';\nimport { RadioField } from './org/metadatacenter/model/cedar/field/dynamic/radio/RadioField';\nimport { RadioFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/radio/RadioFieldBuilder';\nimport { TemporalField } from './org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalField';\nimport { TemporalFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/temporal/TemporalFieldBuilder';\nimport { TextArea } from './org/metadatacenter/model/cedar/field/dynamic/textarea/TextArea';\nimport { TextAreaBuilder } from './org/metadatacenter/model/cedar/field/dynamic/textarea/TextAreaBuilder';\nimport { TextField } from './org/metadatacenter/model/cedar/field/dynamic/textfield/TextField';\nimport { TextFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/textfield/TextFieldBuilder';\nimport { StaticImageField } from './org/metadatacenter/model/cedar/field/static/image/StaticImageField';\nimport { StaticImageFieldBuilder } from './org/metadatacenter/model/cedar/field/static/image/StaticImageFieldBuilder';\nimport { StaticPageBreakField } from './org/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakField';\nimport { StaticPageBreakFieldBuilder } from './org/metadatacenter/model/cedar/field/static/page-break/StaticPageBreakFieldBuilder';\nimport { StaticRichTextField } from './org/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextField';\nimport { StaticRichTextFieldBuilder } from './org/metadatacenter/model/cedar/field/static/rich-text/StaticRichTextFieldBuilder';\nimport { StaticSectionBreakField } from './org/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakField';\nimport { StaticSectionBreakFieldBuilder } from './org/metadatacenter/model/cedar/field/static/section-break/StaticSectionBreakFieldBuilder';\nimport { StaticYoutubeField } from './org/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeField';\nimport { StaticYoutubeFieldBuilder } from './org/metadatacenter/model/cedar/field/static/youtube/StaticYoutubeFieldBuilder';\n\nimport { TemplateElement } from './org/metadatacenter/model/cedar/element/TemplateElement';\nimport { TemplateElementBuilder } from './org/metadatacenter/model/cedar/element/TemplateElementBuilder';\nimport { Template } from './org/metadatacenter/model/cedar/template/Template';\nimport { TemplateBuilder } from './org/metadatacenter/model/cedar/template/TemplateBuilder';\nimport { TemplateInstanceBuilder } from './org/metadatacenter/model/cedar/template-instance/TemplateInstanceBuilder';\n\nimport { JsonNode } from './org/metadatacenter/model/cedar/types/basic-types/JsonNode';\nimport { IsoDate } from './org/metadatacenter/model/cedar/types/wrapped-types/IsoDate';\nimport { SchemaVersion } from './org/metadatacenter/model/cedar/types/wrapped-types/SchemaVersion';\nimport { JsonPath } from './org/metadatacenter/model/cedar/util/path/JsonPath';\n\nimport { TemporalGranularity } from './org/metadatacenter/model/cedar/types/wrapped-types/TemporalGranularity';\nimport { TimeFormat } from './org/metadatacenter/model/cedar/types/wrapped-types/TimeFormat';\nimport { TemporalType } from './org/metadatacenter/model/cedar/types/wrapped-types/TemporalType';\nimport { NumberType } from './org/metadatacenter/model/cedar/types/wrapped-types/NumberType';\nimport { Iri } from './org/metadatacenter/model/cedar/types/wrapped-types/Iri';\n\nimport { ControlledTermBranchBuilder } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/branch/ControlledTermBranchBuilder';\nimport { ControlledTermClassBuilder } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/class/ControlledTermClassBuilder';\nimport { ControlledTermOntologyBuilder } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ontology/ControlledTermOntologyBuilder';\nimport { ControlledTermValueSetBuilder } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/value-set/ControlledTermValueSetBuilder';\nimport { ControlledTermDefaultValueBuilder } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermDefaultValueBuilder';\nimport { ControlledTermVersion } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/ControlledTermVersion';\nimport { BiboStatus } from './org/metadatacenter/model/cedar/types/wrapped-types/BiboStatus';\n\nimport { ChildDeploymentInfo } from './org/metadatacenter/model/cedar/deployment/ChildDeploymentInfo';\nimport { ChildDeploymentInfoBuilder } from './org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoBuilder';\nimport { CedarArtifactId } from './org/metadatacenter/model/cedar/types/cedar-types/CedarArtifactId';\nimport { ComparisonError } from './org/metadatacenter/model/cedar/util/compare/ComparisonError';\nimport { RoundTrip } from './org/metadatacenter/io/roundtrip/RoundTrip';\nimport { PropertyIri } from './org/metadatacenter/model/cedar/types/wrapped-types/PropertyIri';\nimport { JsonTemplateInstanceWriter } from './org/metadatacenter/io/writer/json/JsonTemplateInstanceWriter';\nimport { JsonTemplateInstanceContent } from './org/metadatacenter/model/cedar/util/serialization/JsonTemplateInstanceContent';\nimport { ControlledTermActionBuilder } from './org/metadatacenter/model/cedar/field/dynamic/controlled-term/value-constraint/action/ControlledTermActionBuilder';\nimport { YamlValues } from './org/metadatacenter/model/cedar/constants/YamlValues';\nimport { BioportalTermType } from './org/metadatacenter/model/cedar/types/bioportal-types/BioportalTermType';\nimport { CedarFieldCategory } from './org/metadatacenter/model/cedar/types/cedar-types/CedarFieldCategory';\nimport { YamlTemplateFieldReader } from './org/metadatacenter/io/reader/yaml/YamlTemplateFieldReader';\nimport { YamlTemplateElementReader } from './org/metadatacenter/io/reader/yaml/YamlTemplateElementReader';\nimport { YamlTemplateReader } from './org/metadatacenter/io/reader/yaml/YamlTemplateReader';\nimport { YamlTemplateInstanceReader } from './org/metadatacenter/io/reader/yaml/YamlTemplateInstanceReader';\nimport { InstanceInflater } from './org/metadatacenter/model/cedar/template-instance/InstanceInflater';\nimport { InstanceValidator } from './org/metadatacenter/model/cedar/template-instance/InstanceValidator';\nimport { CedarArtifactType } from './org/metadatacenter/model/cedar/types/cedar-types/CedarArtifactType';\nimport { JsonAbstractSchemaArtifactReader } from './org/metadatacenter/io/reader/json/JsonAbstractSchemaArtifactReader';\nimport { CedarReaders } from './org/metadatacenter/io/reader/CedarReaders';\nimport { AbstractSchemaArtifact } from './org/metadatacenter/model/cedar/AbstractSchemaArtifact';\nimport { AbstractContainerArtifact } from './org/metadatacenter/model/cedar/AbstractContainerArtifact';\nimport { CedarFieldType } from './org/metadatacenter/model/cedar/types/cedar-types/CedarFieldType';\nimport { JsonAbstractArtifactWriter } from './org/metadatacenter/io/writer/json/JsonAbstractArtifactWriter';\nimport { ComparisonErrorType } from './org/metadatacenter/model/cedar/util/compare/ComparisonErrorType';\nimport { CedarJsonWriters } from './org/metadatacenter/io/writer/json/CedarJsonWriters';\nimport { CedarJsonReaders } from './org/metadatacenter/io/reader/json/CedarJsonReaders';\nimport { CedarYamlWriters } from './org/metadatacenter/io/writer/yaml/CedarYamlWriters';\nimport { CedarYamlReaders } from './org/metadatacenter/io/reader/yaml/CedarYamlReaders';\nimport { AbstractInstanceArtifact } from './org/metadatacenter/model/cedar/AbstractInstanceArtifact';\nimport { AbstractArtifact } from './org/metadatacenter/model/cedar/AbstractArtifact';\nimport { TemplateInstance } from './org/metadatacenter/model/cedar/template-instance/TemplateInstance';\nimport { InstanceDataAtomType } from './org/metadatacenter/model/cedar/template-instance/InstanceDataAtomType';\nimport { InstanceDataContainer } from './org/metadatacenter/model/cedar/template-instance/InstanceDataContainer';\nimport { InstanceDataAttributeValueField } from './org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueField';\nimport { InstanceDataAttributeValueFieldName } from './org/metadatacenter/model/cedar/template-instance/InstanceDataAttributeValueFieldName';\nimport { AttributeValueNamePolicy } from './org/metadatacenter/model/cedar/template-instance/AttributeValueNamePolicy';\nimport { InstanceDataEmptyNode } from './org/metadatacenter/model/cedar/template-instance/InstanceDataEmptyNode';\nimport { InstanceDataEmptyAtom } from './org/metadatacenter/model/cedar/template-instance/InstanceDataEmptyAtom';\nimport { InstanceDataStringAtom } from './org/metadatacenter/model/cedar/template-instance/InstanceDataStringAtom';\nimport { InstanceDataTypedAtom } from './org/metadatacenter/model/cedar/template-instance/InstanceDataTypedAtom';\nimport { InstanceDataLinkAtom } from './org/metadatacenter/model/cedar/template-instance/InstanceDataLinkAtom';\nimport { InstanceDataControlledAtom } from './org/metadatacenter/model/cedar/template-instance/InstanceDataControlledAtom';\nimport { JsonTemplateInstanceReader } from './org/metadatacenter/io/reader/json/JsonTemplateInstanceReader';\nimport { JsonAbstractInstanceArtifactReader } from './org/metadatacenter/io/reader/json/JsonAbstractInstanceArtifactReader';\nimport { JsonAbstractArtifactReader } from './org/metadatacenter/io/reader/json/JsonAbstractArtifactReader';\nimport { JsonTemplateReaderResult } from './org/metadatacenter/io/reader/json/JsonTemplateReaderResult';\nimport { CedarUser } from './org/metadatacenter/model/cedar/types/cedar-types/CedarUser';\nimport { JsonArtifactReaderResult } from './org/metadatacenter/io/reader/json/JsonArtifactReaderResult';\nimport { JsonTemplateElementReaderResult } from './org/metadatacenter/io/reader/json/JsonTemplateElementReaderResult';\nimport { JsonTemplateFieldReaderResult } from './org/metadatacenter/io/reader/json/JsonTemplateFieldReaderResult';\nimport { JsonTemplateInstanceReaderResult } from './org/metadatacenter/io/reader/json/JsonTemplateInstanceReaderResult';\n\nimport { PavVersion } from './org/metadatacenter/model/cedar/types/wrapped-types/PavVersion';\nimport { TemplateChild } from './org/metadatacenter/model/cedar/types/basic-types/TemplateChild';\nimport { ChildDeploymentInfoStatic } from './org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoStatic';\nimport { ChildDeploymentInfoStaticBuilder } from './org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoStaticBuilder';\nimport { ChildDeploymentInfoAlwaysSingle } from './org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysSingle';\nimport { ChildDeploymentInfoAlwaysSingleBuilder } from './org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysSingleBuilder';\nimport { ChildDeploymentInfoAlwaysMultiple } from './org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultiple';\nimport { ChildDeploymentInfoAlwaysMultipleBuilder } from './org/metadatacenter/model/cedar/deployment/ChildDeploymentInfoAlwaysMultipleBuilder';\nimport { AbstractChildDeploymentInfo } from './org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfo';\nimport { AbstractChildDeploymentInfoBuilder } from './org/metadatacenter/model/cedar/deployment/AbstractChildDeploymentInfoBuilder';\nimport { AbstractDynamicChildDeploymentInfoBuilder } from './org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfoBuilder';\nimport { AbstractDynamicChildDeploymentInfo } from './org/metadatacenter/model/cedar/deployment/AbstractDynamicChildDeploymentInfo';\nimport { JsonArtifactParsingResult } from './org/metadatacenter/model/cedar/util/compare/JsonArtifactParsingResult';\nimport { YamlArtifactParsingResult } from './org/metadatacenter/model/cedar/util/compare/YamlArtifactParsingResult';\nimport { ComparisonResult } from './org/metadatacenter/model/cedar/util/compare/ComparisonResult';\nimport { YamlObjectComparator } from './org/metadatacenter/model/cedar/util/compare/YamlObjectComparator';\nimport { JsonObjectComparator } from './org/metadatacenter/model/cedar/util/compare/JsonObjectComparator';\nimport { YamlTemplateReaderResult } from './org/metadatacenter/io/reader/yaml/YamlTemplateReaderResult';\nimport { YamlTemplateFieldReaderResult } from './org/metadatacenter/io/reader/yaml/YamlTemplateFieldReaderResult';\nimport { YamlTemplateElementReaderResult } from './org/metadatacenter/io/reader/yaml/YamlTemplateElementReaderResult';\nimport { YamlArtifactReaderResult } from './org/metadatacenter/io/reader/yaml/YamlArtifactReaderResult';\nimport { YamlTemplateInstanceReaderResult } from './org/metadatacenter/io/reader/yaml/YamlTemplateInstanceReaderResult';\nimport { Language } from './org/metadatacenter/model/cedar/types/wrapped-types/Language';\nimport { ExtRorField } from './org/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorField';\nimport { ExtRorFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/ext-ror/ExtRorFieldBuilder';\nimport { ExtOrcidField } from './org/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidField';\nimport { ExtOrcidFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/ext-orcid/ExtOrcidFieldBuilder';\nimport { ExtPfasField } from './org/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasField';\nimport { ExtPfasFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/ext-pfas/ExtPfasFieldBuilder';\nimport { ExtPubmedField } from './org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedField';\nimport { ExtPubmedFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/ext-pubmed/ExtPubmedFieldBuilder';\nimport { ExtRridField } from './org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridField';\nimport { ExtRridFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/ext-rrid/ExtRridFieldBuilder';\nimport { ExtNihGrantIdField } from './org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdField';\nimport { ExtNihGrantIdFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/ext-nih-grant-id/ExtNihGrantIdFieldBuilder';\nimport { ExtDoiField } from './org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiField';\nimport { ExtDoiFieldBuilder } from './org/metadatacenter/model/cedar/field/dynamic/ext-doi/ExtDoiFieldBuilder';\n// It is needed, do not remove, even if it looks unused\nexport { JsonTemplateFieldWriterInternal as JsonTemplateFieldWriter };\nexport { YamlTemplateFieldWriterInternal as YamlTemplateFieldWriter };\n\nexport { CedarBuilders };\nexport { CedarWriters };\nexport { CedarReaders };\n\nexport { CedarJsonReaders, CedarJsonWriters };\nexport { CedarYamlReaders, CedarYamlWriters };\n\nexport { JsonAbstractSchemaArtifactReader };\nexport { JsonAbstractInstanceArtifactReader };\nexport { JsonAbstractArtifactReader };\nexport { JsonAbstractArtifactWriter };\n\nexport { JsonTemplateFieldReader, YamlTemplateFieldReader };\nexport { JsonTemplateElementReader, YamlTemplateElementReader };\nexport { JsonTemplateReader, YamlTemplateReader };\nexport { YamlTemplateInstanceReader };\nexport { InstanceInflater };\nexport { InstanceValidator };\nexport { JsonTemplateInstanceReader };\n\nexport { JsonTemplateElementWriter, YamlTemplateElementWriter };\nexport { JsonTemplateWriter, YamlTemplateWriter };\n\nexport { AbstractSchemaArtifact };\n// A consumer walking a parsed template needs the container it walks and the\n// field type it branches on; both were reachable only by deep path into the\n// package. (AbstractChildDeploymentInfo, the third, was already exported.)\nexport { AbstractContainerArtifact };\nexport { CedarFieldType };\nexport { AbstractInstanceArtifact };\nexport { AbstractArtifact };\n\nexport { TemplateField };\nexport { AttributeValueField, AttributeValueFieldBuilder };\nexport { CheckboxField, CheckboxFieldBuilder };\nexport { ControlledTermField, ControlledTermFieldBuilder };\nexport { EmailField, EmailFieldBuilder };\nexport { LinkField, LinkFieldBuilder };\nexport { ExtRorField, ExtRorFieldBuilder };\nexport { ExtOrcidField, ExtOrcidFieldBuilder };\nexport { ExtPfasField, ExtPfasFieldBuilder };\nexport { ExtPubmedField, ExtPubmedFieldBuilder };\nexport { ExtRridField, ExtRridFieldBuilder };\nexport { ExtNihGrantIdField, ExtNihGrantIdFieldBuilder };\nexport { ExtDoiField, ExtDoiFieldBuilder };\nexport { SingleChoiceListField, SingleChoiceListFieldBuilder };\nexport { MultipleChoiceListField, MultipleChoiceListFieldBuilder };\nexport { NumericField, NumericFieldBuilder };\nexport { PhoneNumberField, PhoneNumberFieldBuilder };\nexport { RadioField, RadioFieldBuilder };\nexport { TemporalField, TemporalFieldBuilder };\nexport { TextArea, TextAreaBuilder };\nexport { TextField, TextFieldBuilder };\nexport { StaticImageField, StaticImageFieldBuilder };\nexport { StaticPageBreakField, StaticPageBreakFieldBuilder };\nexport { StaticRichTextField, StaticRichTextFieldBuilder };\nexport { StaticSectionBreakField, StaticSectionBreakFieldBuilder };\nexport { StaticYoutubeField, StaticYoutubeFieldBuilder };\n\nexport { TemplateElement, TemplateElementBuilder };\nexport { Template, TemplateBuilder };\n\nexport { TemplateInstance };\n// Walking a parsed instance means naming the node types it is built from.\nexport {\n InstanceDataAtomType,\n InstanceDataContainer,\n InstanceDataAttributeValueField,\n InstanceDataAttributeValueFieldName,\n AttributeValueNamePolicy,\n InstanceDataEmptyNode,\n InstanceDataEmptyAtom,\n InstanceDataStringAtom,\n InstanceDataTypedAtom,\n InstanceDataLinkAtom,\n InstanceDataControlledAtom,\n};\nexport { TemplateInstanceBuilder };\n\nexport { ControlledTermDefaultValueBuilder };\nexport { ControlledTermBranchBuilder };\nexport { ControlledTermClassBuilder };\nexport { ControlledTermOntologyBuilder };\nexport { ControlledTermValueSetBuilder };\nexport { ControlledTermActionBuilder };\nexport { ControlledTermVersion };\n\nexport { AbstractChildDeploymentInfo, AbstractChildDeploymentInfoBuilder };\nexport { AbstractDynamicChildDeploymentInfo, AbstractDynamicChildDeploymentInfoBuilder };\nexport { ChildDeploymentInfo, ChildDeploymentInfoBuilder };\nexport { ChildDeploymentInfoAlwaysSingle, ChildDeploymentInfoAlwaysSingleBuilder };\nexport { ChildDeploymentInfoAlwaysMultiple, ChildDeploymentInfoAlwaysMultipleBuilder };\nexport { ChildDeploymentInfoStatic, ChildDeploymentInfoStaticBuilder };\n\nexport { JsonNode };\nexport { IsoDate };\nexport { SchemaVersion };\nexport { JsonPath };\n\nexport { TemporalGranularity };\nexport { TimeFormat };\nexport { TemporalType };\nexport { NumberType };\nexport { Iri };\nexport { BiboStatus };\nexport { BioportalTermType };\n\nexport { CedarArtifactId };\nexport { ComparisonError };\nexport { RoundTrip };\nexport { PropertyIri };\n\n/*\n * `JsonSchema`, `YamlKeys` and `CedarModel` are deliberately not exported.\n *\n * They are the spelling tables this library's readers and writers use to talk to\n * each other about a document — `@id`, `@value`, `_ui`, `$schema`. That CEDAR\n * happens to be written in JSON-LD is this library's business: a consumer works\n * in artifacts, and how one is written down is asked for by name at the edge,\n * from a writer.\n *\n * Exporting them made the opposite true. A consumer reaching for `JsonSchema.atId`\n * looks like it is using the model and is in fact reading a key, and it will keep\n * compiling if the model gains a second serialization that spells the same thing\n * differently — which YAML already does: `id`, `value`, `label`, and no context\n * block at all.\n *\n * Nothing outside this library read them for a model reason. What consumers\n * actually needed were two facts filed in with the keys: the namespace property\n * IRIs are minted in, which is `PropertyIri` above, and a default name for a\n * duplicate attribute, which was one consumer's product decision and has gone\n * back to it.\n */\n// The standard @context block every CEDAR instance carries. A consumer that\n// builds instances needs to state it, and should not restate it by hand.\nexport { JsonTemplateInstanceContent };\nexport { JsonTemplateInstanceWriter };\nexport { YamlValues };\nexport { CedarFieldCategory };\nexport { CedarArtifactType };\nexport { CedarUser };\nexport { PavVersion };\nexport { Language };\n\nexport { ComparisonErrorType };\n\nexport { JsonTemplateFieldReaderResult };\nexport { YamlTemplateFieldReaderResult };\nexport { JsonTemplateElementReaderResult };\nexport { YamlTemplateElementReaderResult };\nexport { JsonTemplateReaderResult };\nexport { YamlTemplateReaderResult };\nexport { JsonTemplateInstanceReaderResult };\nexport { YamlTemplateInstanceReaderResult };\nexport { JsonArtifactReaderResult };\nexport { YamlArtifactReaderResult };\nexport { TemplateChild };\n\nexport { JsonArtifactParsingResult };\nexport { YamlArtifactParsingResult };\n\nexport { ComparisonResult };\n\nexport { JsonObjectComparator };\nexport { YamlObjectComparator };\n"],"names":["root","factory","exports","module","define","amd","this","ReaderWriterBehavior_1","__webpack_require__","C","STRICT","FEBRUARY_2024","JsonReaderBehavior","ReaderWriterBehavior","value","constructor","useWarningForKnownIssues","super","getValue","static","JsonWriterBehavior","_outputPages","_usePropertiesAtLanguage","_includeSkosNotationForLinksAndControlled","outputPages","usePropertiesAtLanguage","includeSkosNotationForLinksAndControlled","_useWarningForKnownIssues","L","YamlReaderBehavior","D","YamlWriterBehavior","TemplateBuilder_1","TemplateElementBuilder_1","TemplateInstanceBuilder_1","TextFieldBuilderImpl_1","TextAreaBuilderImpl_1","TemporalFieldBuilderImpl_1","RadioFieldBuilderImpl_1","PhoneNumberFieldBuilderImpl_1","NumericFieldBuilderImpl_1","LinkFieldBuilderImpl_1","EmailFieldBuilderImpl_1","AttributeValueFieldBuilderImpl_1","CheckboxFieldBuilderImpl_1","ControlledTermFieldBuilderImpl_1","StaticImageFieldBuilderImpl_1","StaticPageBreakFieldBuilderImpl_1","StaticRichTextFieldBuilderImpl_1","StaticSectionBreakFieldBuilderImpl_1","StaticYoutubeFieldBuilderImpl_1","SingleChoiceListFieldBuilderImpl_1","MultipleChoiceListFieldBuilderImpl_1","ExtRorFieldBuilderImpl_1","ExtOrcidFieldBuilderImpl_1","ExtPfasFieldBuilderImpl_1","ExtPubmedFieldBuilderImpl_1","ExtRridFieldBuilderImpl_1","ExtNihGrantIdFieldBuilderImpl_1","ExtDoiFieldBuilderImpl_1","CedarBuilders","templateBuilder","TemplateBuilder","templateElementBuilder","TemplateElementBuilder","templateInstanceBuilder","TemplateInstanceBuilder","textFieldBuilder","TextFieldBuilderImpl","create","textAreaBuilder","TextAreaBuilderImpl","temporalFieldBuilder","TemporalFieldBuilderImpl","phoneNumberFieldBuilder","PhoneNumberFieldBuilderImpl","numericFieldBuilder","NumericFieldBuilderImpl","emailFieldBuilder","EmailFieldBuilderImpl","attributeValueFieldBuilder","AttributeValueFieldBuilderImpl","youtubeFieldBuilder","StaticYoutubeFieldBuilderImpl","sectionBreakFieldBuilder","StaticSectionBreakFieldBuilderImpl","richTextFieldBuilder","StaticRichTextFieldBuilderImpl","pageBreakFieldBuilder","StaticPageBreakFieldBuilderImpl","imageFieldBuilder","StaticImageFieldBuilderImpl","linkFieldBuilder","LinkFieldBuilderImpl","extRorFieldBuilder","ExtRorFieldBuilderImpl","extOrcidFieldBuilder","ExtOrcidFieldBuilderImpl","extPfasFieldBuilder","ExtPfasFieldBuilderImpl","extPubmedFieldBuilder","ExtPubmedFieldBuilderImpl","extRridFieldBuilder","ExtRridFieldBuilderImpl","extNihGrantIdFieldBuilder","ExtNihGrantIdFieldBuilderImpl","extDoiFieldBuilder","ExtDoiFieldBuilderImpl","singleChoiceListFieldBuilder","SingleChoiceListFieldBuilderImpl","multipleChoiceListFieldBuilder","MultipleChoiceListFieldBuilderImpl","radioFieldBuilder","RadioFieldBuilderImpl","checkboxFieldBuilder","CheckboxFieldBuilderImpl","controlledTermFieldBuilder","ControlledTermFieldBuilderImpl","CedarJsonReaders_1","CedarYamlReaders_1","CedarReaders","json","CedarJsonReaders","yaml","CedarYamlReaders","JsonNode_1","Iri_1","ReaderUtil","getString","node","key","Object","hasOwn","getStringOrEmpty","getBoolean","getBooleanOrNullOrUndefined","getBooleanOrNull","getNumber","getNumericDefault","undefined","raw","Number","isFinite","Error","text","trim","test","getNumberOrZero","getNumberOrNull","getNode","JsonNode","getEmpty","getNodeOrNull","getStringList","Array","isArray","getFilteredStringList","filter","str","getStringMap","obj","entries","map","Map","k","v","set","deepClone","deepUnfreeze","object","clone","slice","getOwnPropertyNames","forEach","prop","deepFreeze","freeze","propValue","isFrozen","getNodeList","getEmptyList","getURI","Iri","deleteNodeKey","CedarArtifactType_1","ReaderUtil_1","JsonSchema_1","JsonTemplateReader_1","JsonTemplateElementReader_1","JsonReaderBehavior_1","JsonTemplateInstanceReader_1","JsonTemplateFieldReader_1","behavior","getStrict","getFebruary2024","detectArtifactType","artifactSource","artifactJSON","JSON","parse","atType","JsonSchema","CedarArtifactType","forValue","NULL","getReaderForArtifactType","cedarArtifactType","TEMPLATE","JsonTemplateReader","TEMPLATE_ELEMENT","JsonTemplateElementReader","TEMPLATE_FIELD","STATIC_TEMPLATE_FIELD","JsonTemplateFieldReader","TEMPLATE_INSTANCE","JsonTemplateInstanceReader","getTemplateReader","getForBehavior","getTemplateElementReader","getTemplateFieldReader","getTemplateInstanceReader","CedarArtifactId_1","CedarUser_1","IsoDate_1","Annotations_1","CedarModel_1","AnnotationAtId_1","AnnotationAtValue_1","JsonAbstractArtifactReader","refuseEmptyIdentifier","sourceObject","atId","knownArtifactType","readNonReportableAttributes","container","at_id","CedarArtifactId","schema_name","schemaName","schema_description","schemaDescription","pav_createdBy","CedarUser","pavCreatedBy","pav_createdOn","IsoDate","pavCreatedOn","oslc_modifiedBy","oslcModifiedBy","pav_lastUpdatedOn","pavLastUpdatedOn","readAnnotations","artifact","artifactSourceObject","annotations","Annotations","annotationsNode","CedarModel","keys","annotationNode","add","AnnotationAtId","atValue","AnnotationAtValue","getSize","JsonAbstractArtifactReader_1","JsonAbstractInstanceArtifactReader","schema_isBasedOn","schemaIsBasedOn","pav_derivedFrom","pavDerivedFrom","TemplateProperty_1","SchemaVersion_1","PavVersion_1","BiboStatus_1","JsonAbstractSchemaArtifactReader","title","TemplateProperty","description","schema_schemaVersion","SchemaVersion","schemaVersion","pav_version","PavVersion","pavVersion","bibo_status","BiboStatus","forJsonValue","biboStatus","pav_previousVersion","pavPreviousVersion","schema_identifier","schemaIdentifier","JsonArtifactReaderResult","_artifact","_parsingResult","_artifactSourceObject","parsingResult","JsonAbstractSchemaArtifactReader_1","ContainerArtifactChildrenInfo_1","ChildDeploymentInfo_1","UiInputType_1","ComparisonError_1","ComparisonErrorType_1","JsonObjectComparator_1","JavascriptType_1","ArtifactSchema_1","JsonContainerArtifactContent_1","AbstractDynamicChildDeploymentInfo_1","ChildDeploymentInfoBuilder_1","ChildDeploymentInfoAlwaysMultipleBuilder_1","Language_1","JsonTemplateFieldReaderInternal_1","JsonContainerArtifactReader","fieldReader","JsonTemplateFieldReaderInternal","readAndStoreCandidateChildInfo","childDefinitionNode","childCandidateName","candidateChildrenInfo","path","childInfo","ChildDeploymentInfo","uiNode","ui","uiInputType","UiInputType","inputType","hidden","Ui","reportBlueprintDifference","ComparisonError","ComparisonErrorType","MISSING_KEY_IN_REAL_OBJECT","readReportableAttributes","elementSourceObject","JsonObjectComparator","comparePrimitive","topContextNode","atContext","blueprintAtContext","JsonContainerArtifactContent","CONTEXT_VERBATIM","compareBothWays","atLanguage","JavascriptType","OBJECT","type","ArtifactSchema","CURRENT","schema","language","Language","parseChildren","finalChildrenInfo","containerProperties","children","childDefinition","name","childPath","properties","isMultiInAnyWay","items","cedarFieldReaderResult","readFromObjectInternal","finalChildInfo","field","createDeploymentBuilder","withLabel","label","withDescription","withHidden","build","addChild","merge","finalChildInfoBuilder","dynaChildInfo","withIri","iri","withContinuePreviousLine","continuePreviousLine","withValueRecommendationEnabled","valueRecommendationEnabled","withRecommendedValue","recommendedValue","withRequiredValue","requiredValue","ChildDeploymentInfoBuilder","withMultiInstance","multiInstance","withMinItems","minItems","withMaxItems","maxItems","ChildDeploymentInfoAlwaysMultipleBuilder","cedarElementReaderResult","getElementReader","readFromObject","element","validatePropertiesVsOrder","containerUIOrder","includes","order","finalizeChildInfo","elementUIOrder","ContainerArtifactChildrenInfo","candidate","get","UNEXPECTED_KEY_IN_REAL_OBJECT","getCandidateChildrenInfo","partialKeyMap","has","propertiesChildNode","typeOfItems","generateAndValidateRequiredMap","elementRequired","requiredPartial","elementRequiredMap","reduce","acc","current","required","checkRequiredBothWays","requiredPartialKeyMap","childNames","getChildrenNamesForRequired","childName","extractUIPreferredLabelsAndDescriptions","containerUI","_path","containerUIPLabels","propertyLabels","containerUIPDescriptions","propertyDescriptions","error","isKnownProductionVariation","errorPath","addBlueprintComparisonWarning","addBlueprintComparisonError","extractIRIMappings","elementProperties","elementPropertiesContext","elementIRIMap","includeInIRIMapping","iriEnum","iriList","enum","length","AbstractDynamicChildDeploymentInfo","readInstanceTypeSpecification","oneOf","item","oneOfEnum","instanceTypeSpecification","JsonArtifactParsingResult_1","JsonPath_1","JsonTemplateFieldContentDynamic_1","JsonTemplateElementReaderResult_1","TemplateElement_1","JsonContainerArtifactReader_1","JsonTemplateElementContent_1","readFromString","elementSourceString","elementObject","JsonPath","topPath","JsonArtifactParsingResult","TemplateElement","buildEmptyWithNullValues","readAndValidateChildrenInfo","JsonTemplateElementReaderResult","skos_prefLabel","skosPrefLabel","skos_altLabel","skosAltLabel","JsonTemplateElementContent","REQUIRED_PARTIAL","PROPERTIES_PARTIAL_KEY_MAP","REQUIRED_PARTIAL_KEY_MAP","elementUI","validateProperties","childrenInfo","_element","blueprint","PROPERTIES_PARTIAL","hasAttributeValue","additionalProperties","JsonTemplateFieldContentDynamic","ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_INSIDE","pCRequired","acceptEitherIdTyping","compareToLeft","JsonArtifactReaderResult_1","JsonFieldReaderTextField_1","JsonFieldReaderPageBreak_1","JsonFieldReaderSectionBreak_1","JsonFieldReaderImage_1","JsonFieldReaderRichText_1","JsonFieldReaderYoutube_1","JsonFieldReaderLink_1","JsonTemplateFieldContentStatic_1","JsonFieldReaderTemporal_1","JsonFieldReaderEmail_1","JsonFieldReaderNumeric_1","JsonFieldReaderTextArea_1","JsonFieldReaderPhoneNumber_1","JsonFieldReaderRadio_1","JsonFieldReaderCheckbox_1","JsonFieldReaderList_1","JsonFieldReaderAttributeValue_1","CedarFieldType_1","JsonFieldReaderControlledTerm_1","JsonTemplateFieldReaderResult_1","UnknownTemplateField_1","JsonFieldReaderExtRor_1","JsonFieldReaderExtOrcid_1","JsonFieldReaderExtPfas_1","JsonFieldReaderExtPubmed_1","JsonFieldReaderExtRrid_1","JsonFieldReaderExtNihGrantId_1","JsonFieldReaderExtDoi_1","CedarFieldType","TEXT","JsonFieldReaderTextField","TEXTAREA","JsonFieldReaderTextArea","CONTROLLED_TERM","JsonFieldReaderControlledTerm","LINK","JsonFieldReaderLink","EXT_ROR","JsonFieldReaderExtRor","EXT_ORCID","JsonFieldReaderExtOrcid","EXT_PFAS","JsonFieldReaderExtPfas","EXT_PUBMED","JsonFieldReaderExtPubmed","EXT_RRID","JsonFieldReaderExtRrid","EXT_NIH_GRANT_ID","JsonFieldReaderExtNihGrantId","EXT_DOI","JsonFieldReaderExtDoi","TEMPORAL","JsonFieldReaderTemporal","EMAIL","JsonFieldReaderEmail","NUMERIC","JsonFieldReaderNumeric","PHONE_NUMBER","JsonFieldReaderPhoneNumber","RADIO","JsonFieldReaderRadio","CHECKBOX","JsonFieldReaderCheckbox","SINGLE_SELECT_LIST","JsonFieldReaderList","MULTIPLE_SELECT_LIST","ATTRIBUTE_VALUE","JsonFieldReaderAttributeValue","STATIC_PAGE_BREAK","JsonFieldReaderPageBreak","STATIC_SECTION_BREAK","JsonFieldReaderSectionBreak","STATIC_IMAGE","JsonFieldReaderImage","STATIC_RICH_TEXT","JsonFieldReaderRichText","STATIC_YOUTUBE","JsonFieldReaderYoutube","fieldSourceString","fieldObject","fieldSourceObject","standalone","readFieldSpecificAttributes","JsonTemplateFieldReaderResult","JsonTemplateFieldContentStatic","cedarFieldType","STRING","artifactType","rawUiInputType","fieldType","getCedarFieldType","reader","dynamicTypeReaderMap","read","UnknownTemplateField","fieldHasValueConstraint","vcNode","valueConstraints","ontologies","branches","classes","valueSets","forUiInputType","JsonTemplateFieldTypeSpecificReader","_fieldSourceObject","_childInfo","readRequiredAndHidden","ValueConstraints","JsonAbstractInstanceArtifactReader_1","TemplateInstance_1","JsonTemplateInstanceReaderResult_1","InstanceDataContainer_1","InstanceDataStringAtom_1","InstanceDataLinkAtom_1","InstanceDataEmptyAtom_1","InstanceDataControlledAtom_1","InstanceDataTypedAtom_1","InstanceDataEmptyNode_1","InstanceDataAttributeValueFieldName_1","InstanceDataAttributeValueField_1","JsonTemplateInstanceContent_1","AttributeValueNamePolicy_1","knownKeys","instanceSourceString","instanceObject","instanceSourceObject","instance","TemplateInstance","readInstanceData","reportEnvelope","JsonTemplateInstanceReaderResult","ENVELOPE_KEYS","MISSING_VALUE_IN_REAL_OBJECT","dataContainer","readInstanceContainer","parseContainer","isKnownKey","ret","InstanceDataContainer","content","arrayContainer","setValue","arrayElement","index","parseNode","conflict","AttributeValueNamePolicy","findConflicts","VALUE_MISMATCH","groupName","packAttributeValues","atContextNode","values","setIri","InstanceDataAttributeValueField","avElementName","JsonTemplateInstanceContent","id","Set","rdfsLabel","skosNotation","isValueNode","every","VALUE_ATOM_KEYS","readValueNode","InstanceDataEmptyNode","InstanceDataAttributeValueFieldName","parseDataAtom","atom","reportNullIri","InstanceDataLinkAtom","InstanceDataControlledAtom","InstanceDataStringAtom","InstanceDataTypedAtom","fromParsedNode","InstanceDataEmptyAtom","newAttributeValues","foundNonAttributeValueName","_index","avField","push","avName","avValue","addValue","JsonTemplateContent_1","JsonTemplateReaderResult_1","Template_1","elementReader","templateSourceString","templateObject","templateSourceObject","template","Template","JsonTemplateReaderResult","templateUI","header","footer","templateRequired","templateProperties","templateRequiredMap","JsonTemplateContent","templateUIOrder","_template","YamlReaderBehavior_1","YamlTemplateReader_1","YamlTemplateElementReader_1","YamlTemplateFieldReader_1","YamlTemplateInstanceReader_1","isCompact","getStrictForCompact","YamlTemplateReader","YamlTemplateElementReader","YamlTemplateFieldReader","YamlTemplateInstanceReader","YamlKeys_1","YamlAbstractArtifactReader","artifactTypeWord","YamlKeys","kind","createdBy","createdOn","modifiedBy","modifiedOn","modelVersion","version","forYamlValue","status","derivedFrom","previousVersion","identifier","refuseIdentifierAtDocumentRoot","isCompactDocument","_topPath","YamlArtifactReaderResult","YamlAbstractArtifactReader_1","SizedStaticField_1","YamlArtifactType_1","YamlContainerArtifactReader","childNode","yamlArtifactType","YamlArtifactType","toString","childDeploymentInfo","forYamlArtifactType","configuration","overrideLabel","overrideDescription","multiple","recommended","valueRecommendation","propertyIri","isField","getUiInputType","fieldReadingResult","isSizedStaticField","width","height","finalChildInfoBuilder2","isElement","elementReadingResult","yaml_1","__importDefault","YamlContainerArtifactReader_1","YamlTemplateElementReaderResult_1","YamlArtifactParsingResult_1","default","empty","YamlArtifactParsingResult","YamlTemplateElementReaderResult","instanceType","prefLabel","altLabels","_elementSourceObject","YamlFieldReaderEmail_1","YamlTemplateFieldReaderResult_1","YamlFieldReaderTextField_1","YamlFieldReaderTextArea_1","YamlFieldReaderTemporal_1","YamlFieldReaderNumeric_1","YamlFieldReaderAttributeValue_1","YamlFieldReaderPageBreak_1","YamlFieldReaderLink_1","YamlFieldReaderSectionBreak_1","YamlFieldReaderImage_1","YamlFieldReaderRichText_1","YamlFieldReaderYoutube_1","YamlFieldReaderPhoneNumber_1","YamlFieldReaderCheckbox_1","YamlFieldReaderSingleSelectList_1","YamlFieldReaderMultiSelectList_1","YamlFieldReaderRadio_1","YamlFieldReaderControlledTerm_1","YamlFieldReaderExtRor_1","YamlFieldReaderExtOrcid_1","YamlFieldReaderExtPfas_1","YamlFieldReaderExtPubmed_1","YamlFieldReaderExtRrid_1","YamlFieldReaderExtNihGrantId_1","YamlFieldReaderExtDoi_1","TEXTFIELD","YamlFieldReaderTextField","YamlFieldReaderTextArea","YamlFieldReaderControlledTerm","YamlFieldReaderLink","YamlFieldReaderExtRor","YamlFieldReaderExtOrcid","YamlFieldReaderExtPfas","YamlFieldReaderExtPubmed","YamlFieldReaderExtRrid","YamlFieldReaderExtNihGrantId","YamlFieldReaderExtDoi","YamlFieldReaderTemporal","YamlFieldReaderEmail","YamlFieldReaderNumeric","YamlFieldReaderPhoneNumber","YamlFieldReaderRadio","YamlFieldReaderCheckbox","YamlFieldReaderSingleSelectList","MULTI_SELECT_LIST","YamlFieldReaderMultiSelectList","YamlFieldReaderAttributeValue","PAGE_BREAK","YamlFieldReaderPageBreak","SECTION_BREAK","YamlFieldReaderSectionBreak","IMAGE","YamlFieldReaderImage","RICH_TEXT","YamlFieldReaderRichText","YOUTUBE","YamlFieldReaderYoutube","YamlTemplateFieldReaderResult","readerMap","templateField","isStaticField","isDynamicField","_field","ListOption_1","YamlTemplateFieldTypeSpecificReader","readAndStoreListValueConstraints","defaultValue","literals","literal","selectedByDefault","selected","option","ListOption","YamlTemplateInstanceReaderResult_1","YamlComparisonErrorType_1","source","isBasedOn","YamlComparisonErrorType","YamlTemplateInstanceReaderResult","list","RESERVED_KEYS","avNode","attrName","inner","parseAttributeValue","datatype","YamlArtifactReaderResult_1","YamlTemplateReaderResult_1","YamlTemplateReaderResult","_templateSourceObject","JsonTemplateFieldWriterInternal_1","JsonTemplateWriter_1","JsonTemplateElementWriter_1","JsonWriterBehavior_1","RoundTrip","compare","readerResult","writer","JsonTemplateFieldWriterInternal","compareField","JsonTemplateElementWriter","compareElement","JsonTemplateWriter","compareTemplate","compareString","jsonFieldReaderResult","compareResult","getAsJsonNode","getBehavior","jsonElementReaderResult","jsonTemplateReaderResult","left","right","leftObject","rightObject","AbstractArtifactWriter","CedarJsonWriters_1","CedarYamlWriters_1","CedarWriters","CedarJsonWriters","CedarYamlWriters","ChildDeploymentInfoAlwaysMultiple_1","WriterUtil","getMultiMinMax","child","childMetaAbstract","isMultiInstance","isMultiInstanceByDefinition","ChildDeploymentInfoAlwaysMultiple","isSingleInstanceByDefinition","childMeta","JsonAtomicWriter_1","JsonFieldWriterTextField_1","JsonFieldWriterLink_1","JsonFieldWriterNumeric_1","JsonFieldWriterTemporal_1","JsonFieldWriterStaticImage_1","JsonFieldWriterStaticPageBreak_1","JsonFieldWriterStaticSectionBreak_1","JsonFieldWriterStaticRichText_1","JsonFieldWriterStaticYoutube_1","JsonFieldWriterRadio_1","JsonFieldWriterCheckbox_1","JsonFieldWriterList_1","JsonFieldWriterTextArea_1","JsonFieldWriterPhoneNumber_1","JsonFieldWriterEmail_1","TemplateField_1","JsonFieldWriterAttributeValue_1","JsonFieldWriterControlledTerm_1","ControlledTermOntology_1","JsonValueConstraintsOntologyWriter_1","ControlledTermClass_1","JsonValueConstraintsClassWriter_1","ControlledTermBranch_1","JsonValueConstraintsBranchWriter_1","ControlledTermValueSet_1","JsonValueConstraintsValueSetWriter_1","JsonAnnotationsWriter_1","ControlledTermAction_1","JsonValueConstraintsActionWriter_1","JsonTemplateInstanceWriter_1","JsonFieldWriterExtRor_1","JsonFieldWriterExtOrcid_1","JsonFieldWriterExtPfas_1","JsonFieldWriterExtPubmed_1","JsonFieldWriterExtRrid_1","JsonFieldWriterExtNihGrantId_1","JsonFieldWriterExtDoi_1","jsonDynamicFieldWriters","jsonStaticFieldWriters","jsonValueConstraintsWriters","jsonAtomicWriter","jsonAnnotationsWriter","jsonTemplateWriter","jsonTemplateElementWriter","jsonTemplateInstanceWriter","JsonAtomicWriter","JsonAnnotationsWriter","getFor","JsonTemplateInstanceWriter","JsonFieldWriterTextField","JsonFieldWriterTextArea","JsonFieldWriterControlledTerm","JsonFieldWriterPhoneNumber","JsonFieldWriterEmail","JsonFieldWriterLink","JsonFieldWriterExtRor","JsonFieldWriterExtOrcid","JsonFieldWriterExtPfas","JsonFieldWriterExtPubmed","JsonFieldWriterExtRrid","JsonFieldWriterExtNihGrantId","JsonFieldWriterExtDoi","JsonFieldWriterNumeric","JsonFieldWriterTemporal","JsonFieldWriterRadio","JsonFieldWriterCheckbox","JsonFieldWriterList","JsonFieldWriterAttributeValue","JsonFieldWriterStaticPageBreak","JsonFieldWriterStaticSectionsBreak","JsonFieldWriterStaticImage","JsonFieldWriterStaticRichText","JsonFieldWriterStaticYoutube","ControlledTermOntology","className","JsonValueConstraintsOntologyWriter","ControlledTermClass","JsonValueConstraintsClassWriter","ControlledTermBranch","JsonValueConstraintsBranchWriter","ControlledTermValueSet","JsonValueConstraintsValueSetWriter","ControlledTermAction","JsonValueConstraintsActionWriter","getTemplateWriter","getTemplateElementWriter","getTemplateInstanceWriter","getAtomicWriter","getFieldWriterForType","getWriterForValueConstraint","getFieldWriterForField","getAnnotationsWriter","getWriterForArtifact","cedarArtifact","TemplateField","AbstractArtifactWriter_1","JsonAbstractArtifactWriter","writers","atomicWriter","annotationsWriter","macroSchemaNameAndDescription","macroProvenance","write","macroStatusAndVersion","svObject","macroSkos","skosObject","macroDerivedFrom","macroIsBasedOn","macroPreviousVersion","macroSchemaIdentifier","macroAnnotations","JsonAbstractArtifactWriter_1","WriterUtil_1","JsonAbstractContainerArtifactWriter","macroContext","getChildMapAsJson","childMap","getChildrenInfo","getChildrenNames","getChild","constMinItems","constMaxItems","minMax","expandInstanceTypeSpecification","extendedProperties","atTypeNode","itemType","annotationsJson","annotation","getAnnotationNames","src","getAtId","getAtValue","NumberType_1","TemporalType_1","TemporalGranularity_1","TimeFormat_1","AdditionalProperties_1","BioportalTermType_1","arg","writeCedarArtifactId","writeCedarArtifactType","writeJavascriptType","writeCedarDate","writeCedarUser","writeBiboStatusJson","writePavVersion","writeCedarSchema","writeSchemaVersion","NumberType","writeNumberType","TemporalType","writeTemporalType","TemporalGranularity","writeTemporalGranularity","TimeFormat","writeTimeFormat","writeUiInputType","AdditionalProperties","writeAdditionalProperties","writeURI","BioportalTermType","writeBioportalTermTypeJson","writeLanguage","date","user","getJsonValue","numberType","temporalType","temporalGranularity","timeFormat","FALSE","ALLOW_ATTRIBUTE_VALUE","ADDITIONAL_PROPERTIES_VERBATIM_ATTRIBUTE_VALUE_OUTSIDE","uri","termType","JsonAbstractContainerArtifactWriter_1","buildProperties","childIriMap","getIRIMap","childNamesForRequired","getAsJsonString","indent","stringify","elementUi","getPropertyLabelMap","getPropertyDescriptionMap","getAdditionalProperties","expandPropertiesNode","propertiesObject","PROPERTIES_VERBATIM_LITERAL","PROPERTIES_VERBATIM_LITERAL_NO_AT_LANGUAGE","expandRequiredNode","requiredObject","expandUINode","supportsValueRecommendation","buildUIObject","uiObject","expandTypeNode","_typeNode","expandValueConstraintsNode","buildValueConstraintsObject","vcObject","expandLiterals","typeNode","context","buildContext","iris","getDataTree","serializeDataLevelInto","into","isDocumentRoot","dataAtom","dataArray","attributeName","serializedData","serializeCommonType","keyList","subKey","serializeAttributeValueFields","writeValueNode","elementContainer","serializeAtomString","assertValid","extendedContext","requiredChildren","pages","YamlTemplateWriter_1","YamlFieldWriterTextField_1","YamlAtomicWriter_1","YamlAnnotationsWriter_1","YamlFieldWriterTextArea_1","YamlFieldWriterTemporal_1","YamlFieldWriterStaticPageBreak_1","YamlFieldWriterLink_1","YamlFieldWriterStaticSectionBreak_1","YamlFieldWriterStaticImage_1","YamlFieldWriterStaticRichText_1","YamlFieldWriterStaticYoutube_1","YamlTemplateElementWriter_1","YamlFieldWriterAttributeValue_1","YamlFieldWriterEmail_1","YamlFieldWriterNumeric_1","YamlFieldWriterPhoneNumber_1","YamlFieldWriterCheckbox_1","YamlFieldWriterList_1","YamlFieldWriterRadio_1","YamlFieldWriterControlledTerm_1","YamlValueConstraintsOntologyWriter_1","YamlValueConstraintsClassWriter_1","YamlValueConstraintsBranchWriter_1","YamlValueConstraintsValueSetWriter_1","YamlValueConstraintsActionWriter_1","YamlWriterBehavior_1","YamlTemplateInstanceWriter_1","YamlFieldWriterExtRor_1","YamlFieldWriterExtOrcid_1","YamlFieldWriterExtPfas_1","YamlFieldWriterExtPubmed_1","YamlFieldWriterExtRrid_1","YamlFieldWriterExtNihGrantId_1","YamlFieldWriterExtDoi_1","yamlDynamicFieldWriters","yamlStaticFieldWriters","yamlValueConstraintsWriters","yamlAtomicWriter","yamlAnnotationsWriter","yamlTemplateWriter","yamlTemplateElementWriter","yamlTemplateInstanceWriter","YamlAtomicWriter","YamlAnnotationsWriter","YamlTemplateWriter","YamlTemplateElementWriter","YamlTemplateInstanceWriter","YamlFieldWriterTextField","YamlFieldWriterTextArea","YamlFieldWriterControlledTerm","YamlFieldWriterPhoneNumber","YamlFieldWriterEmail","YamlFieldWriterLink","YamlFieldWriterExtRor","YamlFieldWriterExtOrcid","YamlFieldWriterExtPfas","YamlFieldWriterExtPubmed","YamlFieldWriterExtRrid","YamlFieldWriterExtNihGrantId","YamlFieldWriterExtDoi","YamlFieldWriterNumeric","YamlFieldWriterTemporal","YamlFieldWriterRadio","YamlFieldWriterCheckbox","YamlFieldWriterList","YamlFieldWriterAttributeValue","YamlFieldWriterStaticPageBreak","YAMLFieldWriterStaticSectionsBreak","YamlFieldWriterStaticImage","YamlFieldWriterStaticRichText","YamlFieldWriterStaticYoutube","YamlValueConstraintsOntologyWriter","YamlValueConstraintsClassWriter","YamlValueConstraintsBranchWriter","YamlValueConstraintsValueSetWriter","YamlValueConstraintsActionWriter","__importStar","YamlPlainScalarPolicy_1","options","blockQuote","doubleQuotedMinMultiLineLength","lineWidth","minContentWidth","defaultStringType","defaultKeyType","doubleQuotedAsJSON","SimpleYamlSerializer","serialize","document","Document","visit","Scalar","plainScalarNeedsQuoting","QUOTE_DOUBLE","pair","at","isPair","isScalar","mayWriteYamlValuePlain","PLAIN","AbstractSchemaArtifact_1","ControlledTermFieldImpl_1","TextFieldImpl_1","YamlAbstractArtifactWriter","macroNameAndDescription","AbstractSchemaArtifact","macroInstanceType","macroValueRecommendation","ControlledTermFieldImpl","TextFieldImpl","prov","macroType","typeAndId","getYamlType","macroId","_isDocumentRoot","ELEMENT","YamlAbstractArtifactWriter_1","YamlAbstractContainerArtifactWriter","getChildListAsJSON","childList","getYamlAsJsonNode","deploymentInfo","getDeploymentInfo","hasEntries","childConfiguration","annotationMap","_behavior","getYamlValue","writeBiboStatusYaml","writeBioportalTermTypeYaml","closedVocabularies","versionPattern","YamlValues_1","someReaderWouldClaim","some","pattern","character","codePoint","codePointAt","startsWith","endsWith","plainCannotCarry","typeValues","YamlArtifactTypeValues","YamlValues","Controlled","class","BioportalTermTypeYamlValues","VALUE","ontology","branch","valueSet","datatypeValues","TemporalTypeValues","NumberTypeValues","BiboStatusYamlValues","TemporalGranularityValues","TimeFormatValues","SimpleYamlSerializer_1","YamlAbstractContainerArtifactWriter_1","getAsYamlString","YamlTemplateFieldWriterInternal","expandUINodeForYAML","expandValueConstraintsNodeForYAML","_vcNode","target","unpackedAttributeValueGroups","getUnpackedAttributeValueGroups","unpackedAttributeNames","from","flat","stub","hasId","unpackedGroups","wrapper","addedav","serialized","attributeNames","groups","names","controlled","serializeAtomLink","AbstractArtifactBuilder","DEFAULT","DRAFT","withAtId","withTitle","withSchemaVersion","withCreatedOn","withCreatedBy","withLastUpdatedOn","lastUpdatedOn","withModifiedBy","withVersion","withStatus","withSchemaName","withSchemaDescription","withDerivedFrom","withSchemaIdentifier","buildInternal","AbstractArtifact","AbstractContainerArtifact","templateChild","getElement","getField","getChildInfo","AbstractArtifact_1","AbstractInstanceArtifact","getName","size","NonStandardDatatype","AbstractChildDeploymentInfo","_name","_atType","_uiInputType","_label","_description","_hidden","hasParent","AbstractChildDeploymentInfoBuilder","setCommonData","info","AbstractChildDeploymentInfo_1","_iri","_requiredValue","_recommendedValue","_continuePreviousLine","_valueRecommendationEnabled","AbstractChildDeploymentInfoBuilder_1","AbstractDynamicChildDeploymentInfoBuilder","enabled","_multiInstance","_minItems","_maxItems","_standalone","isStandalone","_declaredMinItems","_declaredMaxItems","declaredMinItems","declaredMaxItems","AbstractDynamicChildDeploymentInfoBuilder_1","ChildDeploymentInfoAlwaysSingle","ChildDeploymentInfoAlwaysSingle_1","ChildDeploymentInfoAlwaysSingleBuilder","ChildDeploymentInfoStatic","ChildDeploymentInfoStatic_1","ChildDeploymentInfoStaticBuilder","childNameList","getChildrenNamesForRequiredInProperties","result","getOnlyElementNamesForPropertiesContextRequired","_container","labelMap","descriptionMap","getChildIriMap","iriMap","plain","AbstractContainerArtifact_1","buildEmptyWithDefaultValues","r","AbstractArtifacBuilder_1","withInstanceTypeSpecification","templateElement","ChoiceOptionEntity","JsonValueConstraintsWriter","ValueConstraints_1","TemplateFieldBuilder","withAlternateLabels","addAlternateLabel","withPreferredLabel","YamlValueConstraintsWriter","TemplateFieldBuilder_1","AttributeValueFieldImpl_1","AttributeValueFieldImpl","buildEmpty","JsonTemplateFieldTypeSpecificReader_1","_propertiesObject","_requiredObject","YamlTemplateFieldTypeSpecificReader_1","YamlTemplateFieldWriterInternal_1","CheckboxOption_1","CheckboxFieldImpl_1","addCheckboxOption","CheckboxOption","checkboxField","CheckboxFieldImpl","ValueConstraintsCheckboxField_1","ValueConstraintsCheckboxField","ChoiceOptionEntity_1","multipleChoice","ValueConstraintsControlledTermField_1","ValueConstraintsControlledTermField","withDefaultValue","addOntology","addValueSet","addClass","cls","addBranch","addAction","action","actions","controlledTermField","ControlledTermDefaultValue_1","ControlledTermVersion_1","getOntologies","getClasses","getBranches","getValueSets","getDefaultValue","getActions","nodeList","o","acronym","numTerms","readSourceAndVersion","c","clazz","b","maxDepth","vs","vsCollection","to","termUri","sourceUri","versionNode","ControlledTermVersion","versionId","versionEffectiveDate","versionDeclaredVersion","isEmpty","sourceSystem","ControlledTermDefaultValue","PROPERTIES_VERBATIM_IRI","PROPERTIES_VERBATIM_IRI_NO_SKOS_NOTATION","ontologiesList","valueSetList","classesList","branchesList","actionsList","ControlledTermOntologyBuilder_1","ControlledTermClassBuilder_1","ControlledTermBranchBuilder_1","ControlledTermValueSetBuilder_1","ControlledTermActionBuilder_1","valueNode","ontologyBuilder","ControlledTermOntologyBuilder","withAcronym","sourceAcronym","withName","sourceName","withUri","deriveOntologyUri","withNumTerms","termCount","termLabel","displayLabel","termDisplayLabel","classBuilder","ControlledTermClassBuilder","termIri","withSource","withPrefLabel","withType","branchBuilder","ControlledTermBranchBuilder","termBaseIri","termBaseLabel","withMaxDepth","termMaxDepth","valueSetBuilder","ControlledTermValueSetBuilder","withVsCollection","defaultNode","actionNode","actionBuilder","ControlledTermActionBuilder","withAction","withTermUri","withTo","withSourceUri","sourceIri","builder","withSourceSystem","NonStandardDatatype_1","IRI","valuesList","JsonValueConstraintsWriter_1","AbstractJsonControlledTermValueConstraintWriter","writeSourceAndVersion","entry","constraint","rendering","effectiveDate","declaredVersion","YamlValueConstraintsWriter_1","AbstractYamlControlledTermValueConstraintWriter","writeSourceSystem","writeSourceIri","writeVersion","ControlledTermAbstractValueConstraint","_sourceSystem","_version","_termUri","_rdfsLabel","isControlledDefaultValue","ValueConstraintRequirements_1","ControlledTermDefaultValueBuilder","withRdfsLabel","ValueConstraintRequirements","requireIri","requireText","_id","_effectiveDate","_declaredVersion","requireTermType","ControlledTermAbstractValueConstraint_1","_to","_action","_sourceUri","_source","_type","AbstractJsonControlledTermValueConstraintWriter_1","AbstractYamlControlledTermValueConstraintWriter_1","_acronym","_uri","_maxDepth","_prefLabel","_numTerms","_vsCollection","EmailFieldImpl_1","emailField","EmailFieldImpl","ExtDoiFieldImpl_1","extRorField","ExtDoiFieldImpl","ExtNihGrantIdFieldImpl_1","ExtNihGrantIdFieldImpl","ExtOrcidFieldImpl_1","extOrcidField","ExtOrcidFieldImpl","ExtPfasFieldImpl_1","extPfasField","ExtPfasFieldImpl","ExtPubmedFieldImpl_1","ExtPubmedFieldImpl","ExtRorFieldImpl_1","ExtRorFieldImpl","ExtRridFieldImpl_1","ExtRridFieldImpl","LinkFieldImpl_1","LinkFieldImpl","linkField","ListFieldBuilderImpl_1","ListFieldBuilderImpl","ListFieldImpl_1","MultipleChoiceListFieldImpl","ListFieldImpl","MultipleChoiceListFieldImpl_1","SingleChoiceListFieldImpl","SingleChoiceListFieldImpl_1","addListOption","listField","lastSelectedIndex","i","ValueConstraintsListField_1","ValueConstraintsListField","NumericFieldImpl_1","NumericDefaultValueValidator_1","NumericFieldImpl","numberTypeString","minValue","maxValue","decimalPlaces","decimalPlace","unitOfMeasure","NumericDefaultValueValidator","String","integerRange","BYTE","SHORT","INT","LONG","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","isSafeInteger","FLOAT","magnitude","Math","abs","DECIMAL","withNumberType","withMinValue","withMaxValue","withDecimalPlaces","withUnitOfMeasure","numericField","ValueConstraintsNumericField_1","ValueConstraintsNumericField","unit","PhoneNumberFieldImpl_1","PhoneNumberFieldImpl","phoneNumberField","RadioOption_1","RadioFieldImpl_1","RadioFieldImpl","RadioOption","addRadioOption","radioField","ValueConstraintsRadioField_1","ChildDeploymentInfoAlwaysSingleBuilder_1","ValueConstraintsRadioField","TemporalFieldImpl_1","TemporalDefaultValueValidator_1","TemporalFieldImpl","inputTimeFormat","timezoneEnabled","TemporalDefaultValueValidator","hasTime","granularity","isCompatibleGranularity","datePattern","DATE","time","timePattern","TIME","dateTimePattern","hasValidCalendarDate","YEAR","MONTH","DAY","valuesWithTimes","allowPartial","zone","hour","minute","second","HOUR","RegExp","MINUTE","SECOND","DECIMAL_SECOND","timePatternSource","replace","match","exec","year","month","DATETIME","withTimezoneEnabled","withInputTimeFormat","withTemporalGranularity","withTemporalType","temporalField","ValueConstraintsTemporalField_1","ValueConstraintsTemporalField","inputTimeZone","TextAreaImpl_1","TextAreaImpl","textArea","ValueConstraintsTextArea_1","ValueConstraintsTextArea","minLength","maxLength","regex","withMinLength","withMaxLength","withRegex","textField","ValueConstraintsTextField_1","ValueConstraintsTextField","JsonStaticFieldWriter","expandUiNode","_uiNode","YamlStaticFieldWriter","expandSizeForYAML","StaticImageFieldImpl_1","StaticImageFieldImpl","sizeNode","JsonStaticFieldWriter_1","withContent","withWidth","withHeight","staticImageField","ChildDeploymentInfoStaticBuilder_1","YamlStaticFieldWriter_1","StaticPageBreakFieldImpl_1","StaticPageBreakFieldImpl","staticPageBreakField","StaticRichTextFieldImpl_1","StaticRichTextFieldImpl","staticRichTextField","StaticSectionBreakFieldImpl_1","StaticSectionBreakFieldImpl","staticSectionBreakField","StaticYoutubeFieldImpl_1","StaticYoutubeFieldImpl","videoId","withVideoId","staticYoutubeField","isReserved","RESERVED_NAMES","conflicts","scanContainer","location","join","reason","conflictingGroupName","attributeValueGroups","groupNames","group","unpackedNames","unpacked","flatMap","siblingNames","firstGroupForAttribute","namesInGroup","firstGroup","scanValue","_values","_iris","instanceDataAtom","hasValue","removeValue","hasIri","removeIri","parsed","PARSED_NODE","assertIri","_discarded","discarded","hasDiscardedContent","Symbol","_value","InstanceInflater","inflate","inflateContainer","ordered","LOCATION","InstanceValidator","validate","validateContainer","conflictingChild","validateChild","isMulti","isList","validateCardinality","validateItem","MISSING_INDEX_IN_REAL_OBJECT","UNEXPECTED_INDEX_IN_REAL_OBJECT","validateIri","expectedType","declaredValueType","validateTypedValue","AbstractInstanceArtifact_1","withSchemaIsBasedOn","withDataValue","withDataIri","withDataId","withDataContainer","templateInstance","_childName","withHeader","withFooter","P","ONTOLOGY_CLASS","jsonValue","yamlValue","KW","df","isTemplate","isTemplateInstance","I","STATIC","DYNAMIC","NONE","CedarFieldCategory","K","_yamlType","staticField","yamlType","LIST","T","l","PUBLISHED","timezoneOffset","toISOString","offsetMatch","sign","offsetHours","parseInt","offsetMinutes","utcMilliseconds","getTime","localDate","Date","getUTCFullYear","getUTCMonth","day","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","padStart","isoDateString","now","getCurrentGMTOffset","offset","getTimezoneOffset","absoluteOffset","minutes","floor","W","ARRAY","javascriptType","DOUBLE","SemVer_1","SemVer","PropertyIri","namespace","propertyIriPrefix","y","validateVersion","H24","H12","F","CedarFieldCategory_1","category","errorLocation","errorType","expectedValue","encounteredValue","stackTopLines","e","UNEXPECTED_VALUE_IN_REAL_OBJECT","toJSON","ComparisonResult","comparisonErrors","comparisonWarnings","addComparisonError","getComparisonErrors","getComparisonErrorCount","addComparisonWarning","warning","getComparisonWarnings","getComparisonWarningCount","areEqual","otherResult","blueprintComparisonErrors","blueprintComparisonWarnings","getBlueprintComparisonErrors","getBlueprintComparisonErrorCount","getBlueprintComparisonWarnings","getBlueprintComparisonWarningCount","wasSuccessful","adheresToBlueprint","comparisonResult","blueprintObject","realObject","acceptDiffKeys","recurse","currentPath","obj1","obj2","isNonOrderSensitive","getLastComponent","obj1Elements","obj2Elements","newPath","max","endsIn","ANY","reportToLeft","blue","actual","H","MISSING_KEY_IN_RIGHT_OBJECT","UNEXPECTED_KEY_IN_RIGHT_OBJECT","MISSING_INDEX_IN_RIGHT_OBJECT","UNEXPECTED_INDEX_IN_RIGHT_OBJECT","MISSING_VALUE_IN_RIGHT_OBJECT","UNEXPECTED_VALUE_IN_RIGHT_OBJECT","ComparisonResult_1","YamlObjectComparator","pathComponents","equal","another","component","pc","getLastNComponents","n","startIdx","lastNComponents","xsd","pav","bibo","oslc","CONTEXT_VERBATIM_NO_BIBO","rdfs","format","skos","uniqueItems","PROPERTIES_PARTIAL_KEY_LIST","documentProperties","stated","LEGACY_ID_TYPING","ALIAS","for","DOC","MAP","PAIR","SCALAR","SEQ","NODE_TYPE","isAlias","isDocument","isMap","isSeq","isCollection","isNode","hasAnchor","anchor","BREAK","SKIP","REMOVE","visitor","visitor_","initVisitor","visit_","contents","ctrl","callVisitor","replaceNode","concat","ci","splice","ck","cv","async","visitAsync","visitAsync_","Collection","Node","Value","assign","Alias","Seq","Pair","parent","pt","escapeChars","escapeTagName","tn","ch","Directives","tags","docStart","docEnd","defaultYaml","defaultTags","copy","atDocument","res","atNextDocument","explicit","line","onError","parts","split","shift","handle","prefix","tagName","verbatim","suffix","decodeURIComponent","tagString","tag","substring","doc","lines","tagEntries","tagNames","_key","anchorIsValid","sa","anchorNames","anchors","findNewAnchor","exclude","applyReviver","reviver","val","len","v0","v1","delete","call","toJS","ctx","data","aliasCount","count","onCreate","keep","NodeBase","defineProperty","getPrototypeOf","getOwnPropertyDescriptors","range","mapAsMap","maxAliasCount","onAnchor","TypeError","mapKeyWarned","resolve","ReferenceError","nodes","found","aliasResolveCache","_arg","msg","getAliasCount","_onComment","_onChompKeep","verifyAliasOrder","implicitKey","kc","vc","isScalarValue","createNode","Boolean","BigInt","valueOf","aliasDuplicateObjects","onTagObj","sourceObjects","ref","tagObj","t","find","identify","findTagObject","iterator","nodeClass","collectionFromPath","isInteger","a","keepUndefined","BLOCK_FOLDED","BLOCK_LITERAL","QUOTE_SINGLE","isEmptyPath","next","done","configurable","enumerable","writable","it","addIn","rest","deleteIn","getIn","keepScalar","hasAllNullValues","allowScalar","commentBefore","comment","hasIn","setIn","stringifyComment","indentComment","lineComment","FOLD_BLOCK","FOLD_QUOTED","foldFlowLines","mode","indentAtStart","onFold","onOverflow","endStep","folds","escapedFolds","prev","end","overflow","escStart","escEnd","consumeMoreIndentedLines","j","fold","start","getFoldOptions","isBlock","containsDocumentMarker","doubleQuotedString","minMultiLineLength","code","substr","singleQuotedString","singleQuote","quotedString","qs","hasDouble","hasSingle","blockEndNewlines","blockString","onComment","onChompKeep","commentString","forceBlockIndent","indentLength","limit","strLen","lineLengthOverLimit","chomp","endStart","endNlPos","indexOf","startEnd","startWithSpace","startNlPos","foldedValue","literalFallback","foldOptions","body","stringifyString","inFlow","ss","_stringify","actualString","indentStep","compat","plainString","createStringifyContext","opt","directives","falseStr","flowCollectionPadding","indentSeq","nullStr","simpleKeys","trailingComma","trueStr","toStringOptions","collectionStyle","repeat","resolvedAliases","testMatch","getTagObject","props","stringifyProps","warn","logLevel","console","MERGE_KEY","addToJSMap","addMergeToJSMap","resolveAliasValue","mergeValue","srcMap","prototype","hasOwnProperty","addPairToJSMap","isMergeKey","jsKey","stringKey","strCtx","inStringifyKey","strKey","jsonStr","stringifyKey","jsValue","createPair","_","allNullValues","keyComment","explicitKey","vsb","vcb","valueComment","keyCommentDone","chompKeep","spaceBefore","flow","valueCommentDone","valueStr","ws","vs0","nl0","hasNewline","hasPropsLine","sp0","stringifyPair","stringifyCollection","collection","stringifyFlowCollection","stringifyBlockCollection","blockItemPrefix","flowChars","itemIndent","itemCtx","addCommentBefore","ik","fcPadding","reqNewline","linesAtValue","iv","sum","ic","trimStart","findPair","YAMLMap","replacer","sortMapEntries","sort","overwrite","_pair","sortEntries","findIndex","Type","YAMLSeq","idx","asItemIndex","seq","string","nullTag","boolTag","stringifyNumber","minFractionDigits","num","isNaN","is","d","floatNaN","toLowerCase","NaN","NEGATIVE_INFINITY","POSITIVE_INFINITY","floatExp","parseFloat","toExponential","float_float","dot","intIdentify","intResolve","radix","intAsBigInt","intStringify","intOct","_onError","int_int","intHex","schema_intIdentify","stringifyJSON","schema_schema","binary","Uint8Array","atob","buffer","charCodeAt","buf","btoa","s","fromCharCode","ceil","resolvePairs","cn","createPairs","iterable","pairs","YAMLOMap","bind","omap","seenKeys","boolStringify","trueTag","falseTag","float_floatNaN","float_floatExp","yaml_1_1_float_float","f","int_intIdentify","int_intResolve","int_intStringify","intBin","int_intOct","yaml_1_1_int_int","int_intHex","YAMLSet","keepPair","parseSexagesimal","asBigInt","p","stringifySexagesimal","_60","unshift","intTime","floatTime","timestamp","millisec","UTC","tz","yaml_1_1_schema_schema","schemas","tagsByName","bool","float","int","null","coreKnownTags","getTags","customTags","addMergeTag","schemaTags","sortMapEntriesByKey","Schema","resolveKnownTags","toStringDefaults","knownTags","errors","warnings","_replacer","keepSourceTokens","prettyErrors","strict","stringKeys","uniqueKeys","_directives","setSchema","assertCollection","createAlias","keyToStr","asStr","anchorPrefix","setAnchors","aliasObjects","prevAnchors","createNodeAnchors","sv","jsonArg","hasDirectives","dir","cs","contentComment","dc","stringifyDocument","YAMLError","pos","message","YAMLParseError","YAMLWarning","prettifyError","lc","linePos","col","lineStr","lineStarts","min","pointer","resolveProps","tokens","indicator","parentIndent","startOnNewline","atNewline","hasSpace","commentSep","reqSpace","tab","newlineAfterProp","comma","token","cb","last","containsNewline","st","sep","flowIndentCheck","fc","mapIncludes","search","isEqual","startColMsg","resolveEnd","blockMsg","resolveCollection","CN","coll","composeNode","composeEmptyNode","bm","atRoot","commentEnd","collItem","keyProps","atKey","keyStart","keyNode","valueProps","srcToken","resolveBlockMap","bs","resolveBlockSeq","fcName","prevItemComment","loop","endRange","expectedEnd","ce","ee","cePos","toUpperCase","resolveFlowCollection","Coll","resolveBlockScalar","scalar","ts","parseBlockScalarHeader","first","m","splitLines","chompStart","trimIndent","contentStart","prevMoreIndented","crlf","resolveFlowScalar","rel","badChar","foldLines","plainValue","singleQuotedValue","foldNewline","cc","escapeCodes","parseCharCode","wsStart","doubleQuotedValue","valueEnd","re","lastIndex","N","fromCodePoint","composeScalar","tagToken","matchWithTest","kt","findScalarTagByName","findScalarTagByTest","emptyScalarPosition","before","isSrcToken","alias","composeAlias","nl","lastProp","expType","composeCollection","getErrorPos","parsePrelude","prelude","atComment","afterEmptyLine","Composer","atDirectives","decorate","afterDoc","streamInfo","compose","forceDoc","endOffset","opts","contentEnd","composeDoc","resolveAsScalar","createScalarToken","he","head","addEndtoBlockProps","setScalarValue","afterKey","setBlockScalarValue","setFlowScalarValue","oa","tok","cst_stringify_stringify","cst","stringifyToken","stringifyItem","cst_visit_BREAK","cst_visit_SKIP","cst_visit_REMOVE","cst_visit_visit","_visit","itemAtPath","parentCollection","BOM","DOCUMENT","FLOW_END","cst_SCALAR","cst_isCollection","cst_isScalar","prettyToken","tokenType","hexDigits","tagChars","flowIndicatorChars","invalidAnchorChars","isNotAnchorChar","Lexer","atEnd","blockScalarIndent","blockScalarKeep","flowKey","flowLevel","indentNext","indentValue","lineEndPos","lex","incomplete","hasChars","parseNext","atLineEnd","charAt","continueScalar","dt","getLine","setNext","state","peek","parseStream","parseLineStart","parseBlockStart","parseDocument","parseFlowCollection","parseQuotedScalar","parseBlockScalar","parsePlainScalar","pushCount","dirEnd","pushSpaces","pushNewline","sp","ch0","ch1","pushIndicators","pushUntil","quote","qb","pushToIndex","lastChar","allowEmpty","pushTag","allowTabs","LineCounter","addNewLine","low","high","mid","includesToken","findNonEmptyIndex","isFlowToken","getPrevProps","getFirstKeyStartProps","arrayPushArray","apply","fixFlowSeqItems","Parser","onNewLine","atNewLine","atScalar","onKeyLine","stack","lexer","lexeme","step","pop","sourceToken","top","stream","blockScalar","blockMap","blockSequence","flowCollection","documentEnd","lineEnd","bv","startBlockValue","atIndentedComment","atMapIndent","atNextItem","fs","flowScalar","parseOptions","lineCounter","parseAllDocuments","parser","composer","docs","_doc","_reviver","public_api_stringify","round","browser","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","definition","binding","toStringTag","CedarWriters_1","CedarBuilders_1","ControlledTermDefaultValueBuilder_1","RoundTrip_1","PropertyIri_1","InstanceInflater_1","InstanceValidator_1","CedarReaders_1","YamlObjectComparator_1"],"sourceRoot":""}
|