@finos/legend-graph 24.0.1 → 25.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 (230) hide show
  1. package/lib/graph/BasicModel.d.ts +6 -0
  2. package/lib/graph/BasicModel.d.ts.map +1 -1
  3. package/lib/graph/BasicModel.js +23 -0
  4. package/lib/graph/BasicModel.js.map +1 -1
  5. package/lib/graph/Core_HashUtils.d.ts +7 -1
  6. package/lib/graph/Core_HashUtils.d.ts.map +1 -1
  7. package/lib/graph/Core_HashUtils.js +8 -1
  8. package/lib/graph/Core_HashUtils.js.map +1 -1
  9. package/lib/graph/DependencyManager.d.ts +3 -0
  10. package/lib/graph/DependencyManager.d.ts.map +1 -1
  11. package/lib/graph/DependencyManager.js +4 -0
  12. package/lib/graph/DependencyManager.js.map +1 -1
  13. package/lib/graph/MetaModelConst.d.ts +1 -0
  14. package/lib/graph/MetaModelConst.d.ts.map +1 -1
  15. package/lib/graph/MetaModelConst.js +1 -0
  16. package/lib/graph/MetaModelConst.js.map +1 -1
  17. package/lib/graph/PureModel.d.ts +2 -0
  18. package/lib/graph/PureModel.d.ts.map +1 -1
  19. package/lib/graph/PureModel.js +9 -0
  20. package/lib/graph/PureModel.js.map +1 -1
  21. package/lib/graph/helpers/DomainHelper.d.ts.map +1 -1
  22. package/lib/graph/helpers/DomainHelper.js +6 -0
  23. package/lib/graph/helpers/DomainHelper.js.map +1 -1
  24. package/lib/graph/helpers/PureLanguageHelper.d.ts +2 -1
  25. package/lib/graph/helpers/PureLanguageHelper.d.ts.map +1 -1
  26. package/lib/graph/helpers/PureLanguageHelper.js +1 -0
  27. package/lib/graph/helpers/PureLanguageHelper.js.map +1 -1
  28. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.d.ts +2 -0
  29. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.d.ts.map +1 -1
  30. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.js.map +1 -1
  31. package/lib/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.d.ts +40 -0
  32. package/lib/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.d.ts.map +1 -0
  33. package/lib/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js +58 -0
  34. package/lib/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js.map +1 -0
  35. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.d.ts +6 -0
  36. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.d.ts.map +1 -1
  37. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.js +16 -0
  38. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.js.map +1 -1
  39. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts +17 -0
  40. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts.map +1 -1
  41. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js +41 -0
  42. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js.map +1 -1
  43. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.d.ts +2 -1
  44. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.d.ts.map +1 -1
  45. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.js +1 -0
  46. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.js.map +1 -1
  47. package/lib/graphManager/AbstractPureGraphManager.d.ts +1 -2
  48. package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
  49. package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
  50. package/lib/graphManager/action/{service/BulkServiceRegistrationResult.d.ts → changeDetection/DSL_ExecutionEnvironment_ObseverHelper.d.ts} +3 -14
  51. package/lib/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.d.ts.map +1 -0
  52. package/lib/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.js +26 -0
  53. package/lib/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.js.map +1 -0
  54. package/lib/graphManager/action/changeDetection/GraphObserverHelper.d.ts.map +1 -1
  55. package/lib/graphManager/action/changeDetection/GraphObserverHelper.js +4 -0
  56. package/lib/graphManager/action/changeDetection/GraphObserverHelper.js.map +1 -1
  57. package/lib/graphManager/action/changeDetection/PackageableElementObserver.d.ts.map +1 -1
  58. package/lib/graphManager/action/changeDetection/PackageableElementObserver.js +4 -0
  59. package/lib/graphManager/action/changeDetection/PackageableElementObserver.js.map +1 -1
  60. package/lib/graphManager/action/changeDetection/STO_Relational_ObserverHelper.d.ts +5 -2
  61. package/lib/graphManager/action/changeDetection/STO_Relational_ObserverHelper.d.ts.map +1 -1
  62. package/lib/graphManager/action/changeDetection/STO_Relational_ObserverHelper.js +31 -2
  63. package/lib/graphManager/action/changeDetection/STO_Relational_ObserverHelper.js.map +1 -1
  64. package/lib/graphManager/action/execution/ExecutionResult.d.ts +8 -2
  65. package/lib/graphManager/action/execution/ExecutionResult.d.ts.map +1 -1
  66. package/lib/graphManager/action/execution/ExecutionResult.js +9 -3
  67. package/lib/graphManager/action/execution/ExecutionResult.js.map +1 -1
  68. package/lib/graphManager/action/service/ServiceRegistrationResult.d.ts +8 -0
  69. package/lib/graphManager/action/service/ServiceRegistrationResult.d.ts.map +1 -1
  70. package/lib/graphManager/action/service/ServiceRegistrationResult.js +11 -0
  71. package/lib/graphManager/action/service/ServiceRegistrationResult.js.map +1 -1
  72. package/lib/graphManager/protocol/pure/PureProtocolProcessorPlugin.d.ts +1 -1
  73. package/lib/graphManager/protocol/pure/PureProtocolProcessorPlugin.d.ts.map +1 -1
  74. package/lib/graphManager/protocol/pure/v1/V1_PureGraphManager.d.ts +4 -3
  75. package/lib/graphManager/protocol/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  76. package/lib/graphManager/protocol/pure/v1/V1_PureGraphManager.js +18 -6
  77. package/lib/graphManager/protocol/pure/v1/V1_PureGraphManager.js.map +1 -1
  78. package/lib/graphManager/protocol/pure/v1/engine/V1_EngineHelper.d.ts +1 -1
  79. package/lib/graphManager/protocol/pure/v1/engine/V1_EngineHelper.d.ts.map +1 -1
  80. package/lib/graphManager/protocol/pure/v1/engine/V1_EngineHelper.js +2 -2
  81. package/lib/graphManager/protocol/pure/v1/engine/V1_EngineHelper.js.map +1 -1
  82. package/lib/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionHelper.d.ts.map +1 -1
  83. package/lib/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionHelper.js +10 -9
  84. package/lib/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionHelper.js.map +1 -1
  85. package/lib/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionResult.d.ts +9 -3
  86. package/lib/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionResult.d.ts.map +1 -1
  87. package/lib/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionResult.js +10 -4
  88. package/lib/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionResult.js.map +1 -1
  89. package/lib/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.d.ts +4 -2
  90. package/lib/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.d.ts.map +1 -1
  91. package/lib/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.js +1 -1
  92. package/lib/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.js.map +1 -1
  93. package/lib/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.d.ts +38 -0
  94. package/lib/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.d.ts.map +1 -0
  95. package/lib/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.js +58 -0
  96. package/lib/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.js.map +1 -0
  97. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.d.ts +5 -0
  98. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.d.ts.map +1 -1
  99. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js +11 -0
  100. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js.map +1 -1
  101. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts +15 -0
  102. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts.map +1 -1
  103. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js +32 -0
  104. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js.map +1 -1
  105. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.d.ts +2 -1
  106. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.d.ts.map +1 -1
  107. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js +1 -0
  108. package/lib/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js.map +1 -1
  109. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.d.ts.map +1 -1
  110. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +29 -4
  111. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  112. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.d.ts +20 -0
  113. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.d.ts.map +1 -0
  114. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.js +46 -0
  115. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.js.map +1 -0
  116. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.d.ts.map +1 -1
  117. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js +4 -0
  118. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js.map +1 -1
  119. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts +2 -0
  120. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts.map +1 -1
  121. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js +3 -0
  122. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js.map +1 -1
  123. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts +2 -0
  124. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts.map +1 -1
  125. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js +11 -0
  126. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js.map +1 -1
  127. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts +2 -0
  128. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts.map +1 -1
  129. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js +3 -0
  130. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js.map +1 -1
  131. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts +2 -0
  132. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts.map +1 -1
  133. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js +5 -0
  134. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js.map +1 -1
  135. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts +2 -0
  136. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts.map +1 -1
  137. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js +3 -0
  138. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js.map +1 -1
  139. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.d.ts +21 -0
  140. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.d.ts.map +1 -0
  141. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.js +51 -0
  142. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.js.map +1 -0
  143. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.d.ts.map +1 -1
  144. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js +23 -4
  145. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js.map +1 -1
  146. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.d.ts +2 -2
  147. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -1
  148. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js +5 -11
  149. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js.map +1 -1
  150. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.d.ts.map +1 -1
  151. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js +6 -0
  152. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js.map +1 -1
  153. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.d.ts.map +1 -1
  154. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js +34 -3
  155. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js.map +1 -1
  156. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.js +1 -1
  157. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.js.map +1 -1
  158. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.d.ts +20 -0
  159. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.d.ts.map +1 -0
  160. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.js +62 -0
  161. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.js.map +1 -0
  162. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_RuntimeSerializationHelper.d.ts +1 -0
  163. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_RuntimeSerializationHelper.d.ts.map +1 -1
  164. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_RuntimeSerializationHelper.js +14 -0
  165. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_RuntimeSerializationHelper.js.map +1 -1
  166. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.d.ts.map +1 -1
  167. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js +3 -17
  168. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js.map +1 -1
  169. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.d.ts.map +1 -1
  170. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.js +7 -7
  171. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.js.map +1 -1
  172. package/lib/index.d.ts +2 -2
  173. package/lib/index.d.ts.map +1 -1
  174. package/lib/index.js +2 -2
  175. package/lib/index.js.map +1 -1
  176. package/lib/package.json +3 -3
  177. package/package.json +6 -6
  178. package/src/graph/BasicModel.ts +33 -0
  179. package/src/graph/Core_HashUtils.ts +12 -2
  180. package/src/graph/DependencyManager.ts +10 -0
  181. package/src/graph/MetaModelConst.ts +1 -0
  182. package/src/graph/PureModel.ts +11 -0
  183. package/src/graph/helpers/DomainHelper.ts +6 -0
  184. package/src/graph/helpers/PureLanguageHelper.ts +1 -0
  185. package/src/graph/metamodel/pure/packageableElements/PackageableElement.ts +2 -0
  186. package/src/graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.ts +78 -0
  187. package/src/graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.ts +25 -0
  188. package/src/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.ts +53 -0
  189. package/src/graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.ts +1 -0
  190. package/src/graphManager/AbstractPureGraphManager.ts +1 -2
  191. package/src/graphManager/action/changeDetection/DSL_ExecutionEnvironment_ObseverHelper.ts +40 -0
  192. package/src/graphManager/action/changeDetection/GraphObserverHelper.ts +5 -0
  193. package/src/graphManager/action/changeDetection/PackageableElementObserver.ts +8 -0
  194. package/src/graphManager/action/changeDetection/STO_Relational_ObserverHelper.ts +47 -0
  195. package/src/graphManager/action/execution/ExecutionResult.ts +11 -4
  196. package/src/graphManager/action/service/ServiceRegistrationResult.ts +15 -0
  197. package/src/graphManager/protocol/pure/PureProtocolProcessorPlugin.ts +1 -1
  198. package/src/graphManager/protocol/pure/v1/V1_PureGraphManager.ts +39 -11
  199. package/src/graphManager/protocol/pure/v1/engine/V1_EngineHelper.ts +5 -2
  200. package/src/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionHelper.ts +17 -12
  201. package/src/graphManager/protocol/pure/v1/engine/execution/V1_ExecutionResult.ts +12 -4
  202. package/src/graphManager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.ts +7 -3
  203. package/src/graphManager/protocol/pure/v1/model/packageableElements/service/V1_ExecutionEnvironmentInstance.ts +82 -0
  204. package/src/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.ts +16 -0
  205. package/src/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.ts +39 -0
  206. package/src/graphManager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.ts +1 -0
  207. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +33 -0
  208. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_ExecutionEnvironmentTransformer.ts +72 -0
  209. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.ts +8 -0
  210. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.ts +7 -0
  211. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.ts +28 -0
  212. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.ts +7 -0
  213. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.ts +13 -0
  214. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.ts +7 -0
  215. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_ExecutionEnvironmentBuilderHelper.ts +88 -0
  216. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.ts +46 -0
  217. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.ts +17 -21
  218. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.ts +13 -0
  219. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.ts +50 -0
  220. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.ts +1 -1
  221. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ExecutionEnvironmentSerializationHelper.ts +122 -0
  222. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_RuntimeSerializationHelper.ts +19 -0
  223. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.ts +3 -31
  224. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/executionPlan/V1_ExecutionPlanSerializationHelper.ts +9 -18
  225. package/src/index.ts +5 -6
  226. package/tsconfig.json +6 -1
  227. package/lib/graphManager/action/service/BulkServiceRegistrationResult.d.ts.map +0 -1
  228. package/lib/graphManager/action/service/BulkServiceRegistrationResult.js +0 -37
  229. package/lib/graphManager/action/service/BulkServiceRegistrationResult.js.map +0 -1
  230. package/src/graphManager/action/service/BulkServiceRegistrationResult.ts +0 -41
