@finos/legend-graph 10.1.2 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/DSLData_Exports.d.ts +1 -1
- package/lib/DSLData_Exports.d.ts.map +1 -1
- package/lib/DSLData_Exports.js +1 -1
- package/lib/DSLData_Exports.js.map +1 -1
- package/lib/DSLMapping_Exports.d.ts +6 -2
- package/lib/DSLMapping_Exports.d.ts.map +1 -1
- package/lib/DSLMapping_Exports.js +6 -2
- package/lib/DSLMapping_Exports.js.map +1 -1
- package/lib/GraphManagerState.d.ts +21 -18
- package/lib/GraphManagerState.d.ts.map +1 -1
- package/lib/GraphManagerState.js +68 -59
- package/lib/GraphManagerState.js.map +1 -1
- package/lib/GraphManagerTestUtils.js.map +1 -1
- package/lib/MetaModelConst.d.ts +44 -42
- package/lib/MetaModelConst.d.ts.map +1 -1
- package/lib/MetaModelConst.js +52 -50
- package/lib/MetaModelConst.js.map +1 -1
- package/lib/graph/BasicModel.d.ts +1 -1
- package/lib/graph/BasicModel.d.ts.map +1 -1
- package/lib/graph/BasicModel.js +4 -4
- package/lib/graph/BasicModel.js.map +1 -1
- package/lib/graph/DependencyManager.d.ts +1 -1
- package/lib/graph/DependencyManager.d.ts.map +1 -1
- package/lib/graph/DependencyManager.js +2 -2
- package/lib/graph/DependencyManager.js.map +1 -1
- package/lib/graph/PureModel.d.ts +8 -2
- package/lib/graph/PureModel.d.ts.map +1 -1
- package/lib/graph/PureModel.js +8 -2
- package/lib/graph/PureModel.js.map +1 -1
- package/lib/graphManager/AbstractPureGraphManager.d.ts +21 -16
- package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
- package/lib/graphManager/AbstractPureGraphManager.js +15 -0
- package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
- package/lib/graphManager/GraphManagerEvent.d.ts +1 -0
- package/lib/graphManager/GraphManagerEvent.d.ts.map +1 -1
- package/lib/graphManager/GraphManagerEvent.js +1 -0
- package/lib/graphManager/GraphManagerEvent.js.map +1 -1
- package/lib/graphManager/action/analytics/{MappingAnalytics.d.ts → MappingModelCoverageAnalysis.d.ts} +3 -3
- package/lib/graphManager/action/analytics/MappingModelCoverageAnalysis.d.ts.map +1 -0
- package/lib/graphManager/action/analytics/{MappingAnalytics.js → MappingModelCoverageAnalysis.js} +5 -7
- package/lib/graphManager/action/analytics/MappingModelCoverageAnalysis.js.map +1 -0
- package/lib/graphManager/action/changeDetection/CoreObserverHelper.d.ts +1 -2
- package/lib/graphManager/action/changeDetection/CoreObserverHelper.d.ts.map +1 -1
- package/lib/graphManager/action/changeDetection/CoreObserverHelper.js +0 -4
- package/lib/graphManager/action/changeDetection/CoreObserverHelper.js.map +1 -1
- package/lib/graphManager/action/changeDetection/DSLExternalFormat_ObserverHelper.d.ts.map +1 -1
- package/lib/graphManager/action/changeDetection/DSLExternalFormat_ObserverHelper.js +4 -2
- package/lib/graphManager/action/changeDetection/DSLExternalFormat_ObserverHelper.js.map +1 -1
- package/lib/graphManager/action/changeDetection/DSLMapping_ObserverHelper.d.ts +2 -2
- package/lib/graphManager/action/changeDetection/DSLMapping_ObserverHelper.d.ts.map +1 -1
- package/lib/graphManager/action/changeDetection/DSLMapping_ObserverHelper.js +16 -8
- package/lib/graphManager/action/changeDetection/DSLMapping_ObserverHelper.js.map +1 -1
- package/lib/graphManager/action/changeDetection/GraphObserverHelper.js +1 -1
- package/lib/graphManager/action/changeDetection/GraphObserverHelper.js.map +1 -1
- package/lib/graphManager/action/changeDetection/ValueSpecificationObserver.d.ts.map +1 -1
- package/lib/graphManager/action/changeDetection/ValueSpecificationObserver.js +4 -2
- package/lib/graphManager/action/changeDetection/ValueSpecificationObserver.js.map +1 -1
- package/lib/helpers/DSLMapping_Helper.js +1 -1
- package/lib/helpers/DSLMapping_Helper.js.map +1 -1
- package/lib/helpers/DomainHelper.d.ts +2 -0
- package/lib/helpers/DomainHelper.d.ts.map +1 -1
- package/lib/helpers/DomainHelper.js +5 -1
- package/lib/helpers/DomainHelper.js.map +1 -1
- package/lib/index.d.ts +3 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -9
- package/lib/index.js.map +1 -1
- package/lib/models/metamodels/pure/Reference.d.ts +16 -19
- package/lib/models/metamodels/pure/Reference.d.ts.map +1 -1
- package/lib/models/metamodels/pure/Reference.js +14 -19
- package/lib/models/metamodels/pure/Reference.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/PackageableElementReference.d.ts +2 -27
- package/lib/models/metamodels/pure/packageableElements/PackageableElementReference.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/PackageableElementReference.js +2 -73
- package/lib/models/metamodels/pure/packageableElements/PackageableElementReference.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.d.ts +2 -2
- package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.js +4 -1
- package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.d.ts +3 -3
- package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.js +3 -3
- package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.d.ts +10 -10
- package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.js +7 -7
- package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/mapping/PropertyMapping.d.ts +18 -14
- package/lib/models/metamodels/pure/packageableElements/mapping/PropertyMapping.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/mapping/PropertyMapping.js +17 -13
- package/lib/models/metamodels/pure/packageableElements/mapping/PropertyMapping.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementationReference.d.ts +8 -19
- package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementationReference.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementationReference.js +13 -34
- package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementationReference.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.d.ts +4 -3
- package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.js +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.d.ts +4 -4
- package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.js +2 -3
- package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.d.ts +3 -3
- package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.js +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.d.ts +4 -4
- package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.js +2 -3
- package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.d.ts +3 -2
- package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.js.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.d.ts +2 -2
- package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js +2 -3
- package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js.map +1 -1
- package/lib/models/metamodels/pure/valueSpecification/GraphFetchTree.d.ts +3 -3
- package/lib/models/metamodels/pure/valueSpecification/GraphFetchTree.d.ts.map +1 -1
- package/lib/models/metamodels/pure/valueSpecification/GraphFetchTree.js +2 -5
- package/lib/models/metamodels/pure/valueSpecification/GraphFetchTree.js.map +1 -1
- package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js +4 -4
- package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts +4 -8
- package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/models/protocols/pure/PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts +35 -17
- package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/V1_PureGraphManager.js +153 -146
- package/lib/models/protocols/pure/v1/V1_PureGraphManager.js.map +1 -1
- package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts +4 -2
- package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/engine/V1_Engine.js +5 -3
- package/lib/models/protocols/pure/v1/engine/V1_Engine.js.map +1 -1
- package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts +2 -2
- package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js +52 -52
- package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
- package/lib/models/protocols/pure/v1/engine/analytics/{V1_MappingAnalytics.d.ts → V1_MappingModelCoverageAnalysis.d.ts} +2 -2
- package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingModelCoverageAnalysis.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/engine/analytics/{V1_MappingAnalytics.js → V1_MappingModelCoverageAnalysis.js} +2 -2
- package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingModelCoverageAnalysis.js.map +1 -0
- package/lib/models/protocols/pure/v1/helper/V1_DomainHelper.d.ts +18 -0
- package/lib/models/protocols/pure/v1/helper/V1_DomainHelper.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/helper/V1_DomainHelper.js +35 -0
- package/lib/models/protocols/pure/v1/helper/V1_DomainHelper.js.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.d.ts +17 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.js +18 -5
- package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.js.map +1 -1
- package/lib/models/protocols/pure/v1/model/packageableElements/runtime/V1_Runtime.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/model/packageableElements/runtime/V1_Runtime.js +1 -1
- package/lib/models/protocols/pure/v1/model/packageableElements/runtime/V1_Runtime.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js +50 -86
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.js +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelClassMappingFirstPassBuilder.d.ts → V1_ClassMappingFirstPassBuilder.d.ts} +3 -3
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ClassMappingFirstPassBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js → V1_ClassMappingFirstPassBuilder.js} +6 -7
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ClassMappingFirstPassBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelClassMappingSecondPassBuilder.d.ts → V1_ClassMappingSecondPassBuilder.d.ts} +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ClassMappingSecondPassBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js → V1_ClassMappingSecondPassBuilder.js} +13 -14
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ClassMappingSecondPassBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFifthPassBuilder.d.ts → V1_ElementFifthPassBuilder.d.ts} +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFifthPassBuilder.js → V1_ElementFifthPassBuilder.js} +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFirstPassBuilder.d.ts → V1_ElementFirstPassBuilder.d.ts} +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFirstPassBuilder.js → V1_ElementFirstPassBuilder.js} +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFourthPassBuilder.d.ts → V1_ElementFourthPassBuilder.d.ts} +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFourthPassBuilder.js → V1_ElementFourthPassBuilder.js} +4 -4
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphSecondPassBuilder.d.ts → V1_ElementSecondPassBuilder.d.ts} +3 -3
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphSecondPassBuilder.js → V1_ElementSecondPassBuilder.js} +16 -17
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphThirdPassBuilder.d.ts → V1_ElementThirdPassBuilder.d.ts} +3 -3
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphThirdPassBuilder.js → V1_ElementThirdPassBuilder.js} +7 -7
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.js +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts → V1_PropertyMappingBuilder.d.ts} +4 -4
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PropertyMappingBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelPropertyMappingBuilder.js → V1_PropertyMappingBuilder.js} +50 -34
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PropertyMappingBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelRawValueSpecificationBuilder.d.ts → V1_RawValueSpecificationBuilder.d.ts} +3 -3
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_RawValueSpecificationBuilder.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelRawValueSpecificationBuilder.js → V1_RawValueSpecificationBuilder.js} +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_RawValueSpecificationBuilder.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AggregationAwareClassMappingBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AggregationAwareClassMappingBuilderHelper.js +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AggregationAwareClassMappingBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AssociationMappingHelper.js +3 -3
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AssociationMappingHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ConnectionBuilderHelper.d.ts +22 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ConnectionBuilderHelper.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelConnectionBuilder.js → helpers/V1_ConnectionBuilderHelper.js} +16 -15
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ConnectionBuilderHelper.js.map +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.d.ts +2 -11
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.js +2 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js +12 -12
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.js +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js +5 -6
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MilestoningBuilderHelper.js +4 -4
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MilestoningBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.js +7 -8
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalClassMappingBuilderHelper.d.ts +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalClassMappingBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalClassMappingBuilderHelper.js +4 -4
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalClassMappingBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RuntimeBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RuntimeBuilderHelper.js +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RuntimeBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.js +3 -3
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js +3 -4
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/package.json +5 -5
- package/package.json +8 -8
- package/src/DSLData_Exports.ts +1 -1
- package/src/DSLMapping_Exports.ts +20 -6
- package/src/GraphManagerState.ts +104 -91
- package/src/GraphManagerTestUtils.tsx +4 -4
- package/src/MetaModelConst.ts +59 -56
- package/src/graph/BasicModel.ts +4 -4
- package/src/graph/DependencyManager.ts +2 -2
- package/src/graph/PureModel.ts +10 -2
- package/src/graphManager/AbstractPureGraphManager.ts +54 -31
- package/src/graphManager/GraphManagerEvent.ts +1 -0
- package/src/graphManager/action/analytics/{MappingAnalytics.ts → MappingModelCoverageAnalysis.ts} +8 -6
- package/src/graphManager/action/changeDetection/CoreObserverHelper.ts +1 -14
- package/src/graphManager/action/changeDetection/DSLExternalFormat_ObserverHelper.ts +3 -2
- package/src/graphManager/action/changeDetection/DSLMapping_ObserverHelper.ts +17 -12
- package/src/graphManager/action/changeDetection/GraphObserverHelper.ts +2 -2
- package/src/graphManager/action/changeDetection/ValueSpecificationObserver.ts +3 -2
- package/src/helpers/DSLMapping_Helper.ts +1 -1
- package/src/helpers/DomainHelper.ts +14 -0
- package/src/index.ts +6 -17
- package/src/models/metamodels/pure/Reference.ts +17 -26
- package/src/models/metamodels/pure/packageableElements/PackageableElementReference.ts +2 -131
- package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.ts +6 -3
- package/src/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.ts +10 -9
- package/src/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.ts +18 -18
- package/src/models/metamodels/pure/packageableElements/mapping/PropertyMapping.ts +21 -17
- package/src/models/metamodels/pure/packageableElements/mapping/SetImplementationReference.ts +17 -66
- package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.ts +5 -7
- package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.ts +6 -6
- package/src/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.ts +4 -7
- package/src/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.ts +6 -6
- package/src/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.ts +4 -6
- package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.ts +3 -3
- package/src/models/metamodels/pure/valueSpecification/GraphFetchTree.ts +4 -10
- package/src/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.ts +5 -10
- package/src/models/protocols/pure/PureProtocolProcessorPlugin.ts +8 -8
- package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +243 -232
- package/src/models/protocols/pure/v1/engine/V1_Engine.ts +7 -2
- package/src/models/protocols/pure/v1/engine/V1_EngineServerClient.ts +34 -32
- package/src/models/protocols/pure/v1/engine/analytics/{V1_MappingAnalytics.ts → V1_MappingModelCoverageAnalysis.ts} +1 -1
- package/src/models/protocols/pure/v1/helper/V1_DomainHelper.ts +51 -0
- package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.ts +18 -5
- package/src/models/protocols/pure/v1/model/packageableElements/runtime/V1_Runtime.ts +1 -1
- package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.ts +32 -86
- package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.ts +1 -1
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelClassMappingFirstPassBuilder.ts → V1_ClassMappingFirstPassBuilder.ts} +6 -10
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelClassMappingSecondPassBuilder.ts → V1_ClassMappingSecondPassBuilder.ts} +12 -19
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFifthPassBuilder.ts → V1_ElementFifthPassBuilder.ts} +1 -1
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFirstPassBuilder.ts → V1_ElementFirstPassBuilder.ts} +1 -1
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphFourthPassBuilder.ts → V1_ElementFourthPassBuilder.ts} +3 -6
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphSecondPassBuilder.ts → V1_ElementSecondPassBuilder.ts} +18 -20
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelGraphThirdPassBuilder.ts → V1_ElementThirdPassBuilder.ts} +6 -9
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.ts +2 -4
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelPropertyMappingBuilder.ts → V1_PropertyMappingBuilder.ts} +105 -40
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelRawValueSpecificationBuilder.ts → V1_RawValueSpecificationBuilder.ts} +2 -2
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AggregationAwareClassMappingBuilderHelper.ts +2 -5
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AssociationMappingHelper.ts +3 -3
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/{V1_ProtocolToMetaModelConnectionBuilder.ts → helpers/V1_ConnectionBuilderHelper.ts} +33 -26
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.ts +7 -3
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.ts +14 -12
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.ts +1 -1
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.ts +6 -9
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MilestoningBuilderHelper.ts +4 -4
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.ts +7 -8
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalClassMappingBuilderHelper.ts +5 -5
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RuntimeBuilderHelper.ts +6 -5
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.ts +2 -4
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.ts +3 -7
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.ts +3 -6
- package/tsconfig.json +13 -12
- package/lib/graphManager/action/analytics/MappingAnalytics.d.ts.map +0 -1
- package/lib/graphManager/action/analytics/MappingAnalytics.js.map +0 -1
- package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelConnectionBuilder.d.ts +0 -40
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelConnectionBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelConnectionBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphFifthPassBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphFifthPassBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphFirstPassBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphFirstPassBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphFourthPassBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphFourthPassBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphThirdPassBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphThirdPassBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelRawValueSpecificationBuilder.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelRawValueSpecificationBuilder.js.map +0 -1
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { GRAPH_MANAGER_EVENT } from '../../../../graphManager/GraphManagerEvent.js';
|
|
17
|
-
import { CORE_PURE_PATH,
|
|
17
|
+
import { CORE_PURE_PATH, PackageableElementPointerType, } from '../../../../MetaModelConst.js';
|
|
18
18
|
import { TracerService, LogEvent, getClass, guaranteeNonNullable, UnsupportedOperationError, assertTrue, assertErrorThrown, promisify, StopWatch, isNonNullable, addUniqueEntry, uuid, deleteEntry, assertType, uniq, IllegalStateError, } from '@finos/legend-shared';
|
|
19
19
|
import { AbstractPureGraphManager, } from '../../../../graphManager/AbstractPureGraphManager.js';
|
|
20
20
|
import { PureModel, } from '../../../../graph/PureModel.js';
|
|
@@ -28,12 +28,12 @@ import { V1_serializePackageableElement } from './transformation/pureProtocol/V1
|
|
|
28
28
|
import { V1_entitiesToPureModelContextData, V1_serializePureModelContext, V1_deserializePureModelContextData, V1_setupPureModelContextDataSerialization, } from './transformation/pureProtocol/V1_PureProtocolSerialization.js';
|
|
29
29
|
import { V1_PureModelContextData } from './model/context/V1_PureModelContextData.js';
|
|
30
30
|
import { V1_PackageableElementPointer, } from './model/packageableElements/V1_PackageableElement.js';
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
31
|
+
import { V1_ElementFirstPassBuilder } from './transformation/pureGraph/to/V1_ElementFirstPassBuilder.js';
|
|
32
|
+
import { V1_ElementSecondPassBuilder } from './transformation/pureGraph/to/V1_ElementSecondPassBuilder.js';
|
|
33
|
+
import { V1_ElementThirdPassBuilder } from './transformation/pureGraph/to/V1_ElementThirdPassBuilder.js';
|
|
34
|
+
import { V1_ElementFourthPassBuilder } from './transformation/pureGraph/to/V1_ElementFourthPassBuilder.js';
|
|
35
|
+
import { V1_ElementFifthPassBuilder } from './transformation/pureGraph/to/V1_ElementFifthPassBuilder.js';
|
|
36
|
+
import { V1_RawValueSpecificationBuilder } from './transformation/pureGraph/to/V1_RawValueSpecificationBuilder.js';
|
|
37
37
|
import { V1_RawBaseExecutionContext } from './model/rawValueSpecification/V1_RawExecutionContext.js';
|
|
38
38
|
import { V1_GraphBuilderContextBuilder, } from './transformation/pureGraph/to/V1_GraphBuilderContext.js';
|
|
39
39
|
import { V1_PureModelContextPointer } from './model/context/V1_PureModelContextPointer.js';
|
|
@@ -87,25 +87,9 @@ import { TestFailed, TestError, } from '../../../metamodels/pure/test/result/Tes
|
|
|
87
87
|
import { getNullableIDFromTestable, getNullableTestable, } from '../../../../helpers/Testable_Helper.js';
|
|
88
88
|
import { TestSuite, } from '../../../metamodels/pure/test/Test.js';
|
|
89
89
|
import { pruneSourceInformation } from '../../../../MetaModelUtils.js';
|
|
90
|
-
import { V1_buildModelCoverageAnalysisResult, V1_MappingModelCoverageAnalysisInput, V1_MappingModelCoverageAnalysisResult, } from './engine/analytics/
|
|
90
|
+
import { V1_buildModelCoverageAnalysisResult, V1_MappingModelCoverageAnalysisInput, V1_MappingModelCoverageAnalysisResult, } from './engine/analytics/V1_MappingModelCoverageAnalysis.js';
|
|
91
91
|
import { deserialize } from 'serializr';
|
|
92
|
-
|
|
93
|
-
const getMultiplicitySuffix = (multiplicity) => {
|
|
94
|
-
if (multiplicity.lowerBound === multiplicity.upperBound) {
|
|
95
|
-
return multiplicity.lowerBound.toString();
|
|
96
|
-
}
|
|
97
|
-
else if (multiplicity.lowerBound === 0 &&
|
|
98
|
-
multiplicity.upperBound === undefined) {
|
|
99
|
-
return V1_FUNCTION_SUFFIX_MULTIPLICITY_INFINITE;
|
|
100
|
-
}
|
|
101
|
-
return `$${multiplicity.lowerBound}_${multiplicity.upperBound ?? V1_FUNCTION_SUFFIX_MULTIPLICITY_INFINITE}$`;
|
|
102
|
-
};
|
|
103
|
-
const getVariableSuffix = (variable) => `${variable.class
|
|
104
|
-
.split(ELEMENT_PATH_DELIMITER)
|
|
105
|
-
.pop()}_${getMultiplicitySuffix(variable.multiplicity)}_`;
|
|
106
|
-
const getFunctionSuffix = (fn) => `${fn.parameters.map((p) => getVariableSuffix(p)).join('_')}_${fn.returnType
|
|
107
|
-
.split(ELEMENT_PATH_DELIMITER)
|
|
108
|
-
.pop()}_${getMultiplicitySuffix(fn.returnMultiplicity)}_`;
|
|
92
|
+
import { V1_getFunctionSuffix } from './helper/V1_DomainHelper.js';
|
|
109
93
|
class V1_PureModelContextDataIndex {
|
|
110
94
|
elements = [];
|
|
111
95
|
nativeElements = [];
|
|
@@ -135,7 +119,7 @@ const mergePureModelContextData = (...data) => {
|
|
|
135
119
|
}
|
|
136
120
|
return mergedData;
|
|
137
121
|
};
|
|
138
|
-
const
|
|
122
|
+
export const V1_indexPureModelContextData = (report, data, extensions) => {
|
|
139
123
|
const index = new V1_PureModelContextDataIndex();
|
|
140
124
|
index.elements = data.elements;
|
|
141
125
|
const otherElementsByClass = new Map();
|
|
@@ -288,7 +272,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
288
272
|
const buildInputs = [
|
|
289
273
|
{
|
|
290
274
|
model: systemModel,
|
|
291
|
-
data:
|
|
275
|
+
data: V1_indexPureModelContextData(report, systemData, this.graphBuilderExtensions),
|
|
292
276
|
},
|
|
293
277
|
];
|
|
294
278
|
// build
|
|
@@ -310,7 +294,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
310
294
|
buildState.setMessage(undefined);
|
|
311
295
|
}
|
|
312
296
|
}
|
|
313
|
-
async buildDependencies(coreModel, systemModel, dependencyManager,
|
|
297
|
+
async buildDependencies(coreModel, systemModel, dependencyManager, dependencyEntitiesIndex, buildState, options) {
|
|
314
298
|
const stopWatch = new StopWatch();
|
|
315
299
|
const report = new GraphBuilderReport();
|
|
316
300
|
buildState.reset();
|
|
@@ -318,25 +302,25 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
318
302
|
const graph = new PureModel(coreModel, systemModel, this.pluginManager.getPureGraphPlugins());
|
|
319
303
|
graph.dependencyManager = dependencyManager;
|
|
320
304
|
try {
|
|
321
|
-
dependencyManager.initialize(
|
|
305
|
+
dependencyManager.initialize(dependencyEntitiesIndex);
|
|
322
306
|
// deserialize
|
|
323
307
|
buildState.setMessage(`Partitioning and deserializing elements...`);
|
|
324
|
-
const
|
|
325
|
-
await Promise.all(Array.from(
|
|
308
|
+
const dependencyGraphDataIndex = new Map();
|
|
309
|
+
await Promise.all(Array.from(dependencyEntitiesIndex.entries()).map(([dependencyKey, entities]) => {
|
|
326
310
|
const projectModelData = new V1_PureModelContextData();
|
|
327
|
-
|
|
311
|
+
dependencyGraphDataIndex.set(dependencyKey, projectModelData);
|
|
328
312
|
return V1_entitiesToPureModelContextData(entities, projectModelData, this.pluginManager.getPureProtocolProcessorPlugins());
|
|
329
313
|
}));
|
|
330
314
|
stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_ELEMENTS_DESERIALIZED);
|
|
331
315
|
// prepare build inputs
|
|
332
|
-
const buildInputs = Array.from(
|
|
316
|
+
const buildInputs = Array.from(dependencyGraphDataIndex.entries()).map(([dependencyKey, dependencyData]) => ({
|
|
333
317
|
model: graph.dependencyManager.getModel(dependencyKey),
|
|
334
|
-
data:
|
|
318
|
+
data: V1_indexPureModelContextData(report, dependencyData, this.graphBuilderExtensions),
|
|
335
319
|
}));
|
|
336
320
|
// build
|
|
337
321
|
await this.buildGraphFromInputs(graph, buildInputs, report, stopWatch, buildState, options);
|
|
338
322
|
buildState.pass();
|
|
339
|
-
report.otherStats.projectCount =
|
|
323
|
+
report.otherStats.projectCount = dependencyEntitiesIndex.size;
|
|
340
324
|
report.timings = {
|
|
341
325
|
...Object.fromEntries(stopWatch.records),
|
|
342
326
|
[GRAPH_MANAGER_EVENT.GRAPH_BUILDER_COMPLETED]: stopWatch.elapsed,
|
|
@@ -367,7 +351,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
367
351
|
const buildInputs = [
|
|
368
352
|
{
|
|
369
353
|
model: graph,
|
|
370
|
-
data:
|
|
354
|
+
data: V1_indexPureModelContextData(report, data, this.graphBuilderExtensions),
|
|
371
355
|
},
|
|
372
356
|
];
|
|
373
357
|
// build
|
|
@@ -411,22 +395,22 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
411
395
|
try {
|
|
412
396
|
// deserialize
|
|
413
397
|
buildState.setMessage(`Deserializing elements...`);
|
|
414
|
-
const
|
|
398
|
+
const generationGraphDataIndex = new Map();
|
|
415
399
|
await Promise.all(Array.from(generatedEntities.entries()).map(([generationParentPath, entities]) => {
|
|
416
400
|
const generatedData = new V1_PureModelContextData();
|
|
417
|
-
|
|
401
|
+
generationGraphDataIndex.set(generationParentPath, generatedData);
|
|
418
402
|
return V1_entitiesToPureModelContextData(entities, generatedData, this.pluginManager.getPureProtocolProcessorPlugins());
|
|
419
403
|
}));
|
|
420
404
|
stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_ELEMENTS_DESERIALIZED);
|
|
421
405
|
// prepare build inputs
|
|
422
|
-
const buildInputs = Array.from(
|
|
406
|
+
const buildInputs = Array.from(generationGraphDataIndex.entries()).map(([generationParentPath, generatedData]) => ({
|
|
423
407
|
model: generatedModel,
|
|
424
|
-
data:
|
|
408
|
+
data: V1_indexPureModelContextData(report, generatedData, this.graphBuilderExtensions),
|
|
425
409
|
}));
|
|
426
410
|
// build
|
|
427
411
|
await this.buildGraphFromInputs(graph, buildInputs, report, stopWatch, buildState, options);
|
|
428
412
|
buildState.pass();
|
|
429
|
-
report.otherStats.generationCount =
|
|
413
|
+
report.otherStats.generationCount = generationGraphDataIndex.size;
|
|
430
414
|
report.timings = {
|
|
431
415
|
...Object.fromEntries(stopWatch.records),
|
|
432
416
|
[GRAPH_MANAGER_EVENT.GRAPH_BUILDER_COMPLETED]: stopWatch.elapsed,
|
|
@@ -512,63 +496,63 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
512
496
|
await Promise.all(inputs.flatMap(async (input) => {
|
|
513
497
|
// create the package cache
|
|
514
498
|
const packageCache = new Map();
|
|
515
|
-
await Promise.all(input.data.nativeElements.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
516
|
-
await Promise.all(this.graphBuilderExtensions.sortedExtraElementBuilders.flatMap(async (builder) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
499
|
+
await Promise.all(input.data.nativeElements.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFirstPassBuilder(this.getBuilderContext(graph, input.model, element, options), packageCache, elementPathCache))));
|
|
500
|
+
await Promise.all(this.graphBuilderExtensions.sortedExtraElementBuilders.flatMap(async (builder) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFirstPassBuilder(this.getBuilderContext(graph, input.model, element, options), packageCache, elementPathCache)))));
|
|
517
501
|
}));
|
|
518
502
|
}
|
|
519
503
|
async buildTypes(graph, inputs, options) {
|
|
520
504
|
// Second pass
|
|
521
|
-
await Promise.all(inputs.flatMap((input) => input.data.profiles.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
522
|
-
await Promise.all(inputs.flatMap((input) => input.data.classes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
523
|
-
await Promise.all(inputs.flatMap((input) => input.data.enumerations.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
524
|
-
await Promise.all(inputs.flatMap((input) => input.data.measures.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
525
|
-
await Promise.all(inputs.flatMap((input) => input.data.functions.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
505
|
+
await Promise.all(inputs.flatMap((input) => input.data.profiles.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
506
|
+
await Promise.all(inputs.flatMap((input) => input.data.classes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
507
|
+
await Promise.all(inputs.flatMap((input) => input.data.enumerations.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
508
|
+
await Promise.all(inputs.flatMap((input) => input.data.measures.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
509
|
+
await Promise.all(inputs.flatMap((input) => input.data.functions.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
526
510
|
// Third pass
|
|
527
|
-
await Promise.all(inputs.flatMap((input) => input.data.classes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
528
|
-
await Promise.all(inputs.flatMap((input) => input.data.associations.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
511
|
+
await Promise.all(inputs.flatMap((input) => input.data.classes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementThirdPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
512
|
+
await Promise.all(inputs.flatMap((input) => input.data.associations.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementThirdPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
529
513
|
// Fourth Pass
|
|
530
|
-
await Promise.all(inputs.flatMap((input) => input.data.classes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
531
|
-
await Promise.all(inputs.flatMap((input) => input.data.associations.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
514
|
+
await Promise.all(inputs.flatMap((input) => input.data.classes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFourthPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
515
|
+
await Promise.all(inputs.flatMap((input) => input.data.associations.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFourthPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
532
516
|
// Fifth pass
|
|
533
|
-
await Promise.all(inputs.flatMap((input) => input.data.classes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
517
|
+
await Promise.all(inputs.flatMap((input) => input.data.classes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFifthPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
534
518
|
}
|
|
535
519
|
async buildStores(graph, inputs, options) {
|
|
536
|
-
await Promise.all(inputs.flatMap((input) => input.data.stores.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
537
|
-
await Promise.all(inputs.flatMap((input) => input.data.stores.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
538
|
-
await Promise.all(inputs.flatMap((input) => input.data.stores.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
539
|
-
await Promise.all(inputs.flatMap((input) => input.data.stores.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
520
|
+
await Promise.all(inputs.flatMap((input) => input.data.stores.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
521
|
+
await Promise.all(inputs.flatMap((input) => input.data.stores.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementThirdPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
522
|
+
await Promise.all(inputs.flatMap((input) => input.data.stores.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFourthPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
523
|
+
await Promise.all(inputs.flatMap((input) => input.data.stores.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFifthPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
540
524
|
}
|
|
541
525
|
async buildMappings(graph, inputs, options) {
|
|
542
|
-
await Promise.all(inputs.flatMap((input) => input.data.mappings.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
543
|
-
await Promise.all(inputs.flatMap((input) => input.data.mappings.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
544
|
-
await Promise.all(inputs.flatMap((input) => input.data.mappings.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
526
|
+
await Promise.all(inputs.flatMap((input) => input.data.mappings.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
527
|
+
await Promise.all(inputs.flatMap((input) => input.data.mappings.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementThirdPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
528
|
+
await Promise.all(inputs.flatMap((input) => input.data.mappings.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFourthPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
545
529
|
}
|
|
546
530
|
async buildConnectionsAndRuntimes(graph, inputs, options) {
|
|
547
531
|
// NOTE: connections must be built before runtimes
|
|
548
|
-
await Promise.all(inputs.flatMap((input) => input.data.connections.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
549
|
-
await Promise.all(inputs.flatMap((input) => input.data.runtimes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
532
|
+
await Promise.all(inputs.flatMap((input) => input.data.connections.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
533
|
+
await Promise.all(inputs.flatMap((input) => input.data.runtimes.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
550
534
|
}
|
|
551
535
|
async buildServices(graph, inputs, options) {
|
|
552
|
-
await Promise.all(inputs.flatMap((input) => input.data.services.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
536
|
+
await Promise.all(inputs.flatMap((input) => input.data.services.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
553
537
|
}
|
|
554
538
|
async buildDataElements(graph, inputs, options) {
|
|
555
|
-
await Promise.all(inputs.flatMap((input) => input.data.dataElements.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
539
|
+
await Promise.all(inputs.flatMap((input) => input.data.dataElements.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
556
540
|
}
|
|
557
541
|
async buildFileGenerations(graph, inputs, options) {
|
|
558
|
-
await Promise.all(inputs.flatMap((input) => input.data.fileGenerations.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
542
|
+
await Promise.all(inputs.flatMap((input) => input.data.fileGenerations.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
559
543
|
}
|
|
560
544
|
async buildGenerationSpecifications(graph, inputs, options) {
|
|
561
|
-
await Promise.all(inputs.flatMap((input) => input.data.generationSpecifications.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
545
|
+
await Promise.all(inputs.flatMap((input) => input.data.generationSpecifications.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
562
546
|
}
|
|
563
547
|
async buildSectionIndices(graph, inputs, options) {
|
|
564
|
-
await Promise.all(inputs.flatMap((input) => input.data.sectionIndices.map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
548
|
+
await Promise.all(inputs.flatMap((input) => input.data.sectionIndices.map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
565
549
|
}
|
|
566
550
|
async buildOtherElements(graph, inputs, options) {
|
|
567
551
|
await Promise.all(this.graphBuilderExtensions.sortedExtraElementBuilders.map(async (builder) => {
|
|
568
|
-
await Promise.all(inputs.flatMap((input) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
569
|
-
await Promise.all(inputs.flatMap((input) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
570
|
-
await Promise.all(inputs.flatMap((input) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
571
|
-
await Promise.all(inputs.flatMap((input) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new
|
|
552
|
+
await Promise.all(inputs.flatMap((input) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
553
|
+
await Promise.all(inputs.flatMap((input) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementThirdPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
554
|
+
await Promise.all(inputs.flatMap((input) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFourthPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
555
|
+
await Promise.all(inputs.flatMap((input) => (input.data.otherElementsByBuilder.get(builder) ?? []).map((element) => this.visitWithGraphBuilderErrorHandling(element, new V1_ElementFifthPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
|
|
572
556
|
}));
|
|
573
557
|
}
|
|
574
558
|
visitWithGraphBuilderErrorHandling(element, visitor) {
|
|
@@ -602,8 +586,8 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
602
586
|
!(el instanceof V1_SectionIndex));
|
|
603
587
|
return this.pureModelContextDataToEntities(pmcd);
|
|
604
588
|
}
|
|
605
|
-
async pureCodeToLambda(lambda, lambdaId) {
|
|
606
|
-
const result = await this.engine.transformCodeToLambda(lambda, lambdaId);
|
|
589
|
+
async pureCodeToLambda(lambda, lambdaId, options) {
|
|
590
|
+
const result = await this.engine.transformCodeToLambda(lambda, lambdaId, options);
|
|
607
591
|
return new RawLambda(result.parameters, result.body);
|
|
608
592
|
}
|
|
609
593
|
async lambdaToPureCode(lambda, pretty) {
|
|
@@ -754,7 +738,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
754
738
|
const json = this.serializeValueSpecification(valueSpecification);
|
|
755
739
|
// deserialize json and builds metamodal raw value spec
|
|
756
740
|
const rawValueSpecification = V1_deserializeRawValueSpecification(json);
|
|
757
|
-
return rawValueSpecification.accept_RawValueSpecificationVisitor(new
|
|
741
|
+
return rawValueSpecification.accept_RawValueSpecificationVisitor(new V1_RawValueSpecificationBuilder(new V1_GraphBuilderContextBuilder(graph, graph, this.graphBuilderExtensions, this.log).build()));
|
|
758
742
|
}
|
|
759
743
|
serializeRawValueSpecification(metamodel) {
|
|
760
744
|
return V1_serializeRawValueSpecification(metamodel.accept_RawValueSpecificationVisitor(new V1_RawValueSpecificationTransformer(new V1_GraphTransformerContextBuilder(this.pluginManager.getPureProtocolProcessorPlugins()).build())));
|
|
@@ -844,20 +828,20 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
844
828
|
executeInput.context = new V1_RawBaseExecutionContext(); // TODO: potentially need to support more types
|
|
845
829
|
return executeInput;
|
|
846
830
|
};
|
|
847
|
-
async executeMapping(
|
|
831
|
+
async executeMapping(lambda, mapping, runtime, graph, options) {
|
|
848
832
|
return V1_buildExecutionResult(await this.engine.executeMapping(this.createExecutionInput(graph, mapping, lambda, runtime, V1_PureGraphManager.TARGET_PROTOCOL_VERSION), options));
|
|
849
833
|
}
|
|
850
|
-
generateExecuteTestData(
|
|
834
|
+
generateExecuteTestData(lambda, parameters, mapping, runtime, graph, options) {
|
|
851
835
|
const testDataGenerationExecuteInput = new V1_TestDataGenerationExecutionInput();
|
|
852
836
|
this.buildExecutionInput(graph, mapping, lambda, runtime, V1_PureGraphManager.TARGET_PROTOCOL_VERSION, testDataGenerationExecuteInput);
|
|
853
837
|
testDataGenerationExecuteInput.parameters = parameters;
|
|
854
838
|
testDataGenerationExecuteInput.hashStrings = Boolean(options?.anonymizeGeneratedData);
|
|
855
839
|
return this.engine.generateExecuteTestData(testDataGenerationExecuteInput);
|
|
856
840
|
}
|
|
857
|
-
generateExecutionPlan(
|
|
841
|
+
generateExecutionPlan(lambda, mapping, runtime, graph) {
|
|
858
842
|
return this.engine.generateExecutionPlan(this.createExecutionInput(graph, mapping, lambda, runtime, V1_PureGraphManager.TARGET_PROTOCOL_VERSION));
|
|
859
843
|
}
|
|
860
|
-
async debugExecutionPlanGeneration(
|
|
844
|
+
async debugExecutionPlanGeneration(lambda, mapping, runtime, graph) {
|
|
861
845
|
const result = await this.engine.debugExecutionPlanGeneration(this.createExecutionInput(graph, mapping, lambda, runtime, V1_PureGraphManager.TARGET_PROTOCOL_VERSION));
|
|
862
846
|
return {
|
|
863
847
|
plan: result.plan,
|
|
@@ -874,7 +858,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
874
858
|
return V1_serializeExecutionNode(V1_transformExecutionNode(executionNode, new V1_GraphTransformerContextBuilder(this.pluginManager.getPureProtocolProcessorPlugins()).build()));
|
|
875
859
|
}
|
|
876
860
|
// --------------------------------------------- Service ---------------------------------------------
|
|
877
|
-
async registerService(
|
|
861
|
+
async registerService(service, graph, groupId, artifactId, version, server, executionMode) {
|
|
878
862
|
const serverServiceInfo = await this.engine.getServerServiceInfo();
|
|
879
863
|
// input
|
|
880
864
|
let input;
|
|
@@ -887,7 +871,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
887
871
|
break;
|
|
888
872
|
}
|
|
889
873
|
case ServiceExecutionMode.SEMI_INTERACTIVE: {
|
|
890
|
-
const sdlcInfo = new V1_AlloySDLC(
|
|
874
|
+
const sdlcInfo = new V1_AlloySDLC(groupId, artifactId, version);
|
|
891
875
|
const pointer = new V1_PureModelContextPointer(protocol, sdlcInfo);
|
|
892
876
|
// data
|
|
893
877
|
const data = new V1_PureModelContextData();
|
|
@@ -914,7 +898,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
914
898
|
break;
|
|
915
899
|
}
|
|
916
900
|
case ServiceExecutionMode.PROD: {
|
|
917
|
-
const sdlcInfo = new V1_AlloySDLC(
|
|
901
|
+
const sdlcInfo = new V1_AlloySDLC(groupId, artifactId, version);
|
|
918
902
|
const pointer = new V1_PureModelContextPointer(protocol, sdlcInfo);
|
|
919
903
|
sdlcInfo.packageableElementPointers = [
|
|
920
904
|
new V1_PackageableElementPointer(PackageableElementPointerType.SERVICE, service.path),
|
|
@@ -946,46 +930,6 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
946
930
|
async getLightQuery(queryId) {
|
|
947
931
|
return V1_buildLightQuery(await this.engine.getQuery(queryId), this.engine.getCurrentUserId());
|
|
948
932
|
}
|
|
949
|
-
// TODO: we could potentially reshape this method to build light graph with just indexing
|
|
950
|
-
// and return a slightly more complicated object instead: separating the graph and the dependencies part instead of
|
|
951
|
-
// return a list of `V1_GraphBuilderInput`. This method would be useful for any other light graph builder algo.
|
|
952
|
-
async indexEntitiesWithDependencyIntoGraph(graph, _entities, dependencyEntities, entityFilterFunc) {
|
|
953
|
-
let entities = _entities;
|
|
954
|
-
graph.dependencyManager.initialize(dependencyEntities);
|
|
955
|
-
if (entityFilterFunc) {
|
|
956
|
-
Array.from(dependencyEntities.entries()).forEach(([dependencyKey, dEntities]) => {
|
|
957
|
-
dependencyEntities.set(dependencyKey, dEntities.filter(entityFilterFunc));
|
|
958
|
-
});
|
|
959
|
-
entities = _entities.filter(entityFilterFunc);
|
|
960
|
-
}
|
|
961
|
-
const report = new GraphBuilderReport();
|
|
962
|
-
// build dependency pmcd models
|
|
963
|
-
const dependencyDataMap = new Map();
|
|
964
|
-
await Promise.all(Array.from(dependencyEntities.entries()).map(([dependencyKey, value]) => {
|
|
965
|
-
const projectModelData = new V1_PureModelContextData();
|
|
966
|
-
dependencyDataMap.set(dependencyKey, projectModelData);
|
|
967
|
-
return V1_entitiesToPureModelContextData(value, projectModelData, this.pluginManager.getPureProtocolProcessorPlugins());
|
|
968
|
-
}));
|
|
969
|
-
const dependencyGraphBuilderInput = Array.from(dependencyDataMap.entries()).map(([dependencyKey, dependencyData]) => ({
|
|
970
|
-
data: indexPureModelContextData(report, dependencyData, this.graphBuilderExtensions),
|
|
971
|
-
model: graph.dependencyManager.getModel(dependencyKey),
|
|
972
|
-
}));
|
|
973
|
-
// build main pmcd
|
|
974
|
-
const data = new V1_PureModelContextData();
|
|
975
|
-
await V1_entitiesToPureModelContextData(entities, data, this.pluginManager.getPureProtocolProcessorPlugins());
|
|
976
|
-
const mainGraphBuilderInput = [
|
|
977
|
-
{
|
|
978
|
-
model: graph,
|
|
979
|
-
data: indexPureModelContextData(report, data, this.graphBuilderExtensions),
|
|
980
|
-
},
|
|
981
|
-
];
|
|
982
|
-
const graphBuilderInput = [
|
|
983
|
-
...dependencyGraphBuilderInput,
|
|
984
|
-
...mainGraphBuilderInput,
|
|
985
|
-
];
|
|
986
|
-
await this.initializeAndIndexElements(graph, graphBuilderInput);
|
|
987
|
-
return graphBuilderInput;
|
|
988
|
-
}
|
|
989
933
|
// --------------------------------------------- Query ------------------------------------------------------
|
|
990
934
|
async getQuery(queryId, graph) {
|
|
991
935
|
return V1_buildQuery(await this.engine.getQuery(queryId), graph, this.engine.getCurrentUserId());
|
|
@@ -1031,26 +975,17 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
1031
975
|
.concat(extraElements));
|
|
1032
976
|
return prunedGraphData;
|
|
1033
977
|
};
|
|
1034
|
-
async analyzeMappingModelCoverage(
|
|
1035
|
-
const
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
this.buildMappingModelCoverageAnalysisInputContextData(graph);
|
|
1041
|
-
return V1_buildModelCoverageAnalysisResult(await this.engine.analyzeMappingModelCoverage(modelCoverageAnalysisInput));
|
|
978
|
+
async analyzeMappingModelCoverage(mapping, graph) {
|
|
979
|
+
const input = new V1_MappingModelCoverageAnalysisInput();
|
|
980
|
+
input.clientVersion = V1_PureGraphManager.TARGET_PROTOCOL_VERSION;
|
|
981
|
+
input.mapping = mapping.path;
|
|
982
|
+
input.model = this.buildMappingModelCoverageAnalysisInputContextData(graph);
|
|
983
|
+
return V1_buildModelCoverageAnalysisResult(await this.engine.analyzeMappingModelCoverage(input));
|
|
1042
984
|
}
|
|
1043
985
|
buildMappingModelCoverageAnalysisResult(input) {
|
|
1044
986
|
return V1_buildModelCoverageAnalysisResult(deserialize(V1_MappingModelCoverageAnalysisResult, input));
|
|
1045
987
|
}
|
|
1046
|
-
// ---------------------------------------------
|
|
1047
|
-
elementToEntity = (element, options) => {
|
|
1048
|
-
const entity = this.elementProtocolToEntity(this.elementToProtocol(element));
|
|
1049
|
-
if (options?.pruneSourceInformation) {
|
|
1050
|
-
entity.content = pruneSourceInformation(entity.content);
|
|
1051
|
-
}
|
|
1052
|
-
return entity;
|
|
1053
|
-
};
|
|
988
|
+
// --------------------------------------------- Database ---------------------------------------------
|
|
1054
989
|
async buildDatabase(input) {
|
|
1055
990
|
const dbBuilderInput = new V1_DatabaseBuilderInput();
|
|
1056
991
|
dbBuilderInput.connection = V1_transformRelationalDatabaseConnection(input.connection, new V1_GraphTransformerContextBuilder(this.pluginManager.getPureProtocolProcessorPlugins()).build());
|
|
@@ -1162,11 +1097,78 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
1162
1097
|
},
|
|
1163
1098
|
]);
|
|
1164
1099
|
}
|
|
1100
|
+
// --------------------------------------------- Utilities ---------------------------------------------
|
|
1101
|
+
elementToEntity = (element, options) => {
|
|
1102
|
+
const entity = this.elementProtocolToEntity(this.elementToProtocol(element));
|
|
1103
|
+
if (options?.pruneSourceInformation) {
|
|
1104
|
+
entity.content = pruneSourceInformation(entity.content);
|
|
1105
|
+
}
|
|
1106
|
+
return entity;
|
|
1107
|
+
};
|
|
1165
1108
|
// --------------------------------------------- Shared ---------------------------------------------
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1109
|
+
/**
|
|
1110
|
+
* This method helps indexing the graph from graph and dependencies' entities
|
|
1111
|
+
* This will produce a _light_ graph with empty unprocesed elements, they are just indexed in the graph
|
|
1112
|
+
* and the Pure model context data which can be used to further build the graph
|
|
1113
|
+
*
|
|
1114
|
+
* There are a few simple analytics we want to do on the graph which does not necessarily
|
|
1115
|
+
* require us to build the full-graph, in fact, doing so would be too costly. In those scenarios,
|
|
1116
|
+
* we need to build the _light_ graph, hence the existence of this utility method
|
|
1117
|
+
*
|
|
1118
|
+
* TODO?: do we need to account for system elements?
|
|
1119
|
+
*/
|
|
1120
|
+
async indexLightGraph(graph, entities, dependencyEntities, entityFilterFn, entityProcessorFn) {
|
|
1121
|
+
const report = new GraphBuilderReport();
|
|
1122
|
+
// build main graph builder input
|
|
1123
|
+
const data = new V1_PureModelContextData();
|
|
1124
|
+
await V1_entitiesToPureModelContextData(entities
|
|
1125
|
+
.filter((entity) => {
|
|
1126
|
+
// never exclude section index as it could be used for path resolution when building the graph later
|
|
1127
|
+
if (entity.classifierPath === CORE_PURE_PATH.SECTION_INDEX) {
|
|
1128
|
+
return true;
|
|
1129
|
+
}
|
|
1130
|
+
if (entityFilterFn) {
|
|
1131
|
+
return entityFilterFn(entity);
|
|
1132
|
+
}
|
|
1133
|
+
return true;
|
|
1134
|
+
})
|
|
1135
|
+
.map((entity) => entityProcessorFn ? entityProcessorFn(entity) : entity), data, this.pluginManager.getPureProtocolProcessorPlugins());
|
|
1136
|
+
const mainGraphBuilderInput = [
|
|
1137
|
+
{
|
|
1138
|
+
model: graph,
|
|
1139
|
+
data: V1_indexPureModelContextData(report, data, this.graphBuilderExtensions),
|
|
1140
|
+
},
|
|
1141
|
+
];
|
|
1142
|
+
// build dependencies graph builder input
|
|
1143
|
+
graph.dependencyManager.initialize(dependencyEntities);
|
|
1144
|
+
const dependencyGraphDataIndex = new Map();
|
|
1145
|
+
await Promise.all(Array.from(dependencyEntities.entries()).map(([dependencyKey, value]) => {
|
|
1146
|
+
const projectModelData = new V1_PureModelContextData();
|
|
1147
|
+
dependencyGraphDataIndex.set(dependencyKey, projectModelData);
|
|
1148
|
+
return V1_entitiesToPureModelContextData(value
|
|
1149
|
+
.filter((entity) => {
|
|
1150
|
+
// never exclude section index as it could be used for path resolution when building the graph later
|
|
1151
|
+
if (entity.classifierPath === CORE_PURE_PATH.SECTION_INDEX) {
|
|
1152
|
+
return true;
|
|
1153
|
+
}
|
|
1154
|
+
if (entityFilterFn) {
|
|
1155
|
+
return entityFilterFn(entity);
|
|
1156
|
+
}
|
|
1157
|
+
return true;
|
|
1158
|
+
})
|
|
1159
|
+
.map((entity) => entityProcessorFn ? entityProcessorFn(entity) : entity), projectModelData, this.pluginManager.getPureProtocolProcessorPlugins());
|
|
1160
|
+
}));
|
|
1161
|
+
const dependencyGraphBuilderInput = Array.from(dependencyGraphDataIndex.entries()).map(([dependencyKey, dependencyData]) => ({
|
|
1162
|
+
data: V1_indexPureModelContextData(report, dependencyData, this.graphBuilderExtensions),
|
|
1163
|
+
model: graph.dependencyManager.getModel(dependencyKey),
|
|
1164
|
+
}));
|
|
1165
|
+
// index simplified graph
|
|
1166
|
+
const graphBuilderInput = [
|
|
1167
|
+
...dependencyGraphBuilderInput,
|
|
1168
|
+
...mainGraphBuilderInput,
|
|
1169
|
+
];
|
|
1170
|
+
await this.initializeAndIndexElements(graph, graphBuilderInput);
|
|
1171
|
+
return graphBuilderInput;
|
|
1170
1172
|
}
|
|
1171
1173
|
getFullGraphModelData(graph, options) {
|
|
1172
1174
|
const contextData1 = this.graphToPureModelContextData(graph, {
|
|
@@ -1179,15 +1181,20 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
1179
1181
|
];
|
|
1180
1182
|
return contextData1;
|
|
1181
1183
|
}
|
|
1182
|
-
elementToProtocol = (element, options) => V1_transformPackageableElement(element, this.pluginManager.getPureProtocolProcessorPlugins(), new V1_GraphTransformerContextBuilder(this.pluginManager.getPureProtocolProcessorPlugins())
|
|
1183
|
-
.withKeepSourceInformationFlag(Boolean(options?.keepSourceInformation))
|
|
1184
|
-
.build());
|
|
1185
|
-
pureModelContextDataToEntities = (graphProtocol) => graphProtocol.elements.map((element) => this.elementProtocolToEntity(element));
|
|
1186
1184
|
elementProtocolToEntity = (elementProtocol) => ({
|
|
1187
1185
|
path: this.getElementPath(elementProtocol),
|
|
1188
1186
|
content: V1_serializePackageableElement(elementProtocol, this.pluginManager.getPureProtocolProcessorPlugins()),
|
|
1189
1187
|
classifierPath: this.getElementClassiferPath(elementProtocol),
|
|
1190
1188
|
});
|
|
1189
|
+
async entitiesToPureModelContextData(entities) {
|
|
1190
|
+
const graphData = new V1_PureModelContextData();
|
|
1191
|
+
await V1_entitiesToPureModelContextData(entities, graphData, this.pluginManager.getPureProtocolProcessorPlugins());
|
|
1192
|
+
return graphData;
|
|
1193
|
+
}
|
|
1194
|
+
elementToProtocol = (element, options) => V1_transformPackageableElement(element, this.pluginManager.getPureProtocolProcessorPlugins(), new V1_GraphTransformerContextBuilder(this.pluginManager.getPureProtocolProcessorPlugins())
|
|
1195
|
+
.withKeepSourceInformationFlag(Boolean(options?.keepSourceInformation))
|
|
1196
|
+
.build());
|
|
1197
|
+
pureModelContextDataToEntities = (graphProtocol) => graphProtocol.elements.map((element) => this.elementProtocolToEntity(element));
|
|
1191
1198
|
getElementPath = (elementProtocol) => {
|
|
1192
1199
|
let name = elementProtocol.name;
|
|
1193
1200
|
// These functions calculation the function suffix and are used to identify if an
|
|
@@ -1195,7 +1202,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
|
|
|
1195
1202
|
// if so, we will remove that suffix
|
|
1196
1203
|
// TODO: to be revised when we support function overloading
|
|
1197
1204
|
if (elementProtocol instanceof V1_ConcreteFunctionDefinition) {
|
|
1198
|
-
const suffixIndex = elementProtocol.name.indexOf(
|
|
1205
|
+
const suffixIndex = elementProtocol.name.indexOf(V1_getFunctionSuffix(elementProtocol));
|
|
1199
1206
|
if (suffixIndex > 0) {
|
|
1200
1207
|
name = elementProtocol.name.substring(0, suffixIndex - 1);
|
|
1201
1208
|
}
|