@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
@@ -37,7 +37,6 @@ import {
37
37
  addUniqueEntry,
38
38
  uuid,
39
39
  deleteEntry,
40
- uniq,
41
40
  IllegalStateError,
42
41
  filterByType,
43
42
  isString,
@@ -158,7 +157,6 @@ import {
158
157
  V1_DatabaseBuilderConfig,
159
158
  V1_DatabaseBuilderInput,
160
159
  V1_DatabasePattern,
161
- V1_setupDatabaseBuilderInputSerialization,
162
160
  V1_TargetDatabase,
163
161
  } from './engine/generation/V1_DatabaseBuilderInput.js';
164
162
  import { V1_transformRelationalDatabaseConnection } from './transformation/pureGraph/from/V1_ConnectionTransformer.js';
@@ -301,7 +299,6 @@ import {
301
299
  } from '../../../GraphData.js';
302
300
  import type { DEPRECATED__MappingTest } from '../../../../graph/metamodel/pure/packageableElements/mapping/DEPRECATED__MappingTest.js';
303
301
  import { DEPRECATED__validate_MappingTest } from '../../../action/validation/DSL_Mapping_ValidationHelper.js';
304
- import { V1_SERVICE_ELEMENT_PROTOCOL_TYPE } from './transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js';
305
302
  import { V1_INTERNAL__UnknownPackageableElement } from './model/packageableElements/V1_INTERNAL__UnknownPackageableElement.js';
306
303
  import type { SourceInformation } from '../../../action/SourceInformation.js';
307
304
  import type { V1_SourceInformation } from './model/V1_SourceInformation.js';
@@ -310,6 +307,10 @@ import { FunctionActivatorConfiguration } from '../../../action/functionActivato
310
307
  import { V1_FunctionActivatorInput } from './engine/functionActivator/V1_FunctionActivatorInput.js';
311
308
  import { V1_FunctionActivator } from './model/packageableElements/function/V1_FunctionActivator.js';
312
309
  import { V1_INTERNAL__UnknownFunctionActivator } from './model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.js';
310
+ import type { RelationalDatabaseConnection } from '../../../../STO_Relational_Exports.js';
311
+ import { V1_RawSQLExecuteInput } from './engine/execution/V1_RawSQLExecuteInput.js';
312
+ import type { SubtypeInfo } from '../../../action/protocol/ProtocolInfo.js';
313
+ import { V1_INTERNAL__UnknownStore } from './model/packageableElements/store/V1_INTERNAL__UnknownStore.js';
313
314
 
314
315
  class V1_PureModelContextDataIndex {
315
316
  elements: V1_PackageableElement[] = [];
@@ -355,10 +356,12 @@ const mergePureModelContextData = (
355
356
  const mergedData = new V1_PureModelContextData();
356
357
  for (const _data of data) {
357
358
  mergedData.elements = mergedData.elements.concat(_data.elements);
358
- mergedData.INTERNAL__rawDependencyEntities =
359
- mergedData.INTERNAL__rawDependencyEntities.concat(
360
- _data.INTERNAL__rawDependencyEntities,
361
- );
359
+ const rawDependencyEntities = (
360
+ mergedData.INTERNAL__rawDependencyEntities ?? []
361
+ ).concat(_data.INTERNAL__rawDependencyEntities ?? []);
362
+ mergedData.INTERNAL__rawDependencyEntities = rawDependencyEntities.length
363
+ ? rawDependencyEntities
364
+ : undefined;
362
365
  mergedData.serializer = _data.serializer ?? mergedData.serializer;
363
366
  mergedData.origin = _data.origin ?? mergedData.origin;
364
367
  }
@@ -509,6 +512,10 @@ interface ServiceRegistrationInput {
509
512
 
510
513
  export class V1_PureGraphManager extends AbstractPureGraphManager {
511
514
  private readonly elementClassifierPathMap = new Map<string, string>();
515
+ private readonly subtypeInfo: SubtypeInfo = {
516
+ storeSubtypes: [],
517
+ functionActivatorSubtypes: [],
518
+ };
512
519
 
513
520
  // Pure Client Version represent the version of the pure protocol.
514
521
  // Most Engine APIs will interrupt an undefined pure client version to mean
@@ -532,10 +539,33 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
532
539
  this.graphBuilderExtensions = new V1_GraphBuilderExtensions(
533
540
  this.pluginManager.getPureProtocolProcessorPlugins(),
534
541
  );
542
+ }
543
+
544
+ TEMPORARY__getEngineConfig(): TEMPORARY__AbstractEngineConfig {
545
+ return this.engine.config;
546
+ }
547
+
548
+ async initialize(
549
+ config: TEMPORARY__EngineSetupConfig,
550
+ options?: {
551
+ tracerService?: TracerService | undefined;
552
+ },
553
+ ): Promise<void> {
554
+ this.engine = new V1_Engine(config.clientConfig, this.logService);
555
+ this.engine
556
+ .getEngineServerClient()
557
+ .setTracerService(options?.tracerService ?? new TracerService());
558
+
559
+ await Promise.all([
560
+ this.engine.setup(config),
561
+ this.configureElementClassifierPathMap(config),
562
+ this.configureSubtypeInfoMap(config),
563
+ ]);
535
564
 
536
565
  // setup serialization plugins
537
566
  V1_setupPureModelContextDataSerialization(
538
567
  this.pluginManager.getPureProtocolProcessorPlugins(),
568
+ this.subtypeInfo,
539
569
  );
540
570
  V1_setupDatabaseSerialization(
541
571
  this.pluginManager.getPureProtocolProcessorPlugins(),
@@ -546,27 +576,11 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
546
576
  V1_setupLegacyRuntimeSerialization(
547
577
  this.pluginManager.getPureProtocolProcessorPlugins(),
548
578
  );
549
- V1_setupDatabaseBuilderInputSerialization(
550
- this.pluginManager.getPureProtocolProcessorPlugins(),
551
- );
552
579
  }
553
580
 
554
- TEMPORARY__getEngineConfig(): TEMPORARY__AbstractEngineConfig {
555
- return this.engine.config;
556
- }
557
-
558
- async initialize(
581
+ private async configureElementClassifierPathMap(
559
582
  config: TEMPORARY__EngineSetupConfig,
560
- options?: {
561
- tracerService?: TracerService | undefined;
562
- },
563
583
  ): Promise<void> {
564
- this.engine = new V1_Engine(config.clientConfig, this.logService);
565
- this.engine
566
- .getEngineServerClient()
567
- .setTracerService(options?.tracerService ?? new TracerService());
568
- await this.engine.setup(config);
569
-
570
584
  const classifierPathMapEntries =
571
585
  config.TEMPORARY__classifierPathMapping ??
572
586
  (await this.engine.getClassifierPathMapping());
@@ -575,6 +589,18 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
575
589
  });
576
590
  }
577
591
 
592
+ private async configureSubtypeInfoMap(
593
+ config: TEMPORARY__EngineSetupConfig,
594
+ ): Promise<void> {
595
+ const subtypeInfo =
596
+ config.TEMPORARY__subtypeInfo ?? (await this.engine.getSubtypeInfo());
597
+ this.subtypeInfo.storeSubtypes = subtypeInfo.storeSubtypes;
598
+ this.subtypeInfo.functionActivatorSubtypes =
599
+ subtypeInfo.functionActivatorSubtypes;
600
+ }
601
+
602
+ // --------------------------------------------- Generic ---------------------------------------------
603
+
578
604
  getSupportedProtocolVersion(): string {
579
605
  return PureClientVersion.V1_0_0;
580
606
  }
@@ -703,6 +729,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
703
729
  entitiesWithOrigin.entities,
704
730
  projectModelData,
705
731
  this.pluginManager.getPureProtocolProcessorPlugins(),
732
+ this.subtypeInfo,
706
733
  );
707
734
  },
708
735
  ),
@@ -781,6 +808,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
781
808
  entities,
782
809
  data,
783
810
  this.pluginManager.getPureProtocolProcessorPlugins(),
811
+ this.subtypeInfo,
784
812
  );