@@ -26,12 +26,13 @@ import {
26
26
  JsonExecutionResult,
27
27
  TDSExecutionResult,
28
28
  TDSBuilder,
29
- TDSColumn,
29
+ INTERNAL__TDSColumn,
30
30
  RawExecutionResult,
31
31
  } from '../../../../../../graphManager/action/execution/ExecutionResult.js';
32
32
  import {
33
33
  type V1_ExecutionResult,
34
34
  type V1_TDSBuilder,
35
+ type V1_INTERNAL__TDSColumn,
35
36
  V1_ClassExecutionResult,
36
37
  V1_JsonExecutionResult,
37
38
  V1_INTERNAL__UnknownExecutionResult,
@@ -50,19 +51,23 @@ const buildJSONExecutionResult = (
50
51
  return metamodel;
51
52
  };
52
53
 
54
+ const INTERNAL__buildTDSColumn = (
55
+ protocol: V1_INTERNAL__TDSColumn,
56
+ ): INTERNAL__TDSColumn => {
57
+ const metamodel = new INTERNAL__TDSColumn();
58
+ metamodel.name = guaranteeNonNullable(
59
+ protocol.name,
60
+ `TDS column 'name' field is missing`,
61
+ );
62
+ metamodel.type = protocol.type;
63
+ metamodel.doc = protocol.doc;
64
+ metamodel.relationalType = protocol.relationalType;
65
+ return metamodel;
66
+ };
67
+
53
68
  const buildTDSBuilder = (protocol: V1_TDSBuilder): TDSBuilder => {
54
69
  const builder = new TDSBuilder();
55
- builder.columns = protocol.columns.map((_column) => {
56
- const column = new TDSColumn();
57
- column.name = guaranteeNonNullable(
58
- _column.name,
59
- `TDS column 'name' field is missing`,
60
- );
61
- column.type = _column.type;
62
- column.doc = _column.doc;
63
- column.relationalType = _column.relationalType;
64
- return column;
65
- });
70
+ builder.columns = protocol.columns.map(INTERNAL__buildTDSColumn);
66
71
  return builder;
67
72
  };
68
73
 
@@ -48,14 +48,20 @@ export class V1_JsonExecutionResult extends V1_ExecutionResult {
48
48
  );
49
49
  }
