@finos/legend-graph 29.0.5 → 30.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.
Files changed (280) hide show
  1. package/lib/graph/BasicModel.d.ts.map +1 -1
  2. package/lib/graph/BasicModel.js +11 -0
  3. package/lib/graph/BasicModel.js.map +1 -1
  4. package/lib/graph/Core_HashUtils.d.ts +3 -0
  5. package/lib/graph/Core_HashUtils.d.ts.map +1 -1
  6. package/lib/graph/Core_HashUtils.js +3 -0
  7. package/lib/graph/Core_HashUtils.js.map +1 -1
  8. package/lib/graph/__test-utils__/GraphTestUtils.d.ts.map +1 -1
  9. package/lib/graph/__test-utils__/GraphTestUtils.js +5 -0
  10. package/lib/graph/__test-utils__/GraphTestUtils.js.map +1 -1
  11. package/lib/graph/helpers/STO_Relational_Helper.d.ts +3 -1
  12. package/lib/graph/helpers/STO_Relational_Helper.d.ts.map +1 -1
  13. package/lib/graph/helpers/STO_Relational_Helper.js +3 -1
  14. package/lib/graph/helpers/STO_Relational_Helper.js.map +1 -1
  15. package/lib/graph/metamodel/pure/executionPlan/ExecutionPlan.d.ts +6 -0
  16. package/lib/graph/metamodel/pure/executionPlan/ExecutionPlan.d.ts.map +1 -1
  17. package/lib/graph/metamodel/pure/executionPlan/ExecutionPlan.js +6 -0
  18. package/lib/graph/metamodel/pure/executionPlan/ExecutionPlan.js.map +1 -1
  19. package/lib/graph/metamodel/pure/executionPlan/nodes/ExecutionNode.d.ts +6 -0
  20. package/lib/graph/metamodel/pure/executionPlan/nodes/ExecutionNode.d.ts.map +1 -1
  21. package/lib/graph/metamodel/pure/executionPlan/nodes/ExecutionNode.js +6 -0
  22. package/lib/graph/metamodel/pure/executionPlan/nodes/ExecutionNode.js.map +1 -1
  23. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.d.ts +2 -0
  24. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.d.ts.map +1 -1
  25. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.js.map +1 -1
  26. package/lib/graph/metamodel/pure/packageableElements/mapping/INTERNAL__UnresolvedSetImplementation.d.ts +43 -0
  27. package/lib/graph/metamodel/pure/packageableElements/mapping/INTERNAL__UnresolvedSetImplementation.d.ts.map +1 -0
  28. package/lib/graph/metamodel/pure/packageableElements/mapping/{TEMPORARY__UnresolvedSetImplementation.js → INTERNAL__UnresolvedSetImplementation.js} +17 -7
  29. package/lib/graph/metamodel/pure/packageableElements/mapping/INTERNAL__UnresolvedSetImplementation.js.map +1 -0
  30. package/lib/graph/metamodel/pure/packageableElements/mapping/SetImplementation.d.ts +2 -2
  31. package/lib/graph/metamodel/pure/packageableElements/mapping/SetImplementation.d.ts.map +1 -1
  32. package/lib/graph/metamodel/pure/packageableElements/service/ServiceTestSuite.d.ts +1 -1
  33. package/lib/graph/metamodel/pure/packageableElements/service/ServiceTestSuite.d.ts.map +1 -1
  34. package/lib/graph/metamodel/pure/packageableElements/service/ServiceTestSuite.js +1 -1
  35. package/lib/graph/metamodel/pure/packageableElements/service/ServiceTestSuite.js.map +1 -1
  36. package/lib/graph/metamodel/pure/packageableElements/store/{INTERNAL__PseudoStore.d.ts → INTERNAL__UnknownStore.d.ts} +5 -5
  37. package/lib/graph/metamodel/pure/packageableElements/store/INTERNAL__UnknownStore.d.ts.map +1 -0
  38. package/lib/graph/metamodel/pure/packageableElements/store/{INTERNAL__PseudoStore.js → INTERNAL__UnknownStore.js} +12 -9
  39. package/lib/graph/metamodel/pure/packageableElements/store/INTERNAL__UnknownStore.js.map +1 -0
  40. package/lib/graph/metamodel/pure/valueSpecification/GraphFetchTree.d.ts +6 -0
  41. package/lib/graph/metamodel/pure/valueSpecification/GraphFetchTree.d.ts.map +1 -1
  42. package/lib/graph/metamodel/pure/valueSpecification/GraphFetchTree.js +16 -0
  43. package/lib/graph/metamodel/pure/valueSpecification/GraphFetchTree.js.map +1 -1
  44. package/lib/graph-manager/AbstractPureGraphManager.d.ts +12 -9
  45. package/lib/graph-manager/AbstractPureGraphManager.d.ts.map +1 -1
  46. package/lib/graph-manager/AbstractPureGraphManager.js.map +1 -1
  47. package/lib/graph-manager/__test-utils__/GraphManagerTestUtils.d.ts.map +1 -1
  48. package/lib/graph-manager/__test-utils__/GraphManagerTestUtils.js +10 -0
  49. package/lib/graph-manager/__test-utils__/GraphManagerTestUtils.js.map +1 -1
  50. package/lib/graph-manager/action/changeDetection/DSL_Mapping_ObserverHelper.d.ts +2 -0
  51. package/lib/graph-manager/action/changeDetection/DSL_Mapping_ObserverHelper.d.ts.map +1 -1
  52. package/lib/graph-manager/action/changeDetection/DSL_Mapping_ObserverHelper.js +9 -1
  53. package/lib/graph-manager/action/changeDetection/DSL_Mapping_ObserverHelper.js.map +1 -1
  54. package/lib/graph-manager/action/changeDetection/DSL_Service_ObserverHelper.d.ts.map +1 -1
  55. package/lib/graph-manager/action/changeDetection/DSL_Service_ObserverHelper.js +3 -1
  56. package/lib/graph-manager/action/changeDetection/DSL_Service_ObserverHelper.js.map +1 -1
  57. package/lib/graph-manager/action/changeDetection/PackageableElementObserver.d.ts.map +1 -1
  58. package/lib/graph-manager/action/changeDetection/PackageableElementObserver.js +4 -1
  59. package/lib/graph-manager/action/changeDetection/PackageableElementObserver.js.map +1 -1
  60. package/lib/graph-manager/action/generation/DatabaseBuilderInput.d.ts +1 -1
  61. package/lib/graph-manager/action/generation/DatabaseBuilderInput.d.ts.map +1 -1
  62. package/lib/graph-manager/action/generation/DatabaseBuilderInput.js +3 -2
  63. package/lib/graph-manager/action/generation/DatabaseBuilderInput.js.map +1 -1
  64. package/lib/graph-manager/action/protocol/{ClassifierPathMapping.d.ts → ProtocolInfo.d.ts} +5 -1
  65. package/lib/graph-manager/action/protocol/ProtocolInfo.d.ts.map +1 -0
  66. package/lib/graph-manager/action/protocol/{ClassifierPathMapping.js → ProtocolInfo.js} +1 -1
  67. package/lib/graph-manager/action/protocol/ProtocolInfo.js.map +1 -0
  68. package/lib/graph-manager/protocol/pure/PureProtocolProcessorPlugin.d.ts +0 -10
  69. package/lib/graph-manager/protocol/pure/PureProtocolProcessorPlugin.d.ts.map +1 -1
  70. package/lib/graph-manager/protocol/pure/PureProtocolProcessorPlugin.js.map +1 -1
  71. package/lib/graph-manager/protocol/pure/extensions/DSL_ExternalFormat_PureProtocolProcessorPlugin.d.ts +1 -2
  72. package/lib/graph-manager/protocol/pure/extensions/DSL_ExternalFormat_PureProtocolProcessorPlugin.d.ts.map +1 -1
  73. package/lib/graph-manager/protocol/pure/extensions/DSL_ExternalFormat_PureProtocolProcessorPlugin.js +0 -5
  74. package/lib/graph-manager/protocol/pure/extensions/DSL_ExternalFormat_PureProtocolProcessorPlugin.js.map +1 -1
  75. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.d.ts +6 -4
  76. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  77. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.js +76 -89
  78. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.js.map +1 -1
  79. package/lib/graph-manager/protocol/pure/v1/engine/V1_Engine.d.ts +6 -3
  80. package/lib/graph-manager/protocol/pure/v1/engine/V1_Engine.d.ts.map +1 -1
  81. package/lib/graph-manager/protocol/pure/v1/engine/V1_Engine.js +25 -3
  82. package/lib/graph-manager/protocol/pure/v1/engine/V1_Engine.js.map +1 -1
  83. package/lib/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.d.ts +6 -2
  84. package/lib/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
  85. package/lib/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.js +5 -1
  86. package/lib/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
  87. package/lib/graph-manager/protocol/pure/v1/engine/execution/V1_RawSQLExecuteInput.d.ts +24 -0
  88. package/lib/graph-manager/protocol/pure/v1/engine/execution/V1_RawSQLExecuteInput.d.ts.map +1 -0
  89. package/lib/graph-manager/protocol/pure/v1/engine/execution/V1_RawSQLExecuteInput.js +28 -0
  90. package/lib/graph-manager/protocol/pure/v1/engine/execution/V1_RawSQLExecuteInput.js.map +1 -0
  91. package/lib/graph-manager/protocol/pure/v1/engine/generation/V1_DatabaseBuilderInput.d.ts +2 -2
  92. package/lib/graph-manager/protocol/pure/v1/engine/generation/V1_DatabaseBuilderInput.d.ts.map +1 -1
  93. package/lib/graph-manager/protocol/pure/v1/engine/generation/V1_DatabaseBuilderInput.js +8 -9
  94. package/lib/graph-manager/protocol/pure/v1/engine/generation/V1_DatabaseBuilderInput.js.map +1 -1
  95. package/lib/graph-manager/protocol/pure/v1/model/context/V1_PureModelContextData.d.ts +2 -2
  96. package/lib/graph-manager/protocol/pure/v1/model/context/V1_PureModelContextData.d.ts.map +1 -1
  97. package/lib/graph-manager/protocol/pure/v1/model/context/V1_PureModelContextData.js +2 -2
  98. package/lib/graph-manager/protocol/pure/v1/model/context/V1_PureModelContextData.js.map +1 -1
  99. package/lib/graph-manager/protocol/pure/v1/model/executionPlan/V1_SimpleExecutionPlan.d.ts +6 -0
  100. package/lib/graph-manager/protocol/pure/v1/model/executionPlan/V1_SimpleExecutionPlan.d.ts.map +1 -1
  101. package/lib/graph-manager/protocol/pure/v1/model/executionPlan/V1_SimpleExecutionPlan.js +6 -0
  102. package/lib/graph-manager/protocol/pure/v1/model/executionPlan/V1_SimpleExecutionPlan.js.map +1 -1
  103. package/lib/graph-manager/protocol/pure/v1/model/executionPlan/nodes/V1_ExecutionNode.d.ts +6 -0
  104. package/lib/graph-manager/protocol/pure/v1/model/executionPlan/nodes/V1_ExecutionNode.d.ts.map +1 -1
  105. package/lib/graph-manager/protocol/pure/v1/model/executionPlan/nodes/V1_ExecutionNode.js +6 -0
  106. package/lib/graph-manager/protocol/pure/v1/model/executionPlan/nodes/V1_ExecutionNode.js.map +1 -1
  107. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.d.ts +2 -0
  108. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.d.ts.map +1 -1
  109. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.js.map +1 -1
  110. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/service/V1_ServiceTestSuite.d.ts +1 -1
  111. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/service/V1_ServiceTestSuite.d.ts.map +1 -1
  112. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/service/V1_ServiceTestSuite.js +1 -1
  113. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/service/V1_ServiceTestSuite.js.map +1 -1
  114. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/store/V1_INTERNAL__UnknownStore.d.ts +24 -0
  115. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/store/V1_INTERNAL__UnknownStore.d.ts.map +1 -0
  116. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/store/V1_INTERNAL__UnknownStore.js +32 -0
  117. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/store/V1_INTERNAL__UnknownStore.js.map +1 -0
  118. package/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_GraphFetchTree.d.ts +3 -0
  119. package/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_GraphFetchTree.d.ts.map +1 -1
  120. package/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_GraphFetchTree.js +1 -0
  121. package/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_GraphFetchTree.js.map +1 -1
  122. package/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_SubTypeGraphFetchTree.d.ts +21 -0
  123. package/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_SubTypeGraphFetchTree.d.ts.map +1 -0
  124. package/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_SubTypeGraphFetchTree.js +23 -0
  125. package/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_SubTypeGraphFetchTree.js.map +1 -0
  126. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +1 -1
  127. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  128. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts +2 -2
  129. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts.map +1 -1
  130. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js +1 -1
  131. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js.map +1 -1
  132. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.d.ts.map +1 -1
  133. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js +7 -0
  134. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js.map +1 -1
  135. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.d.ts.map +1 -1
  136. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js +3 -1
  137. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js.map +1 -1
  138. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.d.ts.map +1 -1
  139. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.js +9 -1
  140. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.js.map +1 -1
  141. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/executionPlan/V1_ExecutionPlanTransformer.d.ts.map +1 -1
  142. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/executionPlan/V1_ExecutionPlanTransformer.js +2 -0
  143. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/executionPlan/V1_ExecutionPlanTransformer.js.map +1 -1
  144. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts +2 -0
  145. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts.map +1 -1
  146. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js +3 -0
  147. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js.map +1 -1
  148. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts +2 -0
  149. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts.map +1 -1
  150. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js +12 -0
  151. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js.map +1 -1
  152. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts +2 -0
  153. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts.map +1 -1
  154. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js +3 -0
  155. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js.map +1 -1
  156. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts +2 -0
  157. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts.map +1 -1
  158. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js +3 -15
  159. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js.map +1 -1
  160. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts +2 -0
  161. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts.map +1 -1
  162. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js +3 -0
  163. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js.map +1 -1
  164. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.d.ts.map +1 -1
  165. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.js +3 -0
  166. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.js.map +1 -1
  167. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_PropertyMappingBuilder.d.ts.map +1 -1
  168. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_PropertyMappingBuilder.js +46 -23
  169. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_PropertyMappingBuilder.js.map +1 -1
  170. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ConnectionBuilderHelper.d.ts +1 -1
  171. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ConnectionBuilderHelper.d.ts.map +1 -1
  172. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ConnectionBuilderHelper.js +12 -3
  173. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ConnectionBuilderHelper.js.map +1 -1
  174. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.d.ts +1 -1
  175. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.d.ts.map +1 -1
  176. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js +11 -10
  177. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js.map +1 -1
  178. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.d.ts.map +1 -1
  179. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js +3 -1
  180. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js.map +1 -1
  181. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -1
  182. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js +16 -3
  183. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js.map +1 -1
  184. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.d.ts +2 -1
  185. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.d.ts.map +1 -1
  186. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js +21 -3
  187. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js.map +1 -1
  188. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.d.ts +3 -2
  189. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.d.ts.map +1 -1
  190. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.js +5 -5
  191. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.js.map +1 -1
  192. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.d.ts.map +1 -1
  193. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js +4 -2
  194. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js.map +1 -1
  195. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.js +1 -1
  196. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.js.map +1 -1
  197. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.d.ts.map +1 -1
  198. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js +2 -2
  199. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js.map +1 -1
  200. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ValueSpecificationSerializer.d.ts +1 -0
  201. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ValueSpecificationSerializer.d.ts.map +1 -1
  202. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ValueSpecificationSerializer.js +13 -0
  203. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ValueSpecificationSerializer.js.map +1 -1
  204. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.d.ts +3 -3
  205. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.d.ts.map +1 -1
  206. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.js +5 -4
  207. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.js.map +1 -1
  208. package/lib/index.d.ts +4 -4
  209. package/lib/index.d.ts.map +1 -1
  210. package/lib/index.js +4 -4
  211. package/lib/index.js.map +1 -1
  212. package/lib/package.json +1 -1
  213. package/package.json +4 -4
  214. package/src/graph/BasicModel.ts +10 -0
  215. package/src/graph/Core_HashUtils.ts +3 -0
  216. package/src/graph/__test-utils__/GraphTestUtils.ts +5 -0
  217. package/src/graph/helpers/STO_Relational_Helper.ts +13 -0
  218. package/src/graph/metamodel/pure/executionPlan/ExecutionPlan.ts +6 -5
  219. package/src/graph/metamodel/pure/executionPlan/nodes/ExecutionNode.ts +6 -1
  220. package/src/graph/metamodel/pure/packageableElements/PackageableElement.ts +2 -0
  221. package/src/graph/metamodel/pure/packageableElements/mapping/{TEMPORARY__UnresolvedSetImplementation.ts → INTERNAL__UnresolvedSetImplementation.ts} +16 -6
  222. package/src/graph/metamodel/pure/packageableElements/mapping/SetImplementation.ts +4 -4
  223. package/src/graph/metamodel/pure/packageableElements/service/ServiceTestSuite.ts +2 -2
  224. package/src/graph/metamodel/pure/packageableElements/store/{INTERNAL__PseudoStore.ts → INTERNAL__UnknownStore.ts} +18 -7
  225. package/src/graph/metamodel/pure/valueSpecification/GraphFetchTree.ts +19 -1
  226. package/src/graph-manager/AbstractPureGraphManager.ts +23 -12
  227. package/src/graph-manager/__test-utils__/GraphManagerTestUtils.ts +10 -0
  228. package/src/graph-manager/action/changeDetection/DSL_Mapping_ObserverHelper.ts +17 -3
  229. package/src/graph-manager/action/changeDetection/DSL_Service_ObserverHelper.ts +3 -1
  230. package/src/graph-manager/action/changeDetection/PackageableElementObserver.ts +6 -0
  231. package/src/graph-manager/action/generation/DatabaseBuilderInput.ts +8 -3
  232. package/src/graph-manager/action/protocol/{ClassifierPathMapping.ts → ProtocolInfo.ts} +5 -0
  233. package/src/graph-manager/protocol/pure/PureProtocolProcessorPlugin.ts +0 -23
  234. package/src/graph-manager/protocol/pure/extensions/DSL_ExternalFormat_PureProtocolProcessorPlugin.ts +0 -15
  235. package/src/graph-manager/protocol/pure/v1/V1_PureGraphManager.ts +121 -124
  236. package/src/graph-manager/protocol/pure/v1/engine/V1_Engine.ts +41 -3
  237. package/src/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.ts +26 -3
  238. package/src/graph-manager/protocol/pure/v1/engine/execution/V1_RawSQLExecuteInput.ts +52 -0
  239. package/src/graph-manager/protocol/pure/v1/engine/generation/V1_DatabaseBuilderInput.ts +15 -4
  240. package/src/graph-manager/protocol/pure/v1/model/context/V1_PureModelContextData.ts +2 -2
  241. package/src/graph-manager/protocol/pure/v1/model/executionPlan/V1_SimpleExecutionPlan.ts +6 -1
  242. package/src/graph-manager/protocol/pure/v1/model/executionPlan/nodes/V1_ExecutionNode.ts +6 -1
  243. package/src/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.ts +2 -0
  244. package/src/graph-manager/protocol/pure/v1/model/packageableElements/service/V1_ServiceTestSuite.ts +2 -2
  245. package/src/graph-manager/protocol/pure/v1/model/packageableElements/store/V1_INTERNAL__UnknownStore.ts +45 -0
  246. package/src/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_GraphFetchTree.ts +3 -0
  247. package/src/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_SubTypeGraphFetchTree.ts +28 -0
  248. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +1 -1
  249. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.ts +3 -3
  250. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.ts +11 -0
  251. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.ts +3 -1
  252. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.ts +27 -0
  253. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/executionPlan/V1_ExecutionPlanTransformer.ts +2 -0
  254. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.ts +5 -0
  255. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.ts +29 -0
  256. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.ts +5 -0
  257. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.ts +5 -15
  258. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.ts +5 -0
  259. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.ts +3 -0
  260. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_PropertyMappingBuilder.ts +84 -40
  261. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ConnectionBuilderHelper.ts +16 -6
  262. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.ts +12 -13
  263. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.ts +3 -1
  264. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.ts +44 -2
  265. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.ts +29 -0
  266. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.ts +6 -2
  267. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.ts +11 -2
  268. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.ts +1 -1
  269. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.ts +2 -1
  270. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ValueSpecificationSerializer.ts +28 -1
  271. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.ts +10 -7
  272. package/src/index.ts +2 -4
  273. package/tsconfig.json +6 -3
  274. package/lib/graph/metamodel/pure/packageableElements/mapping/TEMPORARY__UnresolvedSetImplementation.d.ts +0 -33
  275. package/lib/graph/metamodel/pure/packageableElements/mapping/TEMPORARY__UnresolvedSetImplementation.d.ts.map +0 -1
  276. package/lib/graph/metamodel/pure/packageableElements/mapping/TEMPORARY__UnresolvedSetImplementation.js.map +0 -1
  277. package/lib/graph/metamodel/pure/packageableElements/store/INTERNAL__PseudoStore.d.ts.map +0 -1
  278. package/lib/graph/metamodel/pure/packageableElements/store/INTERNAL__PseudoStore.js.map +0 -1
  279. package/lib/graph-manager/action/protocol/ClassifierPathMapping.d.ts.map +0 -1
  280. package/lib/graph-manager/action/protocol/ClassifierPathMapping.js.map +0 -1