785
813
  stopWatch.record(
786
814
  GRAPH_MANAGER_EVENT.GRAPH_BUILDER_DESERIALIZE_ELEMENTS__SUCCESS,
@@ -866,6 +894,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
866
894
  entities,
867
895
  data,
868
896
  this.pluginManager.getPureProtocolProcessorPlugins(),
897
+ this.subtypeInfo,
869
898
  );
870
899
  stopWatch.record(
871
900
  GRAPH_MANAGER_EVENT.GRAPH_BUILDER_DESERIALIZE_ELEMENTS__SUCCESS,
@@ -957,6 +986,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
957
986
  entities,
958
987
  generatedData,
959
988
  this.pluginManager.getPureProtocolProcessorPlugins(),
989
+ this.subtypeInfo,
960
990
  );
961
991
  },
962
992
  ),
@@ -2336,7 +2366,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
2336
2366
  graphData: GraphData,
2337
2367
  ): V1_PureModelContext {
2338
2368
  if (graphData instanceof InMemoryGraphData) {
2339
- return this.buildExecutionInputGraphData(graphData.graph);
2369
+ return this.getFullGraphModelData(graphData.graph);
2340
2370
  } else if (graphData instanceof GraphDataWithOrigin) {
2341
2371
  return this.buildPureModelSDLCPointer(
2342
2372
  graphData.origin,
@@ -2360,7 +2390,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
2360
2390
  this.createExecutionInputWithPureModelContext(
2361
2391
  graph.origin
2362
2392
  ? this.buildPureModelSDLCPointer(graph.origin, undefined)
2363
- : this.buildExecutionInputGraphData(graph),
2393
+ : this.getFullGraphModelData(graph),
2364
2394
  mapping,
2365
2395
  lambda,
2366
2396
  runtime,
@@ -2406,52 +2436,6 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
2406
2436
  return executeInput;
2407
2437
  };
2408
2438
 
2409
- private buildExecutionInputGraphData(
2410
- graph: PureModel,
2411
- ): V1_PureModelContextData {
2412
- /**
2413
- * NOTE: to lessen network load, we might need to think of a way to only include relevant part of the pure model context data here
2414
- *
2415
- * Graph data models can be classified based on dependency hieararchy:
2416
- * 1. Building blocks: models that all other models depend on: e.g. domain models, connections, etc.
2417
- * 2. Consumers: models that depends on other models: e.g. mapping, service, etc.
2418
- * 3. Unrelated: models that depends on nothing and vice versa: e.g. text
2419
- *
2420
- * It would be great if we can provide a way to walk the mapping to select only relevant part, but the problem is we cannot really walk the lambda
2421
- * object to identify relevant classes yet. so the more economical way to to base on the classification above and the knowledge about hierarchy between
2422
- * models (e.g. service can use mapping, runtime, connection, store, etc.) we can roughly prune the graph model data by group. Following is an example
2423
- * for mapping used for execution, but this can generalized if we introduce hierarchy/ranking for model type
2424
- */
2425
- const graphData = this.getFullGraphModelData(graph);
2426
- const prunedGraphData = this.prunePureModelContextData(
2427
- graphData,
2428
- (element) =>
2429
- element instanceof V1_Class ||
2430
- element instanceof V1_Enumeration ||
2431
- element instanceof V1_Profile ||
2432
- element instanceof V1_Association ||
2433
- element instanceof V1_ConcreteFunctionDefinition ||
2434
- element instanceof V1_FunctionActivator ||
2435
- element instanceof V1_Measure ||
2436
- element instanceof V1_Store ||
2437
- element instanceof V1_PackageableConnection ||
2438
- element instanceof V1_PackageableRuntime ||
2439
- element instanceof V1_Mapping,
2440
- undefined,
2441
- );
2442
- const extraExecutionElements = this.pluginManager
2443
- .getPureProtocolProcessorPlugins()
2444
- .flatMap(
2445
- (element) => element.V1_getExtraExecutionInputCollectors?.() ?? [],
2446
- )
2447
- .flatMap((getter) => getter(graph, graphData));
2448
- prunedGraphData.elements = uniq([
2449
- ...prunedGraphData.elements,
2450
- ...extraExecutionElements,
2451
- ]);
2452
- return prunedGraphData;
2453
- }
2454
-
2455
2439
  async runQuery(
2456
2440
  lambda: RawLambda,
2457
2441
  mapping: Mapping,
@@ -2504,7 +2488,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
2504
2488
  const stopWatch = new StopWatch();
2505
2489
  const pureModelContext = graph.origin
2506
2490
  ? this.buildPureModelSDLCPointer(graph.origin, undefined)
2507
- : this.buildExecutionInputGraphData(graph);
2491
+ : this.getFullGraphModelData(graph);
2508
2492
  stopWatch.record(GRAPH_MANAGER_EVENT.V1_ENGINE_OPERATION_INPUT__SUCCESS);
2509
2493
  await Promise.all(
2510
2494
  tests.map((t) =>
@@ -2649,7 +2633,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
2649
2633
  this.createExecutionInputWithPureModelContext(
2650
2634
  graph.origin
2651
2635
  ? this.buildPureModelSDLCPointer(graph.origin, undefined)
2652
- : this.buildExecutionInputGraphData(graph),
2636
+ : this.getFullGraphModelData(graph),
2653
2637
  mapping,
2654
2638
  lambda,
2655
2639
  runtime,
@@ -2811,7 +2795,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
2811
2795
  input.mapping = mapping.path;
2812
2796
  input.model = graph.origin
2813
2797
  ? this.buildPureModelSDLCPointer(graph.origin, undefined)
2814
- : this.buildExecutionInputGraphData(graph);
2798
+ : this.getFullGraphModelData(graph);
2815
2799
  return V1_buildModelCoverageAnalysisResult(
2816
2800
  await this.engine.analyzeMappingModelCoverage(input),
2817
2801
  mapping,
@@ -2940,7 +2924,28 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
2940
2924
  );
2941
2925
  dbBuilderInput.config = config;
2942
2926
  return this.pureModelContextDataToEntities(
2943
- await this.engine.buildDatabase(dbBuilderInput),
2927
+ await this.engine.buildDatabase(
2928
+ dbBuilderInput,
2929
+ this.pluginManager.getPureProtocolProcessorPlugins(),
2930
+ ),
2931
+ );
2932
+ }
2933
+
2934
+ override async executeRawSQL(
2935
+ connection: RelationalDatabaseConnection,
2936
+ sql: string,
2937
+ ): Promise<string> {
2938
+ const input = new V1_RawSQLExecuteInput();
2939
+ input.connection = V1_transformRelationalDatabaseConnection(
2940
+ connection,
2941
+ new V1_GraphTransformerContextBuilder(
2942
+ this.pluginManager.getPureProtocolProcessorPlugins(),
2943
+ ).build(),
2944
+ );
2945
+ input.sql = sql;
2946
+ return this.engine.executeRawSQL(
2947
+ input,
2948
+ this.pluginManager.getPureProtocolProcessorPlugins(),
2944
2949
  );
2945
2950
  }
2946
2951
 
@@ -3052,8 +3057,10 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3052
3057
  );
3053
3058
  switch (executionMode) {
3054
3059
  case ServiceExecutionMode.FULL_INTERACTIVE: {
3055
- const data = this.createServiceRegistrationInputGraphData(graph);
3056
- data.elements.push(this.elementToProtocol<V1_Service>(service));
3060
+ const data = this.TEMPORARY__prepareGraphDataForServiceRegistration(
3061
+ this.getFullGraphModelData(graph),
3062
+ this.elementToProtocol<V1_Service>(service),
3063
+ );
3057
3064
  data.origin = new V1_PureModelContextPointer(protocol);
3058
3065
  input = data;
3059
3066
  break;
@@ -3282,28 +3289,25 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3282
3289
  );
3283
3290
  }
3284
3291
 
3285
- // NOTE: We almost should never be poking into dependency entities. However for service registration the input
3286
- // expects only one service in the graph data. Perhaps, the service registration API should be modified to accept
3287
- // service as a parameter outside the model
3288
- private pruneServicesFromGraphForRegistration = (
3292
+ // NOTE: This is somewhat hacky: service registration the input expects only the first service in the graph data
3293
+ // to be the service used for registration.
3294
+ // TODO: the service registration API should be modified to accept service as a parameter outside the model
3295
+ private TEMPORARY__prepareGraphDataForServiceRegistration = (
3289
3296
  graphData: V1_PureModelContextData,
3290
- ): V1_PureModelContextData =>
3291
- this.prunePureModelContextData(
3292
- graphData,
3293
- (element: V1_PackageableElement) => !(element instanceof V1_Service),
3294
- (entity: Entity) => {
3295
- const content = entity.content as { _type: string };
3296
- return content._type !== V1_SERVICE_ELEMENT_PROTOCOL_TYPE;
3297
- },
3298
- );
3299
-
3300
- private createServiceRegistrationInputGraphData = (
3301
- graph: PureModel,
3297
+ service: V1_Service,
3302
3298
  ): V1_PureModelContextData => {
3303
- const graphData = this.getFullGraphModelData(graph);
3304
- const prunedGraphData =
3305
- this.pruneServicesFromGraphForRegistration(graphData);
3306
- return prunedGraphData;
3299
+ graphData.elements = graphData.elements.filter(
3300
+ (element) => element.path !== service.path,
3301
+ );
3302
+ // insert the service as the first element so it gets indexed first
3303
+ graphData.elements.unshift(service);
3304
+ if (graphData.INTERNAL__rawDependencyEntities) {
3305
+ graphData.INTERNAL__rawDependencyEntities =
3306
+ graphData.INTERNAL__rawDependencyEntities.filter(
3307
+ (entity) => entity.path !== service.path,
3308
+ );
3309
+ }
3310
+ return graphData;
3307
3311
  };
3308
3312
 
3309
3313
  private createBulkServiceRegistrationInput = (
@@ -3313,12 +3317,13 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3313
3317
  const graphData = this.getFullGraphModelData(graph);
3314
3318
  const results: ServiceRegistrationInput[] = [];
3315
3319
  services.forEach((service) => {
3316
- const prunedGraphData =
3317
- this.pruneServicesFromGraphForRegistration(graphData);
3318
- prunedGraphData.elements.push(
3319
- this.elementToProtocol<V1_Service>(service),
3320
- );
3321
- results.push({ service: service, context: prunedGraphData });
3320
+ results.push({
3321
+ service: service,
3322
+ context: this.TEMPORARY__prepareGraphDataForServiceRegistration(
3323
+ graphData,
3324
+ this.elementToProtocol<V1_Service>(service),
3325
+ ),
3326
+ });
3322
3327
  });
3323
3328
  return results;
3324
3329
  };
@@ -3352,6 +3357,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3352
3357
  entities,
3353
3358
  pureModelContextData,
3354
3359
  this.pluginManager.getPureProtocolProcessorPlugins(),
3360
+ this.subtypeInfo,
3355
3361
  TEMPORARY__entityPathIndex,
3356
3362
  );
3357
3363
  await Promise.all(
@@ -3388,22 +3394,6 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3388
3394
  return entity;
3389
3395
  };
3390
3396
 
3391
- private prunePureModelContextData = (
3392
- data: V1_PureModelContextData,
3393
- elementFilter?: (val: V1_PackageableElement) => boolean,
3394
- entityFilter?: (entity: Entity) => boolean,
3395
- ): V1_PureModelContextData => {
3396
- const prunedGraphData = new V1_PureModelContextData();
3397
- prunedGraphData.elements = data.elements.filter((element) =>
3398
- elementFilter ? elementFilter(element) : true,
3399
- );
3400
- prunedGraphData.INTERNAL__rawDependencyEntities =
3401
- data.INTERNAL__rawDependencyEntities.filter((entity) =>
3402
- entityFilter ? entityFilter(entity) : true,
3403
- );
3404
- return prunedGraphData;
3405
- };
3406
-
3407
3397
  private buildPureModelSDLCPointer(
3408
3398
  origin: GraphDataOrigin,
3409
3399
  clientVersion: string | undefined,
@@ -3461,6 +3451,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3461
3451
  ),
3462
3452
  data,
3463
3453
  this.pluginManager.getPureProtocolProcessorPlugins(),
3454
+ this.subtypeInfo,
3464
3455
  );
3465
3456
  const mainGraphBuilderInput: V1_PureGraphBuilderInput[] = [
3466
3457
  {
@@ -3498,6 +3489,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3498
3489
  ),
3499
3490
  projectModelData,
3500
3491
  this.pluginManager.getPureProtocolProcessorPlugins(),
3492
+ this.subtypeInfo,
3501
3493
  );
3502
3494
  },
3503
3495
  ),
@@ -3547,10 +3539,13 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3547
3539
  ...contextData1.elements,
3548
3540
  ...contextData2.elements,
3549
3541
  ];
3550
- contextData1.INTERNAL__rawDependencyEntities = [
3551
- ...contextData1.INTERNAL__rawDependencyEntities,
3552
- ...contextData2.INTERNAL__rawDependencyEntities,
3542
+ const rawDependencyEntities = [
3543
+ ...(contextData1.INTERNAL__rawDependencyEntities ?? []),
3544
+ ...(contextData2.INTERNAL__rawDependencyEntities ?? []),
3553
3545
  ];
3546
+ contextData1.INTERNAL__rawDependencyEntities = rawDependencyEntities.length
3547
+ ? rawDependencyEntities
3548
+ : undefined;
3554
3549
  return contextData1;
3555
3550
  }
3556
3551
 
@@ -3580,6 +3575,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3580
3575
  entities,
3581
3576
  graphData,
3582
3577
  this.pluginManager.getPureProtocolProcessorPlugins(),
3578
+ this.subtypeInfo,
3583
3579
  );