50
50
 
51
- export class V1_TDSColumn {
51
+ /**
52
+ * TODO?: maybe we converge to use V1_TDSColumn
53
+ *
54
+ * Since here, we're building out the result builder config, we don't need
55
+ * to fully resolve all the references, hence we have this simplified version of V1_TDSColumn
56
+ */
57
+ export class V1_INTERNAL__TDSColumn {
52
58
  name!: string;
53
59
  doc?: string | undefined;
54
60
  type?: string | undefined;
55
61
  relationalType?: string | undefined;
56
62
 
57
63
  static readonly serialization = new SerializationFactory(
58
- createModelSchema(V1_TDSColumn, {
64
+ createModelSchema(V1_INTERNAL__TDSColumn, {
59
65
  name: primitive(),
60
66
  doc: optional(primitive()),
61
67
  type: optional(primitive()),
@@ -65,12 +71,14 @@ export class V1_TDSColumn {
65
71
  }
66
72
 
67
73
  export class V1_TDSBuilder extends V1_ResultBuilder {
68
- columns: V1_TDSColumn[] = [];
74
+ columns: V1_INTERNAL__TDSColumn[] = [];
69
75
 
70
76
  static readonly serialization = new SerializationFactory(
71
77
  createModelSchema(V1_TDSBuilder, {
72
78
  _type: primitive(),
73
- columns: list(usingModelSchema(V1_TDSColumn.serialization.schema)),
79
+ columns: list(
80
+ usingModelSchema(V1_INTERNAL__TDSColumn.serialization.schema),
81
+ ),
74
82
  }),
75
83
  );
76
84
  }
@@ -33,6 +33,7 @@ import type { V1_Measure } from './domain/V1_Measure.js';
33
33
  import type { V1_SectionIndex } from './section/V1_SectionIndex.js';
34
34
  import type { V1_DataElement } from './data/V1_DataElement.js';
35
35
  import { ELEMENT_PATH_DELIMITER } from '../../../../../../graph/MetaModelConst.js';
36
+ import type { V1_ExecutionEnvironmentInstance } from './service/V1_ExecutionEnvironmentInstance.js';
36
37
 
37
38
  export interface V1_PackageableElementVisitor<T> {
38
39
  visit_PackageableElement(element: V1_PackageableElement): T;
@@ -53,6 +54,9 @@ export interface V1_PackageableElementVisitor<T> {
53
54
  visit_GenerationSpecification(element: V1_GenerationSpecification): T;
54
55
  visit_FileGeneration(element: V1_FileGenerationSpecification): T;
55
56
  visit_DataElement(element: V1_DataElement): T;
57
+ visit_ExecutionEnvironmentInstance(
58
+ element: V1_ExecutionEnvironmentInstance,
59
+ ): T;
56
60
  }
57
61
 
58
62
  export abstract class V1_PackageableElement implements Hashable {
@@ -80,10 +84,10 @@ export abstract class V1_PackageableElement implements Hashable {
80
84
  }
81
85
 
82
86
  export class V1_PackageableElementPointer implements Hashable {
83
- type!: string;
87
+ type?: string | undefined;
84
88
  path!: string;
85
89
 
86
- constructor(type: string, path: string) {
90
+ constructor(type: string | undefined, path: string) {
87
91
  this.type = type;
88
92
  this.path = path;
89
93
  }
@@ -91,7 +95,7 @@ export class V1_PackageableElementPointer implements Hashable {
91
95
  get hashCode(): string {
92
96
  return hashArray([
93
97
  CORE_HASH_STRUCTURE.PACKAGEABLE_ELEMENT_POINTER,
94
- this.type,
98
+ this.type ?? '',
95
99
  this.path,
96
100
  ]);
97
101
  }
@@ -0,0 +1,82 @@
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 { type Hashable, hashArray } from '@finos/legend-shared';
18
+ import { CORE_HASH_STRUCTURE } from '../../../../../../../graph/Core_HashUtils.js';
19
+ import type { V1_Runtime } from '../runtime/V1_Runtime.js';
20
+ import {
21
+ V1_PackageableElement,
22
+ type V1_PackageableElementVisitor,
23
+ } from '../V1_PackageableElement.js';
24
+
25
+ export class V1_ExecutionEnvironmentInstance
26
+ extends V1_PackageableElement
27
+ implements Hashable
28
+ {
29
+ executionParameters: V1_ExecutionParameters[] = [];
30
+
31
+ override get hashCode(): string {
32
+ return hashArray([
33
+ CORE_HASH_STRUCTURE.EXECUTION_ENVIRONMENT_INSTANCE,
34
+ this.path,
35
+ hashArray(this.executionParameters),
36
+ ]);
37
+ }
38
+
39
+ accept_PackageableElementVisitor<T>(
40
+ visitor: V1_PackageableElementVisitor<T>,
41
+ ): T {
42
+ return visitor.visit_ExecutionEnvironmentInstance(this);
43
+ }
44
+ }
45
+
46
+ export abstract class V1_ExecutionParameters implements Hashable {
47
+ abstract get hashCode(): string;
48
+ }
49
+
50
+ export class V1_SingleExecutionParameters
51
+ extends V1_ExecutionParameters
52
+ implements Hashable
53
+ {
54
+ key!: string;
55
+ mapping!: string;
56
+ runtime!: V1_Runtime;
57
+
58
+ get hashCode(): string {
59
+ return hashArray([
60
+ CORE_HASH_STRUCTURE.SINGLE_EXECUTION_PARAMETER,
61
+ this.key,
62
+ this.mapping,
63
+ this.runtime,
64
+ ]);
65
+ }
66
+ }
67
+
68
+ export class V1_MultiExecutionParameters
69
+ extends V1_ExecutionParameters
70
+ implements Hashable
71
+ {
72
+ masterKey!: string;
73
+ singleExecutionParameters: V1_SingleExecutionParameters[] = [];
74
+
75
+ get hashCode(): string {
76
+ return hashArray([
77
+ CORE_HASH_STRUCTURE.MULTI_EXECUTION_PARAMETER,
78
+ this.masterKey,
79
+ hashArray(this.singleExecutionParameters),
80
+ ]);
81
+ }
82
+ }
@@ -149,3 +149,19 @@ export class V1_MiddleTierUsernamePasswordAuthenticationStrategy
149
149
  ]);
150
150
  }
151
151
  }
152
+
153
+ export class V1_TrinoDelegatedKerberosAuthenticationStrategy
154
+ extends V1_AuthenticationStrategy
155
+ implements Hashable
156
+ {
157
+ kerberosRemoteServiceName!: string;
158
+ kerberosUseCanonicalHostname!: boolean;
159
+
160
+ get hashCode(): string {
161
+ return hashArray([
162
+ CORE_HASH_STRUCTURE.TRINO_DELEGATED_KERBEROS_AUTHENTICATION_STRATEGY,
163
+ this.kerberosRemoteServiceName,
164
+ this.kerberosUseCanonicalHostname.toString(),
165
+ ]);
166
+ }
167
+ }
@@ -194,3 +194,42 @@ export class V1_LocalH2DataSourceSpecification
194
194
  ]);
195
195
  }
196
196
  }
197
+
198
+ export class V1_TrinoSslSpecification implements Hashable {
199
+ ssl!: boolean;
200
+ trustStorePathVaultReference?: string | undefined;
201
+ trustStorePasswordVaultReference?: string | undefined;
202
+
203
+ get hashCode(): string {
204
+ return hashArray([
205
+ CORE_HASH_STRUCTURE.TRINO_SSL_SPECIFICATION,
206
+ this.ssl.toString(),
207
+ this.trustStorePathVaultReference ?? '',
208
+ this.trustStorePasswordVaultReference ?? '',
209
+ ]);
210
+ }
211
+ }
212
+
213
+ export class V1_TrinoDatasourceSpecification
214
+ extends V1_DatasourceSpecification
215
+ implements Hashable
216
+ {
217
+ host!: string;
218
+ port!: number;
219
+ sslSpecification!: V1_TrinoSslSpecification;
220
+ catalog?: string | undefined;
221
+ schema?: string | undefined;
222
+ clientTags?: string | undefined;
223
+
224
+ get hashCode(): string {
225
+ return hashArray([
226
+ CORE_HASH_STRUCTURE.TRINO_DATASOURCE_SPECIFICATION,
227
+ this.host,
228
+ this.port.toString(),
229
+ this.sslSpecification,
230
+ this.catalog ?? '',
231
+ this.schema ?? '',
232
+ this.clientTags ?? '',
233
+ ]);
234
+ }
235
+ }
@@ -47,6 +47,7 @@ export enum V1_DatabaseType {
47
47
  Presto = 'Presto',
48
48
  Redshift = 'Redshift',
49
49
  Spanner = 'Spanner',
50
+ Trino = 'Trino',
50
51
  }
51
52
 
52
53
  export abstract class V1_DatabaseConnection extends V1_Connection {
@@ -39,6 +39,7 @@ import {
39
39
  UsernamePasswordAuthenticationStrategy,
40
40
  GCPWorkloadIdentityFederationAuthenticationStrategy,
41
41
  MiddleTierUsernamePasswordAuthenticationStrategy,
42
+ TrinoDelegatedKerberosAuthenticationStrategy,
42
43
  } from '../../../../../../../graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.js';
43
44
  import {
44
45
  type DatasourceSpecification,
@@ -50,6 +51,7 @@ import {
50
51
  RedshiftDatasourceSpecification,
51
52
  BigQueryDatasourceSpecification,
52
53
  SpannerDatasourceSpecification,
54
+ TrinoDatasourceSpecification,
53
55
  } from '../../../../../../../graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js';
54
56
  import type { ModelChainConnection } from '../../../../../../../graph/metamodel/pure/packageableElements/store/modelToModel/connection/ModelChainConnection.js';
55
57
  import { V1_initPackageableElement } from './V1_CoreTransformerHelper.js';
@@ -64,6 +66,8 @@ import {
64
66
  V1_StaticDatasourceSpecification,
65
67
  V1_RedshiftDatasourceSpecification,
66
68
  V1_SpannerDatasourceSpecification,
69
+ V1_TrinoDatasourceSpecification,
70
+ V1_TrinoSslSpecification,
67
71
  } from '../../../model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js';
68
72
  import {
69
73
  type V1_AuthenticationStrategy,
@@ -76,6 +80,7 @@ import {
76
80
  V1_OAuthAuthenticationStrategy,
77
81
  V1_GCPWorkloadIdentityFederationAuthenticationStrategy,
78
82
  V1_MiddleTierUsernamePasswordAuthenticationStrategy,
83
+ V1_TrinoDelegatedKerberosAuthenticationStrategy,
79
84
  } from '../../../model/packageableElements/store/relational/connection/V1_AuthenticationStrategy.js';
80
85
  import type { V1_Connection } from '../../../model/packageableElements/connection/V1_Connection.js';
81
86
  import {
@@ -178,6 +183,25 @@ const transformSpannerDatasourceSpecification = (
178
183
  return source;
179
184
  };
180
185
 
186
+ const transformTrinoDatasourceSpecification = (
187
+ metamodel: TrinoDatasourceSpecification,
188
+ ): V1_TrinoDatasourceSpecification => {
189
+ const source = new V1_TrinoDatasourceSpecification();
190
+ source.host = metamodel.host;
191
+ source.port = metamodel.port;
192
+ source.catalog = metamodel.catalog;
193
+ source.schema = metamodel.schema;
194
+ source.clientTags = metamodel.clientTags;
195
+ const sslSpecification = new V1_TrinoSslSpecification();
196
+ sslSpecification.ssl = metamodel.sslSpecification.ssl;
197
+ sslSpecification.trustStorePathVaultReference =
198
+ metamodel.sslSpecification.trustStorePathVaultReference;
199
+ sslSpecification.trustStorePasswordVaultReference =
200
+ metamodel.sslSpecification.trustStorePasswordVaultReference;
201
+ source.sslSpecification = sslSpecification;
202
+ return source;
203
+ };
204
+
181
205
  const transformDatasourceSpecification = (
182
206
  metamodel: DatasourceSpecification,
183
207
  context: V1_GraphTransformerContext,
@@ -201,6 +225,8 @@ const transformDatasourceSpecification = (
201
225
  return protocol;
202
226
  } else if (metamodel instanceof RedshiftDatasourceSpecification) {
203
227
  return transformRedshiftDatasourceSpecification(metamodel);
228
+ } else if (metamodel instanceof TrinoDatasourceSpecification) {
229
+ return transformTrinoDatasourceSpecification(metamodel);
204
230
  }
205
231
  const extraConnectionDatasourceSpecificationTransformers =
206
232
  context.plugins.flatMap(
@@ -277,6 +303,13 @@ const transformAuthenticationStrategy = (
277
303
  const auth = new V1_MiddleTierUsernamePasswordAuthenticationStrategy();
278
304
  auth.vaultReference = metamodel.vaultReference;
279
305
  return auth;
306
+ } else if (
307
+ metamodel instanceof TrinoDelegatedKerberosAuthenticationStrategy
308
+ ) {
309
+ const auth = new V1_TrinoDelegatedKerberosAuthenticationStrategy();
310
+ auth.kerberosRemoteServiceName = metamodel.kerberosRemoteServiceName;
311
+ auth.kerberosUseCanonicalHostname = metamodel.kerberosUseCanonicalHostname;
312
+ return auth;
280
313
  }
281
314
  const extraConnectionAuthenticationStrategyTransformers =
282
315
  context.plugins.flatMap(
@@ -0,0 +1,72 @@
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
+ type ExecutionEnvironmentInstance,
19
+ type ExecutionParameters,
20
+ SingleExecutionParameters,
21
+ MultiExecutionParameters,
22
+ } from '../../../../../../../graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
23
+ import { V1_initPackageableElement } from './V1_CoreTransformerHelper.js';
24
+ import type { V1_GraphTransformerContext } from './V1_GraphTransformerContext.js';
25
+ import {
26
+ type V1_ExecutionParameters,
27
+ V1_ExecutionEnvironmentInstance,
28
+ V1_MultiExecutionParameters,
29
+ V1_SingleExecutionParameters,
30
+ } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
31
+ import { V1_transformRuntime } from './V1_RuntimeTransformer.js';
32
+ import { UnsupportedOperationError } from '@finos/legend-shared';
33
+
34
+ const V1_transformSingleExecutionParameters = (
35
+ element: SingleExecutionParameters,
36
+ context: V1_GraphTransformerContext,
37
+ ): V1_SingleExecutionParameters => {
38
+ const _val = new V1_SingleExecutionParameters();
39
+ _val.key = element.key;
40
+ _val.mapping = element.mapping.valueForSerialization ?? '';
41
+ _val.runtime = V1_transformRuntime(element.runtime, context);
42
+ return _val;
43
+ };
44
+
45
+ const V1_transformExecutionParameters = (
46
+ element: ExecutionParameters,
47
+ context: V1_GraphTransformerContext,
48
+ ): V1_ExecutionParameters => {
49
+ if (element instanceof SingleExecutionParameters) {
50
+ return V1_transformSingleExecutionParameters(element, context);
51
+ } else if (element instanceof MultiExecutionParameters) {
52
+ const val = new V1_MultiExecutionParameters();
53
+ val.masterKey = element.masterKey;
54
+ val.singleExecutionParameters = element.singleExecutionParameters.map((s) =>
55
+ V1_transformSingleExecutionParameters(s, context),
56
+ );
57
+ return val;
58
+ }
59
+ throw new UnsupportedOperationError('Unsupported execution parameter type');
60
+ };
61
+
62
+ export const V1_transformExecutionEnvirnoment = (
63
+ element: ExecutionEnvironmentInstance,
64
+ context: V1_GraphTransformerContext,
65
+ ): V1_ExecutionEnvironmentInstance => {
66
+ const execEnv = new V1_ExecutionEnvironmentInstance();
67
+ V1_initPackageableElement(execEnv, element);
68
+ execEnv.executionParameters = element.executionParameters.map((e) =>
69
+ V1_transformExecutionParameters(e, context),
70
+ );
71
+ return execEnv;
72
+ };
@@ -66,6 +66,8 @@ import type {
66
66
  import type { V1_GraphTransformerContext } from './V1_GraphTransformerContext.js';
67
67
  import type { DataElement } from '../../../../../../../graph/metamodel/pure/packageableElements/data/DataElement.js';
68
68
  import { V1_transformDataElement } from './V1_DataElementTransformer.js';
69
+ import type { ExecutionEnvironmentInstance } from '../../../../../../../graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
70
+ import { V1_transformExecutionEnvirnoment } from './V1_ExecutionEnvironmentTransformer.js';
69
71
 
70
72
  class V1_PackageableElementTransformer
71
73
  implements PackageableElementVisitor<V1_PackageableElement>
@@ -175,6 +177,12 @@ class V1_PackageableElementTransformer
175
177
  visit_DataElement(element: DataElement): V1_PackageableElement {
176
178
  return V1_transformDataElement(element, this.context);
177
179
  }
180
+
181
+ visit_ExecutionEnvironmentInstance(
182
+ element: ExecutionEnvironmentInstance,
183
+ ): V1_PackageableElement {
184
+ return V1_transformExecutionEnvirnoment(element, this.context);
185
+ }
178
186
  }
179
187
 
180
188
  export const V1_transformPackageableElement = (
@@ -44,6 +44,7 @@ import type { V1_Measure } from '../../../model/packageableElements/domain/V1_Me
44
44
  import { V1_buildDatabaseSchemaViewsSecondPass } from './helpers/V1_DatabaseBuilderHelper.js';
45
45
  import type { V1_SectionIndex } from '../../../model/packageableElements/section/V1_SectionIndex.js';
46
46
  import type { V1_DataElement } from '../../../model/packageableElements/data/V1_DataElement.js';
47
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
47
48
 
48
49
  export class V1_ElementFifthPassBuilder
49
50
  implements V1_PackageableElementVisitor<void>
@@ -139,4 +140,10 @@ export class V1_ElementFifthPassBuilder
139
140
  visit_DataElement(element: V1_DataElement): void {
140
141
  throw new UnsupportedOperationError();
141
142
  }
143
+
144
+ visit_ExecutionEnvironmentInstance(
145
+ element: V1_ExecutionEnvironmentInstance,
146
+ ): void {
147
+ throw new UnsupportedOperationError();
148
+ }
142
149
  }
@@ -66,6 +66,8 @@ import { DataElement } from '../../../../../../../graph/metamodel/pure/packageab
66
66
  import { V1_buildFunctionSignature } from '../../../helpers/V1_DomainHelper.js';
67
67
  import { Multiplicity } from '../../../../../../../graph/metamodel/pure/packageableElements/domain/Multiplicity.js';
68
68
  import { PrimitiveType } from '../../../../../../../graph/metamodel/pure/packageableElements/domain/PrimitiveType.js';
69
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
70
+ import { ExecutionEnvironmentInstance } from '../../../../../../../graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
69
71
 
70
72
  export class V1_ElementFirstPassBuilder
71
73
  implements V1_PackageableElementVisitor<PackageableElement>
@@ -488,4 +490,30 @@ export class V1_ElementFirstPassBuilder
488
490
  this.context.currentSubGraph.setOwnDataElement(path, dataElement);
489
491
  return dataElement;
490
492
  }
493
+
494
+ visit_ExecutionEnvironmentInstance(
495
+ element: V1_ExecutionEnvironmentInstance,
496
+ ): PackageableElement {
497
+ assertNonEmptyString(
498
+ element.package,
499
+ `Execution Environment 'package' field is missing or empty`,
500
+ );
501
+ assertNonEmptyString(
502
+ element.name,
503
+ `Execution Environment 'name' field is missing or empty`,
504
+ );
505
+ const exEnvir = new ExecutionEnvironmentInstance(element.name);
506
+ const path = V1_buildFullPath(element.package, element.name);
507
+ V1_checkDuplicatedElement(path, this.context, this.elementPathCache);
508
+ addElementToPackage(
509
+ getOrCreateGraphPackage(
510
+ this.context.currentSubGraph,
511
+ element.package,
512
+ this.packageCache,
513
+ ),
514
+ exEnvir,
515
+ );
516
+ this.context.currentSubGraph.setOwnExecutionEnvironment(path, exEnvir);
517
+ return exEnvir;
518
+ }
491
519
  }
@@ -52,6 +52,7 @@ import { V1_buildMilestoningProperties } from './helpers/V1_MilestoneBuilderHelp
52
52
  import type { V1_DataElement } from '../../../model/packageableElements/data/V1_DataElement.js';
53
53
  import { V1_buildTestSuite } from './helpers/V1_TestBuilderHelper.js';
54
54
  import { MappingTestSuite } from '../../../../../../../graph/metamodel/pure/packageableElements/mapping/MappingTestSuite.js';
55
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
55
56
 
56
57
  export class V1_ElementFourthPassBuilder
57
58
  implements V1_PackageableElementVisitor<void>
@@ -124,6 +125,12 @@ export class V1_ElementFourthPassBuilder
124
125
  );
125
126
  }
126
127
 
128
+ visit_ExecutionEnvironmentInstance(
129
+ element: V1_ExecutionEnvironmentInstance,
130
+ ): void {
131
+ throw new UnsupportedOperationError();
132
+ }
133
+
127
134
  visit_Mapping(element: V1_Mapping): void {
128
135
  const path = V1_buildFullPath(element.package, element.name);
129
136
  const mapping = this.context.currentSubGraph.getOwnMapping(path);
@@ -87,6 +87,8 @@ import { V1_buildFunctionSignature } from '../../../helpers/V1_DomainHelper.js';
87
87
  import { getFunctionName } from '../../../../../../../graph/helpers/DomainHelper.js';
88
88
  import { GraphBuilderError } from '../../../../../../GraphManagerUtils.js';
89
89
  import { PostValidation } from '../../../../../../../graph/metamodel/pure/packageableElements/service/PostValidation.js';
90
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
91
+ import { V1_buildExecutionParameters } from './V1_ExecutionEnvironmentBuilderHelper.js';
90
92
 
91
93
  export class V1_ElementSecondPassBuilder
92
94
  implements V1_PackageableElementVisitor<void>
@@ -423,4 +425,15 @@ export class V1_ElementSecondPassBuilder
423
425
  }
424
426
  dataElement.data = V1_buildEmbeddedData(element.data, this.context);
425
427
  }
428
+
429
+ visit_ExecutionEnvironmentInstance(
430
+ element: V1_ExecutionEnvironmentInstance,
431
+ ): void {
432
+ const execEnv = this.context.currentSubGraph.getOwnExecutionEnvironment(
433
+ V1_buildFullPath(element.package, element.name),
434
+ );
435
+ execEnv.executionParameters = element.executionParameters.map((e) =>
436
+ V1_buildExecutionParameters(e, this.context),
437
+ );
438
+ }
426
439
  }
@@ -59,6 +59,7 @@ import type { V1_SectionIndex } from '../../../model/packageableElements/section
59
59
  import { GraphBuilderError } from '../../../../../../../graphManager/GraphManagerUtils.js';
60
60
  import type { V1_DataElement } from '../../../model/packageableElements/data/V1_DataElement.js';
61
61
  import { V1_TEMPORARY__buildMilestoningClass } from './helpers/V1_MilestoneBuilderHelper.js';
62
+ import type { V1_ExecutionEnvironmentInstance } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
62
63
 
63
64
  export class V1_ElementThirdPassBuilder
64
65
  implements V1_PackageableElementVisitor<void>
@@ -87,6 +88,12 @@ export class V1_ElementThirdPassBuilder
87
88
  throw new UnsupportedOperationError();
88
89
  }
89
90
 
91
+ visit_ExecutionEnvironmentInstance(
92
+ element: V1_ExecutionEnvironmentInstance,
93
+ ): void {
94
+ throw new UnsupportedOperationError();
95
+ }
96
+
90
97
  visit_Class(element: V1_Class): void {
91
98
  const _class = this.context.currentSubGraph.getOwnClass(
92
99
  V1_buildFullPath(element.package, element.name),
@@ -0,0 +1,88 @@
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
+ assertNonNullable,
19
+ UnsupportedOperationError,
20
+ } from '@finos/legend-shared';
21
+ import {
22
+ type Runtime,
23
+ RuntimePointer,
24
+ } from '../../../../../../../graph/metamodel/pure/packageableElements/runtime/Runtime.js';
25
+ import {
26
+ type ExecutionParameters,
27
+ MultiExecutionParameters,
28
+ SingleExecutionParameters,
29
+ } from '../../../../../../../graph/metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
30
+ import {
31
+ type V1_Runtime,
32
+ V1_EngineRuntime,
33
+ V1_RuntimePointer,
34
+ } from '../../../model/packageableElements/runtime/V1_Runtime.js';
35
+ import {
36
+ type V1_ExecutionParameters,
37
+ V1_MultiExecutionParameters,
38
+ V1_SingleExecutionParameters,
39
+ } from '../../../model/packageableElements/service/V1_ExecutionEnvironmentInstance.js';
40
+ import { V1_buildEngineRuntime } from './helpers/V1_RuntimeBuilderHelper.js';
41
+ import type { V1_GraphBuilderContext } from './V1_GraphBuilderContext.js';
42
+
43
+ const buildExecutionRuntime = (
44
+ runtime: V1_Runtime,
45
+ context: V1_GraphBuilderContext,
46
+ ): Runtime => {
47
+ if (runtime instanceof V1_RuntimePointer) {
48
+ assertNonNullable(
49
+ runtime.runtime,
50
+ `Runtime pointer 'runtime' field is missing`,
51
+ );
52
+ return new RuntimePointer(context.resolveRuntime(runtime.runtime));
53
+ } else if (runtime instanceof V1_EngineRuntime) {
54
+ return V1_buildEngineRuntime(runtime, context);
55
+ }
56
+ throw new UnsupportedOperationError();
57
+ };
58
+
59
+ export const V1_buildSingleExecutionParameters = (
60
+ protocol: V1_SingleExecutionParameters,
61
+ context: V1_GraphBuilderContext,
62
+ ): SingleExecutionParameters => {
63
+ const element = new SingleExecutionParameters();
64
+ element.key = protocol.key;
65
+ element.mapping = context.resolveMapping(protocol.mapping);
66
+ element.runtime = buildExecutionRuntime(protocol.runtime, context);
67
+
68
+ return element;
69
+ };
70
+
71
+ export const V1_buildExecutionParameters = (
72
+ protocol: V1_ExecutionParameters,
73
+ context: V1_GraphBuilderContext,
74
+ ): ExecutionParameters => {
75
+ if (protocol instanceof V1_SingleExecutionParameters) {
76
+ return V1_buildSingleExecutionParameters(protocol, context);
77
+ } else if (protocol instanceof V1_MultiExecutionParameters) {
78
+ const element = new MultiExecutionParameters();
79
+ element.masterKey = protocol.masterKey;
80
+ element.singleExecutionParameters = protocol.singleExecutionParameters.map(
81
+ (e) => V1_buildSingleExecutionParameters(e, context),
82
+ );
83
+ return element;
84
+ }
85
+ throw new UnsupportedOperationError(
86
+ 'Unsupported execution environment parameter type',
87
+ );
88
+ };