@@ -82,6 +82,7 @@ import { V1_transformRelationalOperationElement } from '../from/V1_DatabaseTrans
82
82
  import { V1_GraphTransformerContextBuilder } from '../from/V1_GraphTransformerContext.js';
83
83
  import {
84
84
  getAllEnumerationMappings,
85
+ getAllIncludedMappings,
85
86
  getClassMappingById,
86
87
  getClassMappingsByClass,
87
88
  } from '../../../../../../../graph/helpers/DSL_Mapping_Helper.js';
@@ -90,7 +91,7 @@ import type { AbstractProperty } from '../../../../../../../graph/metamodel/pure
90
91
  import { BindingTransformer } from '../../../../../../../graph/metamodel/pure/packageableElements/externalFormat/store/DSL_ExternalFormat_BindingTransformer.js';
91
92
  import type { Mapping } from '../../../../../../../graph/metamodel/pure/packageableElements/mapping/Mapping.js';
92
93
  import { V1_resolveBinding } from './V1_DSL_ExternalFormat_GraphBuilderHelper.js';
93
- import { TEMPORARY__UnresolvedSetImplementation } from '../../../../../../../graph/metamodel/pure/packageableElements/mapping/TEMPORARY__UnresolvedSetImplementation.js';
94
+ import { INTERNAL__UnresolvedSetImplementation } from '../../../../../../../graph/metamodel/pure/packageableElements/mapping/INTERNAL__UnresolvedSetImplementation.js';
94
95
  import {
95
96
  getAssociatedPropertyClass,
96
97
  getOwnProperty,
@@ -103,8 +104,9 @@ import type { V1_FlatDataAssociationPropertyMapping } from '../../../model/packa
103
104
  import { FlatDataAssociationPropertyMapping } from '../../../../../../../graph/metamodel/pure/packageableElements/store/flatData/mapping/FlatDataAssociationPropertyMapping.js';
104
105
  import type { V1_INTERNAL__UnknownPropertyMapping } from '../../../model/packageableElements/mapping/V1_INTERNAL__UnknownPropertyMapping.js';
105
106
  import { INTERNAL__UnknownPropertyMapping } from '../../../../../../../graph/metamodel/pure/packageableElements/mapping/INTERNAL__UnknownPropertyMapping.js';
107
+ import { INTERNAL__PseudoMapping } from '../../../../../../../graph/metamodel/pure/packageableElements/mapping/INTERNAL__PseudoMapping.js';
106
108
 
107
- const TEMPORARY__getClassMappingByIdOrReturnUnresolved = (
109
+ const TEMPORARY__resolveSetImplementationByID = (
108
110
  mapping: Mapping,
109
111
  id: string,
110
112
  context: V1_GraphBuilderContext,
@@ -112,27 +114,34 @@ const TEMPORARY__getClassMappingByIdOrReturnUnresolved = (
112
114
  const classMapping = returnUndefOnError(() =>
113
115
  getClassMappingById(mapping, id),
114
116
  );
117
+ const isMappingWithUnknownMappingIncludes = getAllIncludedMappings(
118
+ mapping,
119
+ ).includes(INTERNAL__PseudoMapping.INSTANCE);
115
120
 
116
121
  if (!classMapping) {
117
122
  const message = `Can't find class mapping with ID '${id}' in mapping '${mapping.path}'`;
118
123
  /**
119
- * In strict-mode, graph builder will consider this as an error
124
+ * If the mapping has unknown mapping includes, this kind of problems
125
+ * might be due to the fact that the class mapping is not reachable due to the system
126
+ * not knowing how to analyze the unknown mapping include, as such, we will not throw
127
+ * errors, otherwise, we should in strict-mode
128
+ *
120
129
  * See https://github.com/finos/legend-studio/issues/880
121
130
  * See https://github.com/finos/legend-studio/issues/941
122
131
  *
123
132
  * @discrepancy graph-building
124
133
  */
125
- if (context.options?.strict) {
134
+ if (context.options?.strict && !isMappingWithUnknownMappingIncludes) {
126
135
  throw new GraphBuilderError(message);
127
136
  }
128
137
  context.logService.warn(LogEvent.create(message));
129
- return new TEMPORARY__UnresolvedSetImplementation(id, mapping);
138
+ return new INTERNAL__UnresolvedSetImplementation(id, mapping);
130
139
  }
131
140
 
132
141
  return classMapping;
133
142
  };
134
143
 
135
- const resolvePropertyMappingSource = (
144
+ const resolvePropertyMappingSourceImplementation = (
136
145
  immediateParent: PropertyMappingsImplementation,
137
146
  value: V1_PropertyMapping,
138
147
  topParent: InstanceSetImplementation | undefined,
@@ -140,7 +149,7 @@ const resolvePropertyMappingSource = (
140
149
  ): SetImplementation | undefined => {
141
150
  if (immediateParent instanceof AssociationImplementation) {
142
151
  if (value.source) {
143
- return TEMPORARY__getClassMappingByIdOrReturnUnresolved(
152
+ return TEMPORARY__resolveSetImplementationByID(
144
153
  immediateParent._PARENT,
145
154
  value.source,
146
155
  context,
@@ -278,12 +287,11 @@ export class V1_PropertyMappingBuilder
278
287
  const topParent = guaranteeNonNullable(this.topParent);
279
288
  if (propertyType instanceof Class) {
280
289
  if (protocol.target) {
281
- targetSetImplementation =
282
- TEMPORARY__getClassMappingByIdOrReturnUnresolved(
283
- topParent._PARENT,
284
- protocol.target,
285
- this.context,
286
- );
290
+ targetSetImplementation = TEMPORARY__resolveSetImplementationByID(
291
+ topParent._PARENT,
292
+ protocol.target,
293
+ this.context,
294
+ );
287
295
  } else {
288
296
  // NOTE: if no there is one non-root class mapping, auto-nominate that as the target set implementation
289
297
  targetSetImplementation = getClassMappingsByClass(
@@ -293,7 +301,7 @@ export class V1_PropertyMappingBuilder
293
301
  }
294
302
  }
295
303
  const sourceSetImplementation = protocol.source
296
- ? TEMPORARY__getClassMappingByIdOrReturnUnresolved(
304
+ ? TEMPORARY__resolveSetImplementationByID(
297
305
  topParent._PARENT,
298
306
  protocol.source,
299
307
  this.context,
@@ -385,7 +393,7 @@ export class V1_PropertyMappingBuilder
385
393
  const propertyType = property.genericType.value.rawType;
386
394
  if (propertyType instanceof Class && protocol.target) {
387
395
  targetSetImplementation = this.topParent
388
- ? TEMPORARY__getClassMappingByIdOrReturnUnresolved(
396
+ ? TEMPORARY__resolveSetImplementationByID(
389
397
  this.topParent._PARENT,
390
398
  protocol.target,
391
399
  this.context,
@@ -615,7 +623,7 @@ export class V1_PropertyMappingBuilder
615
623
  }
616
624
  if (protocol.target) {
617
625
  targetSetImplementation = parentMapping
618
- ? TEMPORARY__getClassMappingByIdOrReturnUnresolved(
626
+ ? TEMPORARY__resolveSetImplementationByID(
619
627
  parentMapping,
620
628
  protocol.target,
621
629
  this.context,
@@ -631,7 +639,7 @@ export class V1_PropertyMappingBuilder
631
639
  }
632
640
  }
633
641
  const sourceSetImplementation = guaranteeNonNullable(
634
- resolvePropertyMappingSource(
642
+ resolvePropertyMappingSourceImplementation(
635
643
  this.immediateParent,
636
644
  protocol,
637
645
  this.topParent,
@@ -757,12 +765,11 @@ export class V1_PropertyMappingBuilder
757
765
  const parentMapping = this.immediateParent._PARENT;
758
766
 
759
767
  if (protocol.target) {
760
- targetSetImplementation =
761
- TEMPORARY__getClassMappingByIdOrReturnUnresolved(
762
- parentMapping,
763
- protocol.target,
764
- this.context,
765
- );
768
+ targetSetImplementation = TEMPORARY__resolveSetImplementationByID(
769
+ parentMapping,
770
+ protocol.target,
771
+ this.context,
772
+ );
766
773
  } else {
767
774
  targetSetImplementation = getClassMappingsByClass(
768
775
  parentMapping,
@@ -771,7 +778,7 @@ export class V1_PropertyMappingBuilder
771
778
  }
772
779
  }
773
780
  const sourceSetImplementation = guaranteeNonNullable(
774
- resolvePropertyMappingSource(
781
+ resolvePropertyMappingSourceImplementation(
775
782
  this.immediateParent,
776
783
  protocol,
777
784
  this.topParent,
@@ -869,12 +876,11 @@ export class V1_PropertyMappingBuilder
869
876
  InferableMappingElementIdExplicitValue.create(id, ''),
870
877
  undefined,
871
878
  );
872
- inline.inlineSetImplementation =
873
- TEMPORARY__getClassMappingByIdOrReturnUnresolved(
874
- topParent._PARENT,
875
- protocol.setImplementationId,
876
- this.context,
877
- );
879
+ inline.inlineSetImplementation = TEMPORARY__resolveSetImplementationByID(
880
+ topParent._PARENT,
881
+ protocol.setImplementationId,
882
+ this.context,
883
+ );
878
884
  return inline;
879
885
  }
880
886
 
@@ -1043,12 +1049,30 @@ export class V1_PropertyMappingBuilder
1043
1049
  const _association = xStoreParent.association.value;
1044
1050
  const property = getOwnProperty(_association, protocol.property.property);
1045
1051
  const sourceSetImplementation = guaranteeNonNullable(
1046
- this.allClassMappings.find((c) => c.id.value === protocol.source),
1047
- `Can't find XStore property mapping source implementation with ID '${protocol.source}'`,
1048
- );
1049
- const targetSetImplementation = this.allClassMappings.find(
1050
- (c) => c.id.value === protocol.target,
1052
+ resolvePropertyMappingSourceImplementation(
1053
+ this.immediateParent,
1054
+ protocol,
1055
+ this.topParent,
1056
+ this.context,
1057
+ ),
1051
1058
  );
1059
+ let targetSetImplementation: SetImplementation | undefined;
1060
+ const propertyType = property.genericType.value.rawType;
1061
+ if (propertyType instanceof Class) {
1062
+ const parentMapping = this.immediateParent._PARENT;
1063
+ if (protocol.target) {
1064
+ targetSetImplementation = TEMPORARY__resolveSetImplementationByID(
1065
+ parentMapping,
1066
+ protocol.target,
1067
+ this.context,
1068
+ );
1069
+ } else {
1070
+ targetSetImplementation = getClassMappingsByClass(
1071
+ parentMapping,
1072
+ guaranteeType(propertyType, Class),
1073
+ )[0];
1074
+ }
1075
+ }
1052
1076
  const xStorePropertyMapping = new XStorePropertyMapping(
1053
1077
  xStoreParent,
1054
1078
  PropertyImplicitReference.create(
@@ -1106,12 +1130,32 @@ export class V1_PropertyMappingBuilder
1106
1130
  propertyMapping?.property ??
1107
1131
  this.context.resolveProperty(protocol.property);
1108
1132
 
1109
- const sourceSetImplementation = this.allClassMappings.find(
1110
- (c) => c.id.value === protocol.source,
1111
- );
1112
- const targetSetImplementation = this.allClassMappings.find(
1113
- (c) => c.id.value === protocol.target,
1133
+ const sourceSetImplementation = guaranteeNonNullable(
1134
+ resolvePropertyMappingSourceImplementation(
1135
+ this.immediateParent,
1136
+ protocol,
1137
+ this.topParent,
1138
+ this.context,
1139
+ ),
1114
1140
  );
1141
+ let targetSetImplementation: SetImplementation | undefined;
1142
+ const propertyType = property.value.genericType.value.rawType;
1143
+ if (propertyType instanceof Class) {
1144
+ const parentMapping = this.immediateParent._PARENT;
1145
+
1146
+ if (protocol.target) {
1147
+ targetSetImplementation = TEMPORARY__resolveSetImplementationByID(
1148
+ parentMapping,
1149
+ protocol.target,
1150
+ this.context,
1151
+ );
1152
+ } else {
1153
+ targetSetImplementation = getClassMappingsByClass(
1154
+ parentMapping,
1155
+ guaranteeType(propertyType, Class),
1156
+ )[0];
1157
+ }
1158
+ }
1115
1159
 
1116
1160
  const aggregationAwarePropertyMapping = new AggregationAwarePropertyMapping(
1117
1161
  this.topParent ?? this.immediateParent,
@@ -32,14 +32,13 @@ import {
32
32
  import { JsonModelConnection } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/modelToModel/connection/JsonModelConnection.js';
33
33
  import { XmlModelConnection } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/modelToModel/connection/XmlModelConnection.js';
34
34
  import { FlatDataConnection } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/flatData/connection/FlatDataConnection.js';
35
- import type { Store } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/Store.js';
35
+ import { Store } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/Store.js';
36
36
  import { FlatData } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/flatData/model/FlatData.js';
37
37
  import { Database } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/relational/model/Database.js';
38
38
  import { ModelStore } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/modelToModel/model/ModelStore.js';
39
39
  import {
40
40
  type PackageableElementReference,
41
41
  PackageableElementImplicitReference,
42
- PackageableElementExplicitReference,
43
42
  } from '../../../../../../../../graph/metamodel/pure/packageableElements/PackageableElementReference.js';
44
43
  import { ModelChainConnection } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/modelToModel/connection/ModelChainConnection.js';
45
44
  import type { V1_GraphBuilderContext } from '../V1_GraphBuilderContext.js';
@@ -60,7 +59,6 @@ import type { DSL_Mapping_PureProtocolProcessorPlugin_Extension } from '../../..
60
59
  import type { V1_ModelChainConnection } from '../../../../model/packageableElements/store/modelToModel/connection/V1_ModelChainConnection.js';
61
60
  import { V1_buildPostProcessor } from './V1_PostProcessorBuilderHelper.js';
62
61
  import type { V1_INTERNAL__UnknownConnection } from '../../../../model/packageableElements/connection/V1_INTERNAL__UnknownConnection.js';
63
- import { INTERNAL__PseudoStore } from '../../../../../../../../graph/metamodel/pure/packageableElements/store/INTERNAL__PseudoStore.js';
64
62
  import { INTERNAL__UnknownConnection } from '../../../../../../../../graph/metamodel/pure/packageableElements/connection/INTERNAL__UnknownConnection.js';
65
63
 
66
64
  class V1_ConnectionBuilder implements V1_ConnectionVisitor<Connection> {
@@ -99,9 +97,21 @@ class V1_ConnectionBuilder implements V1_ConnectionVisitor<Connection> {
99
97
  connection: V1_INTERNAL__UnknownConnection,
100
98
  ): Connection {
101
99
  const metamodel = new INTERNAL__UnknownConnection(
102
- PackageableElementExplicitReference.create(
103
- INTERNAL__PseudoStore.INSTANCE,
104
- ),
100
+ !this.embeddedConnectionStore
101
+ ? this.context.resolveStore(
102
+ guaranteeNonNullable(
103
+ connection.store,
104
+ `Connection 'store' field is missing`,
105
+ ),
106
+ )
107
+ : connection.store
108
+ ? this.context.resolveStore(connection.store)
109
+ : ((): PackageableElementReference<Store> => {
110
+ if (this.embeddedConnectionStore.value instanceof Store) {
111
+ return this.embeddedConnectionStore;
112
+ }
113
+ throw new Error(`Connection store must be a store`);
114
+ })(),
105
115
  );
106
116
  metamodel.content = connection.content;
107
117
  return metamodel;
@@ -215,26 +215,25 @@ export const V1_buildEnumerationMapping = (
215
215
  };
216
216
 
217
217
  export const V1_buildMappingInclude = (
218
- mappingInclude: V1_MappingInclude,
218
+ protocol: V1_MappingInclude,
219
219
  context: V1_GraphBuilderContext,
220
220
  parentMapping: Mapping,
221
221
  ): MappingInclude => {
222
- if (mappingInclude instanceof V1_INTERNAL__UnknownMappingInclude) {
223
- return new INTERNAL__UnknownMappingInclude(parentMapping);
224
- } else if (mappingInclude instanceof V1_MappingIncludeMapping) {
222
+ if (protocol instanceof V1_INTERNAL__UnknownMappingInclude) {
223
+ const metamodel = new INTERNAL__UnknownMappingInclude(parentMapping);
224
+ metamodel.content = protocol.content;
225
+ return metamodel;
226
+ } else if (protocol instanceof V1_MappingIncludeMapping) {
225
227
  const includedMapping = new MappingIncludeMapping(
226
228
  parentMapping,
227
- context.resolveMapping(mappingInclude.includedMapping),
229
+ context.resolveMapping(protocol.includedMapping),
228
230
  );
229
- if (
230
- mappingInclude.sourceDatabasePath &&
231
- mappingInclude.targetDatabasePath
232
- ) {
231
+ if (protocol.sourceDatabasePath && protocol.targetDatabasePath) {
233
232
  includedMapping.storeSubstitutions.push(
234
233
  new SubstituteStore(
235
234
  includedMapping,
236
- context.resolveStore(mappingInclude.sourceDatabasePath),
237
- context.resolveStore(mappingInclude.targetDatabasePath),
235
+ context.resolveStore(protocol.sourceDatabasePath),
236
+ context.resolveStore(protocol.targetDatabasePath),
238
237
  ),
239
238
  );
240
239
  }
@@ -247,14 +246,14 @@ export const V1_buildMappingInclude = (
247
246
  ).V1_getExtraMappingIncludeBuilders?.() ?? [],
248
247
  );
249
248
  for (const builder of extraIncludeMappingBuilders) {
250
- const builtInclude = builder(mappingInclude, parentMapping, context);
249
+ const builtInclude = builder(protocol, parentMapping, context);
251
250
  if (builtInclude) {
252
251
  return builtInclude;
253
252
  }
254
253
  }
255
254
  throw new UnsupportedOperationError(
256
255
  `Can't transform mapping include: no compatible transformer available from plugins`,
257
- mappingInclude,
256
+ protocol,
258
257
  );
259
258
  };
260
259
 
@@ -166,7 +166,9 @@ export const V1_buildServiceTestSuite = (
166
166
  ): ServiceTestSuite => {
167
167
  const serviceTestSuite = new ServiceTestSuite();
168
168
  serviceTestSuite.id = element.id;
169
- serviceTestSuite.testData = buildTestData(element.testData, context);
169
+ serviceTestSuite.testData = element.testData
170
+ ? buildTestData(element.testData, context)
171
+ : undefined;
170
172
  serviceTestSuite.tests = element.tests.map((test) =>
171
173
  V1_buildServiceTest(
172
174
  guaranteeType(test, V1_ServiceTest),
@@ -38,6 +38,7 @@ import {
38
38
  type GraphFetchTree,
39
39
  PropertyGraphFetchTree,
40
40
  RootGraphFetchTree,
41
+ SubTypeGraphFetchTree,
41
42
  GraphFetchTreeInstanceValue,
42
43
  } from '../../../../../../../../graph/metamodel/pure/valueSpecification/GraphFetchTree.js';
43
44
  import { ValueSpecification } from '../../../../../../../../graph/metamodel/pure/valueSpecification/ValueSpecification.js';
@@ -99,6 +100,7 @@ import {
99
100
  KeyExpression,
100
101
  KeyExpressionInstanceValue,
101
102
  } from '../../../../../../../../graph/metamodel/pure/valueSpecification/KeyExpressionInstanceValue.js';
103
+ import { V1_SubTypeGraphFetchTree } from '../../../../model/valueSpecification/raw/classInstance/graph/V1_SubTypeGraphFetchTree.js';
102
104
 
103
105
  const buildPrimtiveInstanceValue = (
104
106
  type: PRIMITIVE_TYPE,
@@ -691,6 +693,13 @@ export function V1_buildGraphFetchTree(
691
693
  openVariables,
692
694
  processingContext,
693
695
  );
696
+ } else if (graphFetchTree instanceof V1_SubTypeGraphFetchTree) {
697
+ return buildSubTypeGraphFetchTree(
698
+ graphFetchTree,
699
+ context,
700
+ openVariables,
701
+ processingContext,
702
+ );
694
703
  }
695
704
  throw new UnsupportedOperationError(
696
705
  `Can't build graph fetch tree`,
@@ -791,7 +800,7 @@ function buildRootGraphFetchTree(
791
800
  processingContext: V1_ProcessingContext,
792
801
  ): RootGraphFetchTree {
793
802
  const _class = context.resolveClass(rootGraphFetchTree.class);
794
- const children = rootGraphFetchTree.subTrees.map((subTree) =>
803
+ const subTreeChildren = rootGraphFetchTree.subTrees.map((subTree) =>
795
804
  V1_buildGraphFetchTree(
796
805
  subTree,
797
806
  context,
@@ -800,9 +809,42 @@ function buildRootGraphFetchTree(
800
809
  processingContext,
801
810
  ),
802
811
  );
812
+ const subTypeTreeChildren = rootGraphFetchTree.subTypeTrees.map(
813
+ (subTypeTree) =>
814
+ buildSubTypeGraphFetchTree(
815
+ subTypeTree,
816
+ context,
817
+ openVariables,
818
+ processingContext,
819
+ ),
820
+ );
803
821
  const _rootGraphFetchTree = new RootGraphFetchTree(
804
822
  PackageableElementExplicitReference.create(_class.value),
805
823
  );
806
- _rootGraphFetchTree.subTrees = children;
824
+ _rootGraphFetchTree.subTrees = subTreeChildren;
825
+ _rootGraphFetchTree.subTypeTrees = subTypeTreeChildren;
807
826
  return _rootGraphFetchTree;
808
827
  }
828
+
829
+ function buildSubTypeGraphFetchTree(
830
+ subTypeGraphFetchTree: V1_SubTypeGraphFetchTree,
831
+ context: V1_GraphBuilderContext,
832
+ openVariables: string[],
833
+ processingContext: V1_ProcessingContext,
834
+ ): SubTypeGraphFetchTree {
835
+ const subTypeClass = context.resolveClass(subTypeGraphFetchTree.subTypeClass);
836
+ const children = subTypeGraphFetchTree.subTrees.map((subTree) =>
837
+ V1_buildGraphFetchTree(
838
+ subTree,
839
+ context,
840
+ subTypeClass.value,
841
+ openVariables,
842
+ processingContext,
843
+ ),
844
+ );
845
+ const _subTypeGraphFetchTree = new SubTypeGraphFetchTree(
846
+ PackageableElementExplicitReference.create(subTypeClass.value),
847
+ );
848
+ _subTypeGraphFetchTree.subTrees = children;
849
+ return _subTypeGraphFetchTree;
850
+ }
@@ -20,6 +20,7 @@ import {
20
20
  UnsupportedOperationError,
21
21
  assertErrorThrown,
22
22
  guaranteeIsString,
23
+ isString,
23
24
  } from '@finos/legend-shared';
24
25
  import type { V1_PackageableConnection } from '../../model/packageableElements/connection/V1_PackageableConnection.js';
25
26
  import type { V1_Association } from '../../model/packageableElements/domain/V1_Association.js';
@@ -89,6 +90,7 @@ import {
89
90
  V1_MEASURE_ELEMENT_PROTOCOL_TYPE,
90
91
  V1_profileModelSchema,
91
92
  V1_PROFILE_ELEMENT_PROTOCOL_TYPE,
93
+ V1_INTERNAL__UnknownFunctionActivatorModelSchema,
92
94
  } from './serializationHelpers/V1_DomainSerializationHelper.js';
93
95
  import type {
94
96
  PureProtocolProcessorPlugin,
@@ -107,6 +109,8 @@ import {
107
109
  import type { V1_ExecutionEnvironmentInstance } from '../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
108
110
  import { V1_INTERNAL__UnknownPackageableElement } from '../../model/packageableElements/V1_INTERNAL__UnknownPackageableElement.js';
109
111
  import type { V1_INTERNAL__UnknownFunctionActivator } from '../../model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.js';
112
+ import type { SubtypeInfo } from '../../../../../action/protocol/ProtocolInfo.js';
113
+ import { V1_INTERNAL__UnknownStore } from '../../model/packageableElements/store/V1_INTERNAL__UnknownStore.js';
110
114
 
111
115
  class V1_PackageableElementSerializer
112
116
  implements V1_PackageableElementVisitor<PlainObject<V1_PackageableElement>>
@@ -147,6 +151,12 @@ class V1_PackageableElementSerializer
147
151
  return element.content;
148
152
  }
149
153
 
154
+ visit_INTERNAL__UnknownStore(
155
+ element: V1_INTERNAL__UnknownStore,
156
+ ): PlainObject<V1_PackageableElement> {
157
+ return element.content;
158
+ }
159
+
150
160
  visit_Profile(element: V1_Profile): PlainObject<V1_PackageableElement> {
151
161
  return serialize(V1_profileModelSchema, element);
152
162
  }
@@ -257,6 +267,7 @@ export const V1_serializePackageableElement = (
257
267
  export const V1_deserializePackageableElement = (
258
268
  json: PlainObject<V1_PackageableElement>,
259
269
  plugins: PureProtocolProcessorPlugin[],
270
+ subtypeInfo?: SubtypeInfo | undefined,
260
271
  ): V1_PackageableElement => {
261
272
  const packagePath = guaranteeIsString(
262
273
  json.package,
@@ -315,6 +326,24 @@ export const V1_deserializePackageableElement = (
315
326
  }
316
327
  }
317
328
 
329
+ if (subtypeInfo && isString(json._type)) {
330
+ if (subtypeInfo.functionActivatorSubtypes.includes(json._type)) {
331
+ const protocol = deserialize(
332
+ V1_INTERNAL__UnknownFunctionActivatorModelSchema,
333
+ json,
334
+ );
335
+ protocol.content = json;
336
+ return protocol;
337
+ }
338
+ if (subtypeInfo.storeSubtypes.includes(json._type)) {
339
+ const protocol = new V1_INTERNAL__UnknownStore();
340
+ protocol.name = name;
341
+ protocol.package = packagePath;
342
+ protocol.content = json;
343
+ return protocol;
344
+ }
345
+ }
346
+
318
347
  // Fall back to create unknown stub if not supported
319
348
  const protocol = new V1_INTERNAL__UnknownPackageableElement();
320
349
  protocol.name = name;
@@ -48,6 +48,7 @@ import type { PureProtocolProcessorPlugin } from '../../../PureProtocolProcessor
48
48
  import type { Entity } from '@finos/legend-storage';
49
49
  import { GraphDataDeserializationError } from '../../../../../../graph-manager/GraphManagerUtils.js';
50
50
  import { V1_PureModelContextText } from '../../model/context/V1_PureModelContextText.js';
51
+ import type { SubtypeInfo } from '../../../../../action/protocol/ProtocolInfo.js';
51
52
 
52
53
  enum V1_SDLCType {
53
54
  ALLOY = 'alloy',
@@ -64,6 +65,7 @@ export const V1_entitiesToPureModelContextData = async (
64
65
  entities: Entity[] | undefined,
65
66
  graph: V1_PureModelContextData,
66
67
  plugins: PureProtocolProcessorPlugin[],
68
+ subtypeInfo?: SubtypeInfo | undefined,
67
69
  /**
68
70
  * FIXME: to be deleted when most users have migrated to using full function signature as function name
69
71
  * Currently, SDLC store many functions in legacy form (entity path does
@@ -87,6 +89,7 @@ export const V1_entitiesToPureModelContextData = async (
87
89
  const element = V1_deserializePackageableElement(
88
90
  entity.content as PlainObject<V1_PackageableElement>,
89
91
  plugins,
92
+ subtypeInfo,
90
93
  );
91
94
  TEMPORARY__entityPathIndex?.set(element.path, entity.path);
92
95
  return element;
@@ -164,6 +167,7 @@ const V1_pureModelContextCompositeModelSchema = createModelSchema(
164
167
 
165
168
  export const V1_setupPureModelContextDataSerialization = (
166
169
  plugins: PureProtocolProcessorPlugin[],
170
+ subtypeInfo?: SubtypeInfo | undefined,
167
171
  ): void => {
168
172
  createModelSchema(V1_PureModelContextData, {
169
173
  _type: usingConstantValueSchema(V1_PureModelContextType.DATA),
@@ -173,7 +177,7 @@ export const V1_setupPureModelContextDataSerialization = (
173
177
  (element: V1_PackageableElement) =>
174
178
  V1_serializePackageableElement(element, plugins),
175
179
  (element: PlainObject<V1_PackageableElement>) =>
176
- V1_deserializePackageableElement(element, plugins),
180
+ V1_deserializePackageableElement(element, plugins, subtypeInfo),
177
181
  ),
178
182
  ),
179
183
  serializer: usingModelSchema(V1_Protocol.serialization.schema),
@@ -196,7 +200,7 @@ export const V1_serializePureModelContext = (
196
200
  return serialize(V1_pureModelContextPointerModelSchema, pureModelContext);
197
201
  } else if (pureModelContext instanceof V1_PureModelContextData) {
198
202
  const rawPMCD = V1_serializePureModelContextData(pureModelContext);
199
- if (pureModelContext.INTERNAL__rawDependencyEntities.length) {
203
+ if (pureModelContext.INTERNAL__rawDependencyEntities?.length) {
200
204
  rawPMCD.elements = [
201
205
  ...(rawPMCD as { elements: PlainObject[] }).elements,
202
206
  ...pureModelContext.INTERNAL__rawDependencyEntities.map(
@@ -630,6 +630,13 @@ export const V1_deserializeAuthenticationStrategy = (
630
630
  }
631
631
  };
632
632
 
633
+ const V1_INTERNAL__UnknownConnectionModelSchema = createModelSchema(
634
+ V1_INTERNAL__UnknownConnection,
635
+ {
636
+ store: alias('element', optional(primitive())),
637
+ },
638
+ );
639
+
633
640
  export const V1_serializeConnectionValue = (
634
641
  protocol: V1_Connection,
635
642
  allowPointer: boolean,
@@ -711,8 +718,10 @@ export const V1_deserializeConnectionValue = (
711
718
  }
712
719
 
713
720
  // Fall back to create unknown stub if not supported
714
- const protocol = new V1_INTERNAL__UnknownConnection();
715
- protocol.store = undefined;
721
+ const protocol = deserialize(
722
+ V1_INTERNAL__UnknownConnectionModelSchema,
723
+ json,
724
+ );
716
725
  protocol.content = json;
717
726
  return protocol;
718
727
  }
@@ -267,8 +267,8 @@ const rootRelationalClassMappingModelSchema = createModelSchema(
267
267
  {
268
268
  _type: usingConstantValueSchema(V1_ClassMappingType.ROOT_RELATIONAL),
269
269
  class: primitive(),
270
- extendsClassMappingId: optional(primitive()),
271
270
  distinct: primitive(),
271
+ extendsClassMappingId: optional(primitive()),
272
272
  filter: usingModelSchema(V1_filterMappingModelSchema),
273
273
  groupBy: customList(
274
274
  V1_serializeRelationalOperationElement,
@@ -34,6 +34,7 @@ import {
34
34
  customListWithSchema,
35
35
  customEquivalentList,
36
36
  customList,
37
+ optionalCustomUsingModelSchema,
37
38
  } from '@finos/legend-shared';
38
39
  import {
39
40
  type V1_ServiceExecution,
@@ -164,7 +165,7 @@ export const V1_serviceTestSuiteModelSchema = (
164
165
  createModelSchema(V1_ServiceTestSuite, {
165
166
  _type: usingConstantValueSchema(V1_TestSuiteType.SERVICE_TEST_SUITE),
166
167
  id: primitive(),
167
- testData: usingModelSchema(V1_testDataModelSchema(plugins)),
168
+ testData: optionalCustomUsingModelSchema(V1_testDataModelSchema(plugins)),
168
169
  tests: list(
169
170
  custom(
170
171
  (val) => V1_serializeAtomicTest(val, plugins),