3584
3580
  return graphData;
3585
3581
  }
@@ -3606,7 +3602,8 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
3606
3602
  ): string => {
3607
3603
  if (
3608
3604
  protocol instanceof V1_INTERNAL__UnknownPackageableElement ||
3609
- protocol instanceof V1_INTERNAL__UnknownFunctionActivator
3605
+ protocol instanceof V1_INTERNAL__UnknownFunctionActivator ||
3606
+ protocol instanceof V1_INTERNAL__UnknownStore
3610
3607
  ) {
3611
3608
  const _type = protocol.content._type;
3612
3609
  const classifierPath = isString(_type)
@@ -65,7 +65,10 @@ import {
65
65
  V1_buildParserError,
66
66
  } from './V1_EngineHelper.js';
67
67
  import { V1_LightQuery, V1_Query } from './query/V1_Query.js';
68
- import { V1_DatabaseBuilderInput } from './generation/V1_DatabaseBuilderInput.js';
68
+ import {
69
+ type V1_DatabaseBuilderInput,
70
+ V1_serializeDatabaseBuilderInput,
71
+ } from './generation/V1_DatabaseBuilderInput.js';
69
72
  import type { V1_ServiceConfigurationInfo } from './service/V1_ServiceConfiguration.js';
70
73
  import {
71
74
  V1_ExecuteInput,
@@ -113,10 +116,17 @@ import type { V1_SourceInformation } from '../model/V1_SourceInformation.js';
113
116
  import { V1_INTERNAL__PackageableElementWithSourceInformation } from '../transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.js';
114
117
  import { ELEMENT_PATH_DELIMITER } from '../../../../../graph/MetaModelConst.js';
115
118
  import { V1_serializeExecutionResult } from './execution/V1_ExecutionHelper.js';
116
- import type { ClassifierPathMapping } from '../../../../action/protocol/ClassifierPathMapping.js';
119
+ import type {
120
+ ClassifierPathMapping,
121
+ SubtypeInfo,
122
+ } from '../../../../action/protocol/ProtocolInfo.js';
117
123
  import { V1_FunctionActivatorInfo } from './functionActivator/V1_FunctionActivatorInfo.js';
118
124
  import { V1_FunctionActivatorError } from './functionActivator/V1_FunctionActivatorError.js';
119
125
  import { V1_FunctionActivatorInput } from './functionActivator/V1_FunctionActivatorInput.js';
126
+ import {
127
+ V1_serializeRawSQLExecuteInput,
128
+ type V1_RawSQLExecuteInput,
129
+ } from './execution/V1_RawSQLExecuteInput.js';
120
130
 
121
131
  class V1_EngineConfig extends TEMPORARY__AbstractEngineConfig {
122
132
  private engine: V1_Engine;
@@ -228,6 +238,24 @@ export class V1_Engine {
228
238
  }
229
239
  }
230
240
 
241
+ async getSubtypeInfo(): Promise<SubtypeInfo> {
242
+ try {
243
+ return await this.engineServerClient.getSubtypeInfo();
244
+ } catch {
245
+ // NOTE: this is temporary until we have this API functional and released
246
+ // See https://github.com/finos/legend-engine/pull/1858
247
+ return {
248
+ functionActivatorSubtypes: ['snowflakeApp'],
249
+ storeSubtypes: [
250
+ 'MongoDatabase',
251
+ 'serviceStore',
252
+ 'relational',
253
+ 'binding',
254
+ ],
255
+ };
256
+ }
257
+ }
258
+
231
259
  // ------------------------------------------- Grammar -------------------------------------------
232
260
 
233
261
  private extractElementSourceInformationIndexFromPureModelContextDataJSON(
@@ -859,14 +887,24 @@ export class V1_Engine {
859
887
 
860
888
  async buildDatabase(
861
889
  input: V1_DatabaseBuilderInput,
890
+ plugins: PureProtocolProcessorPlugin[],
862
891
  ): Promise<V1_PureModelContextData> {
863
892
  return V1_deserializePureModelContextData(
864
893
  await this.engineServerClient.buildDatabase(
865
- serialize(V1_DatabaseBuilderInput, input),
894
+ V1_serializeDatabaseBuilderInput(input, plugins),
866
895
  ),
867
896
  );
868
897
  }
869
898
 
899
+ async executeRawSQL(
900
+ input: V1_RawSQLExecuteInput,
901
+ plugins: PureProtocolProcessorPlugin[],
902
+ ): Promise<string> {
903
+ return this.engineServerClient.executeRawSQL(
904
+ V1_serializeRawSQLExecuteInput(input, plugins),
905
+ );
906
+ }
907
+
870
908
  // ------------------------------------------- Function -------------------------------------------
871
909
 
872
910
  async getAvailableFunctionActivators(): Promise<V1_FunctionActivatorInfo[]> {
@@ -63,10 +63,15 @@ import type {
63
63
  V1_SurveyDatasetsResult,
64
64
  } from './analytics/V1_StoreEntitlementAnalysis.js';
65
65
  import type { V1_RunTestsResult } from './test/V1_RunTestsResult.js';
66
- import type { ClassifierPathMapping } from '../../../../action/protocol/ClassifierPathMapping.js';
66
+ import type {
67
+ ClassifierPathMapping,
68
+ SubtypeInfo,
69
+ } from '../../../../action/protocol/ProtocolInfo.js';
67
70
  import type { V1_FunctionActivatorInfo } from './functionActivator/V1_FunctionActivatorInfo.js';
68
71
  import type { V1_FunctionActivatorError } from './functionActivator/V1_FunctionActivatorError.js';
69
72
  import type { V1_FunctionActivatorInput } from './functionActivator/V1_FunctionActivatorInput.js';
73
+ import type { V1_DatabaseBuilderInput } from './generation/V1_DatabaseBuilderInput.js';
74
+ import type { V1_RawSQLExecuteInput } from './execution/V1_RawSQLExecuteInput.js';
70
75
 
71
76
  enum CORE_ENGINE_ACTIVITY_TRACE {
72
77
  GRAMMAR_TO_JSON = 'transform Pure code to protocol',
@@ -99,6 +104,9 @@ enum CORE_ENGINE_ACTIVITY_TRACE {
99
104
  MAPPING_MODEL_COVERAGE_ANALYTICS = 'mapping model coverage analytics',
100
105
  SURVEY_DATASET_ANALYTICS = 'survey dataset analytics',
101
106
  STORE_ENTITLEMENT_ANALYTICS = 'store entitlement analytics',
107
+
108
+ DATABASE_SCHEMA_EXPLORATION = 'database schema exploration',
109
+ DATABASE_RAW_SQL_EXECUTION = 'database raw SQL execution',
102
110
  }
103
111
 
104
112
  type GrammarParserBatchInputEntry = {
@@ -165,6 +173,9 @@ export class V1_EngineServerClient extends AbstractServerClient {
165
173
  getClassifierPathMap = (): Promise<ClassifierPathMapping[]> =>
166
174
  this.get(`${this._pure()}/protocol/pure/getClassifierPathMap`);
167
175
 
176
+ getSubtypeInfo = (): Promise<SubtypeInfo> =>
177
+ this.get(`${this._pure()}/protocol/pure/getSubtypeInfo`);
178
+
168
179
  // ------------------------------------------- Grammar -------------------------------------------
169
180
 
170
181
  _grammarToJSON = (): string => `${this._pure()}/grammar/grammarToJson`;
@@ -622,15 +633,27 @@ export class V1_EngineServerClient extends AbstractServerClient {
622
633
  );
623
634
 
624
635
  _databaseUtilities = (): string => `${this._pure()}/utilities/database`;
636
+
625
637
  buildDatabase = (
626
- input: PlainObject<V1_ExecuteInput>,
638
+ input: PlainObject<V1_DatabaseBuilderInput>,
627
639
  ): Promise<PlainObject<V1_PureModelContextData>> =>
628
640
  this.postWithTracing(
629
- this.getTraceData(CORE_ENGINE_ACTIVITY_TRACE.GENERATE_EXECUTION_PLAN),
641
+ this.getTraceData(CORE_ENGINE_ACTIVITY_TRACE.DATABASE_SCHEMA_EXPLORATION),
630
642
  `${this._databaseUtilities()}/schemaExploration`,
631
643
  input,
632
644
  );
633
645
 
646
+ executeRawSQL = (
647
+ input: PlainObject<V1_RawSQLExecuteInput>,
648
+ ): Promise<string> =>
649
+ this.postWithTracing(
650
+ this.getTraceData(CORE_ENGINE_ACTIVITY_TRACE.DATABASE_RAW_SQL_EXECUTION),
651
+ `${this._databaseUtilities()}/executeRawSQL`,
652
+ input,
653
+ {},
654
+ { [HttpHeader.ACCEPT]: ContentType.TEXT_PLAIN },
655
+ );
656
+
634
657
  // ------------------------------------------- Function ---------------------------------------
635
658
 
636
659
  _functionActivator = (): string => `${this.baseUrl}/functionActivator`;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ createModelSchema,
19
+ primitive,
20
+ custom,
21
+ serialize,
22
+ type ModelSchema,
23
+ } from 'serializr';
24
+ import { type PlainObject } from '@finos/legend-shared';
25
+ import {
26
+ V1_serializeConnectionValue,
27
+ V1_deserializeConnectionValue,
28
+ } from '../../transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js';
29
+ import type { V1_RelationalDatabaseConnection } from '../../model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js';
30
+ import type { PureProtocolProcessorPlugin } from '../../../PureProtocolProcessorPlugin.js';
31
+
32
+ export class V1_RawSQLExecuteInput {
33
+ connection!: V1_RelationalDatabaseConnection;
34
+ sql!: string;
35
+ }
36
+
37
+ const createRawSQLExecuteInpuModelSchema = (
38
+ plugins: PureProtocolProcessorPlugin[],
39
+ ): ModelSchema<V1_RawSQLExecuteInput> =>
40
+ createModelSchema(V1_RawSQLExecuteInput, {
41
+ connection: custom(
42
+ (val) => V1_serializeConnectionValue(val, false, plugins),
43
+ (val) => V1_deserializeConnectionValue(val, false, plugins),
44
+ ),
45
+ sql: primitive(),
46
+ });
47
+
48
+ export const V1_serializeRawSQLExecuteInput = (
49
+ value: V1_RawSQLExecuteInput,
50
+ plugins: PureProtocolProcessorPlugin[],
51
+ ): PlainObject<V1_RawSQLExecuteInput> =>
52
+ serialize(createRawSQLExecuteInpuModelSchema(plugins), value);