@finos/legend-graph 1.2.1 → 1.3.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 (313) hide show
  1. package/lib/GraphManagerState.d.ts +2 -2
  2. package/lib/GraphManagerState.d.ts.map +1 -1
  3. package/lib/GraphManagerState.js +2 -2
  4. package/lib/GraphManagerState.js.map +1 -1
  5. package/lib/GraphManagerTestUtils.d.ts +5 -2
  6. package/lib/GraphManagerTestUtils.d.ts.map +1 -1
  7. package/lib/GraphManagerTestUtils.js +10 -3
  8. package/lib/GraphManagerTestUtils.js.map +1 -1
  9. package/lib/MetaModelConst.d.ts +3 -1
  10. package/lib/MetaModelConst.d.ts.map +1 -1
  11. package/lib/MetaModelConst.js +2 -0
  12. package/lib/MetaModelConst.js.map +1 -1
  13. package/lib/graph/DSLExternalFormat_Extension.d.ts +22 -0
  14. package/lib/graph/DSLExternalFormat_Extension.d.ts.map +1 -0
  15. package/lib/graph/DSLExternalFormat_Extension.js +31 -0
  16. package/lib/graph/DSLExternalFormat_Extension.js.map +1 -0
  17. package/lib/graph/DSLExternalFormat_PureGraphPlugin.d.ts +23 -0
  18. package/lib/graph/DSLExternalFormat_PureGraphPlugin.d.ts.map +1 -0
  19. package/lib/graph/DSLExternalFormat_PureGraphPlugin.js +28 -0
  20. package/lib/graph/DSLExternalFormat_PureGraphPlugin.js.map +1 -0
  21. package/lib/graph/PureModel.d.ts.map +1 -1
  22. package/lib/graph/PureModel.js +6 -3
  23. package/lib/graph/PureModel.js.map +1 -1
  24. package/lib/graphManager/AbstractPureGraphManager.d.ts +4 -0
  25. package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
  26. package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
  27. package/lib/graphManager/DSLExternalFormat_GraphManagerHelper.d.ts +21 -0
  28. package/lib/graphManager/DSLExternalFormat_GraphManagerHelper.d.ts.map +1 -0
  29. package/lib/graphManager/DSLExternalFormat_GraphManagerHelper.js +21 -0
  30. package/lib/graphManager/DSLExternalFormat_GraphManagerHelper.js.map +1 -0
  31. package/lib/graphManager/DSLExternalFormat_PureGraphManagerPlugin.d.ts +25 -0
  32. package/lib/graphManager/DSLExternalFormat_PureGraphManagerPlugin.d.ts.map +1 -0
  33. package/lib/graphManager/DSLExternalFormat_PureGraphManagerPlugin.js +67 -0
  34. package/lib/graphManager/DSLExternalFormat_PureGraphManagerPlugin.js.map +1 -0
  35. package/lib/graphManager/GraphBuilderReport.d.ts +18 -0
  36. package/lib/graphManager/GraphBuilderReport.d.ts.map +1 -0
  37. package/lib/graphManager/GraphBuilderReport.js +18 -0
  38. package/lib/graphManager/GraphBuilderReport.js.map +1 -0
  39. package/lib/graphManager/GraphManagerLogEvent.d.ts +1 -0
  40. package/lib/graphManager/GraphManagerLogEvent.d.ts.map +1 -1
  41. package/lib/graphManager/GraphManagerLogEvent.js +1 -0
  42. package/lib/graphManager/GraphManagerLogEvent.js.map +1 -1
  43. package/lib/graphManager/action/EngineError.d.ts +3 -0
  44. package/lib/graphManager/action/EngineError.d.ts.map +1 -1
  45. package/lib/graphManager/action/EngineError.js +3 -0
  46. package/lib/graphManager/action/EngineError.js.map +1 -1
  47. package/lib/graphManager/action/externalFormat/ExternalFormatDescription.d.ts +26 -0
  48. package/lib/graphManager/action/externalFormat/ExternalFormatDescription.d.ts.map +1 -0
  49. package/lib/graphManager/action/externalFormat/ExternalFormatDescription.js +27 -0
  50. package/lib/graphManager/action/externalFormat/ExternalFormatDescription.js.map +1 -0
  51. package/lib/index.d.ts +12 -1
  52. package/lib/index.d.ts.map +1 -1
  53. package/lib/index.js +13 -1
  54. package/lib/index.js.map +1 -1
  55. package/lib/models/DSLExternalFormat_ModelUtils.d.ts +24 -0
  56. package/lib/models/DSLExternalFormat_ModelUtils.d.ts.map +1 -0
  57. package/lib/models/DSLExternalFormat_ModelUtils.js +25 -0
  58. package/lib/models/DSLExternalFormat_ModelUtils.js.map +1 -0
  59. package/lib/models/metamodels/pure/packageableElements/PackageableElement.js +1 -1
  60. package/lib/models/metamodels/pure/packageableElements/PackageableElement.js.map +1 -1
  61. package/lib/models/metamodels/pure/packageableElements/domain/Package.d.ts.map +1 -1
  62. package/lib/models/metamodels/pure/packageableElements/domain/Package.js +4 -2
  63. package/lib/models/metamodels/pure/packageableElements/domain/Package.js.map +1 -1
  64. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.d.ts +29 -0
  65. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.d.ts.map +1 -0
  66. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.js +45 -0
  67. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.js.map +1 -0
  68. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.d.ts +23 -0
  69. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.d.ts.map +1 -0
  70. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.js +35 -0
  71. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.js.map +1 -0
  72. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.d.ts +28 -0
  73. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.d.ts.map +1 -0
  74. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.js +53 -0
  75. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.js.map +1 -0
  76. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.d.ts +29 -0
  77. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.d.ts.map +1 -0
  78. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.js +55 -0
  79. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.js.map +1 -0
  80. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.d.ts +25 -0
  81. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.d.ts.map +1 -0
  82. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.js +38 -0
  83. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.js.map +1 -0
  84. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.d.ts +35 -0
  85. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.d.ts.map +1 -0
  86. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.js +65 -0
  87. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.js.map +1 -0
  88. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.d.ts +31 -0
  89. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.d.ts.map +1 -0
  90. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.js +61 -0
  91. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.js.map +1 -0
  92. package/lib/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.d.ts +33 -0
  93. package/lib/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.d.ts.map +1 -0
  94. package/lib/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.js +46 -0
  95. package/lib/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.js.map +1 -0
  96. package/lib/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.d.ts +2 -1
  97. package/lib/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.d.ts.map +1 -1
  98. package/lib/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.js +1 -1
  99. package/lib/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.js.map +1 -1
  100. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.d.ts +3 -0
  101. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.d.ts.map +1 -1
  102. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.js +1 -0
  103. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.js.map +1 -1
  104. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts +9 -3
  105. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts.map +1 -1
  106. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.js +32 -8
  107. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.js.map +1 -1
  108. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.d.ts +3 -0
  109. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.d.ts.map +1 -1
  110. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js +7 -0
  111. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js.map +1 -1
  112. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.d.ts +4 -0
  113. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.d.ts.map +1 -1
  114. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.js +11 -0
  115. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.js.map +1 -1
  116. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts +34 -0
  117. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts.map +1 -0
  118. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js +253 -0
  119. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js.map +1 -0
  120. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts +4 -0
  121. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  122. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js +23 -4
  123. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js.map +1 -1
  124. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts +4 -0
  125. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts.map +1 -1
  126. package/lib/models/protocols/pure/v1/engine/V1_Engine.js +15 -1
  127. package/lib/models/protocols/pure/v1/engine/V1_Engine.js.map +1 -1
  128. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.d.ts +6 -2
  129. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.d.ts.map +1 -1
  130. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.js +31 -16
  131. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.js.map +1 -1
  132. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts +10 -0
  133. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
  134. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js +10 -0
  135. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
  136. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.d.ts +28 -0
  137. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.d.ts.map +1 -0
  138. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.js +38 -0
  139. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.js.map +1 -0
  140. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.d.ts +25 -0
  141. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.d.ts.map +1 -0
  142. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.js +35 -0
  143. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.js.map +1 -0
  144. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextData.d.ts +0 -2
  145. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextData.d.ts.map +1 -1
  146. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextData.js +0 -3
  147. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextData.js.map +1 -1
  148. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.d.ts +24 -0
  149. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.d.ts.map +1 -0
  150. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.js +32 -0
  151. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.js.map +1 -0
  152. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.d.ts +21 -0
  153. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.d.ts.map +1 -0
  154. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.js +24 -0
  155. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.js.map +1 -0
  156. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.d.ts +23 -0
  157. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.d.ts.map +1 -0
  158. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.js +31 -0
  159. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.js.map +1 -0
  160. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.d.ts +25 -0
  161. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.d.ts.map +1 -0
  162. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.js +34 -0
  163. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.js.map +1 -0
  164. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.d.ts +21 -0
  165. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.d.ts.map +1 -0
  166. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.js +24 -0
  167. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.js.map +1 -0
  168. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.d.ts +28 -0
  169. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.d.ts.map +1 -0
  170. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.js +38 -0
  171. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.js.map +1 -0
  172. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.d.ts +22 -0
  173. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.d.ts.map +1 -0
  174. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.js +29 -0
  175. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.js.map +1 -0
  176. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.d.ts +2 -0
  177. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.d.ts.map +1 -1
  178. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.js.map +1 -1
  179. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.d.ts +25 -0
  180. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.d.ts.map +1 -0
  181. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.js +34 -0
  182. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.js.map +1 -0
  183. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.d.ts +2 -1
  184. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.d.ts.map +1 -1
  185. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.js +1 -1
  186. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.js.map +1 -1
  187. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts +4 -1
  188. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts.map +1 -1
  189. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js +8 -2
  190. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js.map +1 -1
  191. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.d.ts +2 -0
  192. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.d.ts.map +1 -1
  193. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.js +2 -0
  194. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.js.map +1 -1
  195. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.d.ts +3 -0
  196. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.d.ts.map +1 -1
  197. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.js +5 -0
  198. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.js.map +1 -1
  199. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.d.ts.map +1 -1
  200. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +4 -1
  201. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  202. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.d.ts.map +1 -1
  203. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.js +5 -2
  204. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.js.map +1 -1
  205. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts +2 -0
  206. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts.map +1 -1
  207. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js +34 -2
  208. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js.map +1 -1
  209. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.d.ts +22 -0
  210. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.d.ts.map +1 -0
  211. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.js +19 -0
  212. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.js.map +1 -0
  213. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.d.ts +2 -0
  214. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.d.ts.map +1 -1
  215. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js +8 -0
  216. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js.map +1 -1
  217. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.d.ts +2 -0
  218. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.d.ts.map +1 -1
  219. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js +3 -0
  220. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js.map +1 -1
  221. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts.map +1 -1
  222. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js +8 -0
  223. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js.map +1 -1
  224. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts.map +1 -1
  225. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js +5 -2
  226. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js.map +1 -1
  227. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.d.ts.map +1 -1
  228. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js +5 -3
  229. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js.map +1 -1
  230. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -1
  231. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js.map +1 -1
  232. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.d.ts.map +1 -1
  233. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js +4 -1
  234. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js.map +1 -1
  235. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.d.ts +25 -0
  236. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.d.ts.map +1 -0
  237. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.js +62 -0
  238. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.js.map +1 -0
  239. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DatabaseSerializationHelper.d.ts.map +1 -1
  240. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DatabaseSerializationHelper.js +10 -1
  241. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DatabaseSerializationHelper.js.map +1 -1
  242. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.d.ts.map +1 -1
  243. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.js +23 -2
  244. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.js.map +1 -1
  245. package/lib/package.json +12 -8
  246. package/package.json +15 -11
  247. package/src/GraphManagerState.ts +10 -3
  248. package/src/GraphManagerTestUtils.tsx +17 -3
  249. package/src/MetaModelConst.ts +2 -0
  250. package/src/graph/DSLExternalFormat_Extension.ts +37 -0
  251. package/src/graph/DSLExternalFormat_PureGraphPlugin.ts +35 -0
  252. package/src/graph/PureModel.ts +8 -2
  253. package/src/graphManager/AbstractPureGraphManager.ts +13 -0
  254. package/src/graphManager/DSLExternalFormat_GraphManagerHelper.ts +30 -0
  255. package/src/graphManager/DSLExternalFormat_PureGraphManagerPlugin.ts +86 -0
  256. package/src/graphManager/GraphBuilderReport.ts +17 -0
  257. package/src/graphManager/GraphManagerLogEvent.ts +1 -1
  258. package/src/graphManager/action/EngineError.ts +3 -0
  259. package/src/graphManager/action/externalFormat/ExternalFormatDescription.ts +30 -0
  260. package/src/index.ts +16 -2
  261. package/src/models/DSLExternalFormat_ModelUtils.ts +24 -0
  262. package/src/models/metamodels/pure/packageableElements/PackageableElement.ts +1 -1
  263. package/src/models/metamodels/pure/packageableElements/domain/Package.ts +3 -2
  264. package/src/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.ts +57 -0
  265. package/src/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.ts +39 -0
  266. package/src/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.ts +59 -0
  267. package/src/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.ts +74 -0
  268. package/src/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.ts +44 -0
  269. package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.ts +80 -0
  270. package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.ts +98 -0
  271. package/src/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.ts +81 -0
  272. package/src/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.ts +1 -1
  273. package/src/models/metamodels/pure/packageableElements/mapping/SetImplementation.ts +5 -0
  274. package/src/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.ts +40 -9
  275. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.ts +9 -0
  276. package/src/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.ts +14 -0
  277. package/src/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.ts +417 -0
  278. package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +46 -3
  279. package/src/models/protocols/pure/v1/engine/V1_Engine.ts +32 -0
  280. package/src/models/protocols/pure/v1/engine/V1_EngineHelper.ts +59 -29
  281. package/src/models/protocols/pure/v1/engine/V1_EngineServerClient.ts +28 -0
  282. package/src/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.ts +46 -0
  283. package/src/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.ts +44 -0
  284. package/src/models/protocols/pure/v1/model/context/V1_PureModelContextData.ts +0 -9
  285. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.ts +42 -0
  286. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.ts +26 -0
  287. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.ts +33 -0
  288. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.ts +43 -0
  289. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.ts +26 -0
  290. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.ts +45 -0
  291. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.ts +31 -0
  292. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.ts +4 -0
  293. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.ts +46 -0
  294. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.ts +1 -1
  295. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.ts +8 -2
  296. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.ts +3 -0
  297. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.ts +9 -0
  298. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +4 -1
  299. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.ts +4 -0
  300. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.ts +53 -1
  301. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.ts +40 -0
  302. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.ts +32 -0
  303. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.ts +7 -0
  304. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.ts +11 -0
  305. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.ts +4 -0
  306. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.ts +18 -5
  307. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.ts +1 -2
  308. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.ts +4 -1
  309. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.ts +90 -0
  310. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DatabaseSerializationHelper.ts +13 -0
  311. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.ts +30 -1
  312. package/tsconfig.json +28 -0
  313. package/CHANGELOG.md +0 -229
@@ -0,0 +1,417 @@
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 packageJson from '../../../../package.json';
18
+ import {
19
+ type PlainObject,
20
+ assertType,
21
+ guaranteeNonEmptyString,
22
+ assertNonNullable,
23
+ guaranteeNonNullable,
24
+ } from '@finos/legend-shared';
25
+ import { deserialize, serialize } from 'serializr';
26
+ import type { PureModel } from '../../../graph/PureModel';
27
+ import {
28
+ getBinding,
29
+ getSchemaSet,
30
+ } from '../../../graphManager/DSLExternalFormat_GraphManagerHelper';
31
+ import type { Connection } from '../../metamodels/pure/packageableElements/connection/Connection';
32
+ import type { Mapping } from '../../metamodels/pure/packageableElements/mapping/Mapping';
33
+ import type { PackageableElement } from '../../metamodels/pure/packageableElements/PackageableElement';
34
+ import {
35
+ PackageableElementReference,
36
+ toOptionalPackageableElementReference,
37
+ } from '../../metamodels/pure/packageableElements/PackageableElementReference';
38
+ import type { Runtime } from '../../metamodels/pure/packageableElements/runtime/Runtime';
39
+ import { ExternalFormatConnection } from '../../metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection';
40
+ import { UrlStream } from '../../metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream';
41
+ import { Schema } from '../../metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema';
42
+ import { SchemaSet } from '../../metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet';
43
+ import { Binding } from '../../metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding';
44
+ import { ModelUnit } from '../../metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit';
45
+ import type { Store } from '../../metamodels/pure/packageableElements/store/Store';
46
+ import type {
47
+ DSLMapping_PureProtocolProcessorPlugin_Extension,
48
+ V1_ConnectionBuilder,
49
+ V1_ConnectionProtocolDeserializer,
50
+ V1_ConnectionProtocolSerializer,
51
+ V1_ConnectionTransformer,
52
+ } from './DSLMapping_PureProtocolProcessorPlugin_Extension';
53
+ import {
54
+ type V1_ElementProtocolClassifierPathGetter,
55
+ type V1_ElementProtocolDeserializer,
56
+ type V1_ElementProtocolSerializer,
57
+ type V1_ElementTransformer,
58
+ type V1_ExecutionInputGetter,
59
+ PureProtocolProcessorPlugin,
60
+ } from './PureProtocolProcessorPlugin';
61
+ import type { V1_PureModelContextData } from './v1/model/context/V1_PureModelContextData';
62
+ import type { V1_Connection } from './v1/model/packageableElements/connection/V1_Connection';
63
+ import { V1_ExternalFormatConnection } from './v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection';
64
+ import { V1_UrlStream } from './v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream';
65
+ import { V1_Schema } from './v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema';
66
+ import { V1_SchemaSet } from './v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet';
67
+ import { V1_Binding } from './v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding';
68
+ import { V1_ModelUnit } from './v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit';
69
+ import type { V1_PackageableElement } from './v1/model/packageableElements/V1_PackageableElement';
70
+ import {
71
+ V1_initPackageableElement,
72
+ V1_transformElementReference,
73
+ } from './v1/transformation/pureGraph/from/V1_CoreTransformerHelper';
74
+ import type { V1_GraphTransformerContext } from './v1/transformation/pureGraph/from/V1_GraphTransformerContext';
75
+ import {
76
+ V1_resolveBinding,
77
+ V1_resolveSchemaSet,
78
+ } from './v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper';
79
+ import { V1_ElementBuilder } from './v1/transformation/pureGraph/to/V1_ElementBuilder';
80
+ import type { V1_GraphBuilderContext } from './v1/transformation/pureGraph/to/V1_GraphBuilderContext';
81
+ import {
82
+ V1_bindingModelSchema,
83
+ V1_BINDING_ELEMENT_PROTOCOL_TYPE,
84
+ V1_externalFormatConnectionModelSchema,
85
+ V1_EXTERNAL_FORMAT_CONNECTION_ELEMENT_PROTOCOL_TYPE,
86
+ V1_schemaSetModelSchema,
87
+ V1_SCHEMA_SET_ELEMENT_PROTOCOL_TYPE,
88
+ } from './v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper';
89
+
90
+ const BINDING_ELEMENT_CLASSIFIER_PATH =
91
+ 'meta::external::shared::format::binding::Binding';
92
+ const SCHEMA_SET_ELEMENT_CLASSIFIER_PATH =
93
+ 'meta::external::shared::format::metamodel::SchemaSet';
94
+
95
+ export class DSLExternalFormat_PureProtocolProcessorPlugin
96
+ extends PureProtocolProcessorPlugin
97
+ implements DSLMapping_PureProtocolProcessorPlugin_Extension
98
+ {
99
+ constructor() {
100
+ super(
101
+ packageJson.extensions.dsl_external_format_pureProtocolProcessorPlugin,
102
+ packageJson.version,
103
+ );
104
+ }
105
+
106
+ override V1_getExtraElementBuilders(): V1_ElementBuilder<V1_PackageableElement>[] {
107
+ return [
108
+ new V1_ElementBuilder<V1_Binding>({
109
+ elementClassName: Binding.name,
110
+ _class: V1_Binding,
111
+ firstPass: (
112
+ elementProtocol: V1_PackageableElement,
113
+ context: V1_GraphBuilderContext,
114
+ ): PackageableElement => {
115
+ assertType(elementProtocol, V1_Binding);
116
+ const element = new Binding(elementProtocol.name);
117
+ const path = context.currentSubGraph.buildPath(
118
+ elementProtocol.package,
119
+ elementProtocol.name,
120
+ );
121
+ context.currentSubGraph
122
+ .getOrCreatePackage(elementProtocol.package)
123
+ .addElement(element);
124
+ context.currentSubGraph.setOwnStore(path, element);
125
+ return element;
126
+ },
127
+ secondPass: (
128
+ elementProtocol: V1_PackageableElement,
129
+ context: V1_GraphBuilderContext,
130
+ ): void => {
131
+ assertType(elementProtocol, V1_Binding);
132
+ const path = context.graph.buildPath(
133
+ elementProtocol.package,
134
+ elementProtocol.name,
135
+ );
136
+ const element = getBinding(path, context.graph);
137
+ const schemaSet = elementProtocol.schemaSet
138
+ ? V1_resolveSchemaSet(elementProtocol.schemaSet, context)
139
+ : undefined;
140
+ element.schemaId = elementProtocol.schemaId;
141
+ element.schemaSet = toOptionalPackageableElementReference(schemaSet);
142
+
143
+ element.contentType = guaranteeNonEmptyString(
144
+ elementProtocol.contentType,
145
+ `Binding 'contentType' '${elementProtocol.contentType}' is not supported`,
146
+ );
147
+ assertNonNullable(
148
+ elementProtocol.modelUnit,
149
+ `Binding 'modelUnit' field is missing`,
150
+ );
151
+ const modelUnit = new ModelUnit();
152
+ modelUnit.packageableElementIncludes =
153
+ elementProtocol.modelUnit.packageableElementIncludes.map((e) =>
154
+ context.resolveElement(e, true),
155
+ );
156
+ modelUnit.packageableElementExcludes =
157
+ elementProtocol.modelUnit.packageableElementExcludes.map((e) =>
158
+ context.resolveElement(e, true),
159
+ );
160
+ element.modelUnit = modelUnit;
161
+ },
162
+ }),
163
+ new V1_ElementBuilder<V1_SchemaSet>({
164
+ elementClassName: SchemaSet.name,
165
+ _class: V1_SchemaSet,
166
+ firstPass: (
167
+ elementProtocol: V1_PackageableElement,
168
+ context: V1_GraphBuilderContext,
169
+ ): PackageableElement => {
170
+ assertType(elementProtocol, V1_SchemaSet);
171
+ const element = new SchemaSet(elementProtocol.name);
172
+ const path = context.currentSubGraph.buildPath(
173
+ elementProtocol.package,
174
+ elementProtocol.name,
175
+ );
176
+ context.currentSubGraph.setOwnElementInExtension(
177
+ path,
178
+ element,
179
+ SchemaSet,
180
+ );
181
+ return element;
182
+ },
183
+ secondPass: (
184
+ elementProtocol: V1_PackageableElement,
185
+ context: V1_GraphBuilderContext,
186
+ ): void => {
187
+ assertType(elementProtocol, V1_SchemaSet);
188
+ const path = context.graph.buildPath(
189
+ elementProtocol.package,
190
+ elementProtocol.name,
191
+ );
192
+ const element = getSchemaSet(path, context.graph);
193
+ element.format = guaranteeNonEmptyString(elementProtocol.format);
194
+ element.schemas = elementProtocol.schemas.map((schema) => {
195
+ const schemaElement = new Schema();
196
+ schemaElement.setContent(
197
+ guaranteeNonEmptyString(
198
+ schema.content,
199
+ `Schema 'content' field is missing or empty`,
200
+ ),
201
+ );
202
+ schemaElement.id = schema.id;
203
+ schemaElement.location = schema.location;
204
+ return schemaElement;
205
+ });
206
+ },
207
+ }),
208
+ ];
209
+ }
210
+
211
+ override V1_getExtraElementClassifierPathGetters(): V1_ElementProtocolClassifierPathGetter[] {
212
+ return [
213
+ (elementProtocol: V1_PackageableElement): string | undefined => {
214
+ if (elementProtocol instanceof V1_Binding) {
215
+ return BINDING_ELEMENT_CLASSIFIER_PATH;
216
+ } else if (elementProtocol instanceof V1_SchemaSet) {
217
+ return SCHEMA_SET_ELEMENT_CLASSIFIER_PATH;
218
+ }
219
+ return undefined;
220
+ },
221
+ ];
222
+ }
223
+
224
+ override V1_getExtraElementProtocolSerializers(): V1_ElementProtocolSerializer[] {
225
+ return [
226
+ (
227
+ elementProtocol: V1_PackageableElement,
228
+ plugins: PureProtocolProcessorPlugin[],
229
+ ): PlainObject<V1_PackageableElement> | undefined => {
230
+ if (elementProtocol instanceof V1_Binding) {
231
+ return serialize(V1_bindingModelSchema, elementProtocol);
232
+ } else if (elementProtocol instanceof V1_SchemaSet) {
233
+ return serialize(V1_schemaSetModelSchema, elementProtocol);
234
+ }
235
+ return undefined;
236
+ },
237
+ ];
238
+ }
239
+
240
+ override V1_getExtraElementProtocolDeserializers(): V1_ElementProtocolDeserializer[] {
241
+ return [
242
+ (
243
+ json: PlainObject<V1_PackageableElement>,
244
+ plugins: PureProtocolProcessorPlugin[],
245
+ ): V1_PackageableElement | undefined => {
246
+ if (json._type === V1_BINDING_ELEMENT_PROTOCOL_TYPE) {
247
+ return deserialize(V1_bindingModelSchema, json);
248
+ } else if (json._type === V1_SCHEMA_SET_ELEMENT_PROTOCOL_TYPE) {
249
+ return deserialize(V1_schemaSetModelSchema, json);
250
+ }
251
+ return undefined;
252
+ },
253
+ ];
254
+ }
255
+
256
+ override V1_getExtraElementTransformers(): V1_ElementTransformer[] {
257
+ return [
258
+ (
259
+ metamodel: PackageableElement,
260
+ context: V1_GraphTransformerContext,
261
+ ): V1_PackageableElement | undefined => {
262
+ if (metamodel instanceof Binding) {
263
+ const protocol = new V1_Binding();
264
+ V1_initPackageableElement(protocol, metamodel);
265
+ protocol.name = metamodel.name;
266
+ protocol.package = metamodel.package?.fullPath ?? '';
267
+ protocol.schemaId = metamodel.schemaId;
268
+ protocol.schemaSet = metamodel.schemaSet.valueForSerialization;
269
+ protocol.contentType = metamodel.contentType;
270
+ const modelUnit = new V1_ModelUnit();
271
+ modelUnit.packageableElementExcludes =
272
+ metamodel.modelUnit.packageableElementExcludes.map((path) =>
273
+ path instanceof PackageableElementReference
274
+ ? path.valueForSerialization ?? ''
275
+ : path,
276
+ );
277
+ modelUnit.packageableElementIncludes =
278
+ metamodel.modelUnit.packageableElementIncludes.map((path) =>
279
+ path instanceof PackageableElementReference
280
+ ? path.valueForSerialization ?? ''
281
+ : path,
282
+ );
283
+ protocol.modelUnit = modelUnit;
284
+ protocol.includedStores = [];
285
+ return protocol;
286
+ } else if (metamodel instanceof SchemaSet) {
287
+ const protocol = new V1_SchemaSet();
288
+ V1_initPackageableElement(protocol, metamodel);
289
+ protocol.name = metamodel.name;
290
+ protocol.package = metamodel.package?.fullPath ?? '';
291
+ protocol.format = metamodel.format;
292
+ protocol.schemas = metamodel.schemas.map((schema) => {
293
+ const schemaProtocol = new V1_Schema();
294
+ schemaProtocol.content = schema.content;
295
+ schemaProtocol.id = schema.id;
296
+ schemaProtocol.location = schema.location;
297
+ return schemaProtocol;
298
+ });
299
+ return protocol;
300
+ }
301
+ return undefined;
302
+ },
303
+ ];
304
+ }
305
+
306
+ override V1_getExtraExecutionInputGetters(): V1_ExecutionInputGetter[] {
307
+ return [
308
+ (
309
+ graph: PureModel,
310
+ mapping: Mapping,
311
+ runtime: Runtime,
312
+ protocolGraph: V1_PureModelContextData,
313
+ ): V1_PackageableElement[] =>
314
+ protocolGraph.elements.filter(
315
+ (element) => element instanceof V1_SchemaSet,
316
+ ),
317
+ ];
318
+ }
319
+
320
+ override V1_getExtraSourceInformationKeys(): string[] {
321
+ return ['contentSourceInformation'];
322
+ }
323
+
324
+ V1_getExtraConnectionBuilders(): V1_ConnectionBuilder[] {
325
+ return [
326
+ (
327
+ connection: V1_Connection,
328
+ context: V1_GraphBuilderContext,
329
+ store?: PackageableElementReference<Store> | undefined,
330
+ ): Connection | undefined => {
331
+ if (connection instanceof V1_ExternalFormatConnection) {
332
+ const Store = !store
333
+ ? V1_resolveBinding(
334
+ guaranteeNonNullable(
335
+ connection.store,
336
+ `External format connection 'store' field is missing`,
337
+ ),
338
+ context,
339
+ )
340
+ : connection.store
341
+ ? V1_resolveBinding(connection.store, context)
342
+ : ((): PackageableElementReference<Binding> => {
343
+ assertType(
344
+ store.value,
345
+ Binding,
346
+ `External format connection store must be a Binding`,
347
+ );
348
+ return store as PackageableElementReference<Binding>;
349
+ })();
350
+ const externalFormatConnection = new ExternalFormatConnection(Store);
351
+ assertNonNullable(
352
+ connection.externalSource,
353
+ `External format connection 'externalSource' field is missing`,
354
+ );
355
+ const urlStream = new UrlStream();
356
+ urlStream.setUrl(
357
+ guaranteeNonEmptyString(
358
+ connection.externalSource.url,
359
+ `URL stream 'url' field is missing or empty`,
360
+ ),
361
+ );
362
+ externalFormatConnection.externalSource = urlStream;
363
+ return externalFormatConnection;
364
+ }
365
+ return undefined;
366
+ },
367
+ ];
368
+ }
369
+
370
+ V1_getExtraConnectionTransformers(): V1_ConnectionTransformer[] {
371
+ return [
372
+ (
373
+ metamodel: Connection,
374
+ context: V1_GraphTransformerContext,
375
+ ): V1_Connection | undefined => {
376
+ if (metamodel instanceof ExternalFormatConnection) {
377
+ const connection = new V1_ExternalFormatConnection();
378
+ connection.store = V1_transformElementReference(metamodel.store);
379
+ const urlStream = new V1_UrlStream();
380
+ urlStream.url = metamodel.externalSource.url;
381
+ connection.externalSource = urlStream;
382
+ return connection;
383
+ }
384
+ return undefined;
385
+ },
386
+ ];
387
+ }
388
+
389
+ V1_getExtraConnectionProtocolSerializers(): V1_ConnectionProtocolSerializer[] {
390
+ return [
391
+ (
392
+ connectionProtocol: V1_Connection,
393
+ ): PlainObject<V1_Connection> | undefined => {
394
+ if (connectionProtocol instanceof V1_ExternalFormatConnection) {
395
+ return serialize(
396
+ V1_externalFormatConnectionModelSchema,
397
+ connectionProtocol,
398
+ );
399
+ }
400
+ return undefined;
401
+ },
402
+ ];
403
+ }
404
+
405
+ V1_getExtraConnectionProtocolDeserializers(): V1_ConnectionProtocolDeserializer[] {
406
+ return [
407
+ (json: PlainObject<V1_Connection>): V1_Connection | undefined => {
408
+ if (
409
+ json._type === V1_EXTERNAL_FORMAT_CONNECTION_ELEMENT_PROTOCOL_TYPE
410
+ ) {
411
+ return deserialize(V1_externalFormatConnectionModelSchema, json);
412
+ }
413
+ return undefined;
414
+ },
415
+ ];
416
+ }
417
+ }
@@ -209,6 +209,9 @@ import {
209
209
  import { PackageableElementReference } from '../../../metamodels/pure/packageableElements/PackageableElementReference';
210
210
  import type { GraphPluginManager } from '../../../../GraphPluginManager';
211
211
  import type { QuerySearchSpecification } from '../../../../graphManager/action/query/QuerySearchSpecification';
212
+ import type { ExternalFormatDescription } from '../../../../graphManager/action/externalFormat/ExternalFormatDescription';
213
+ import type { ConfigurationProperty } from '../../../metamodels/pure/packageableElements/fileGeneration/ConfigurationProperty';
214
+ import { V1_ExternalFormatModelGenerationInput } from './engine/externalFormat/V1_ExternalFormatModelGeneration';
212
215
 
213
216
  const V1_FUNCTION_SUFFIX_MULTIPLICITY_INFINITE = 'MANY';
214
217
 
@@ -480,7 +483,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
480
483
  LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_SYSTEM_BUILT),
481
484
  Date.now() - startTime,
482
485
  'ms',
483
- `[profile: ${systemModel.ownProfiles.length}, enumeration: ${systemModel.ownEnumerations.length}]`,
486
+ `[class: ${systemModel.ownClasses.length}, profile: ${systemModel.ownProfiles.length}, enumeration: ${systemModel.ownEnumerations.length}]`,
484
487
  );
485
488
  }
486
489
  systemModel.buildState.pass();
@@ -507,6 +510,18 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
507
510
  options?: GraphBuilderOptions,
508
511
  ): GeneratorFn<void> {
509
512
  const startTime = Date.now();
513
+ if (!options?.quiet) {
514
+ this.log.info(
515
+ LogEvent.create(
516
+ GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_DEPENDENCIES_ENTITIES_FETCHED,
517
+ ),
518
+ Date.now() - startTime,
519
+ 'ms',
520
+ `[projects: ${dependencyEntitiesMap.size}, entities: ${
521
+ Array.from(dependencyEntitiesMap.values()).flat().length
522
+ }]`,
523
+ );
524
+ }
510
525
  dependencyManager.buildState.reset();
511
526
  // Create a dummy graph for system processing. This is to ensure dependency models do not depend on the main graph
512
527
  const graph = new PureModel(
@@ -601,6 +616,11 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
601
616
  '[ERROR]',
602
617
  Date.now() - startTime,
603
618
  'ms',
619
+ `[elements: ${
620
+ Array.from(dependencyManager.projectDependencyModelsIndex.values())
621
+ .map((v) => v.allOwnElements)
622
+ .flat().length
623
+ }]`,
604
624
  );
605
625
  }
606
626
  dependencyManager.buildState.fail();
@@ -1724,6 +1744,26 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
1724
1744
  );
1725
1745
  }
1726
1746
 
1747
+ // ------------------------------------------- External Format --------------------------------
1748
+ getAvailableExternalFormatsDescriptions(): Promise<
1749
+ ExternalFormatDescription[]
1750
+ > {
1751
+ return this.engine.getAvailableExternalFormatsDescriptions();
1752
+ }
1753
+
1754
+ generateModelFromExternalFormat(
1755
+ configurationProperties: ConfigurationProperty[],
1756
+ graph: PureModel,
1757
+ ): Promise<string> {
1758
+ const config: Record<PropertyKey, unknown> = {};
1759
+ configurationProperties.forEach((property) => {
1760
+ config[property.name] = property.value as Record<PropertyKey, unknown>;
1761
+ });
1762
+ const model = this.getFullGraphModelData(graph);
1763
+ const input = new V1_ExternalFormatModelGenerationInput(model, config);
1764
+ return this.engine.generateModel(input);
1765
+ }
1766
+
1727
1767
  // ------------------------------------------- Import -------------------------------------------
1728
1768
 
1729
1769
  getAvailableImportConfigurationDescriptions(): Promise<
@@ -1942,8 +1982,11 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
1942
1982
  ): Promise<ServiceTestResult[]> {
1943
1983
  const protocolGraph = this.getFullGraphModelData(graph);
1944
1984
  const targetService = guaranteeNonNullable(
1945
- protocolGraph
1946
- .getElementsOfType(V1_Service)
1985
+ protocolGraph.elements
1986
+ .filter(
1987
+ (element: V1_PackageableElement): element is V1_Service =>
1988
+ element instanceof V1_Service,
1989
+ )
1947
1990
  .find((element) => element.path === service.path),
1948
1991
  `Can't run service test: service '${service.path}' not found`,
1949
1992
  );
@@ -70,6 +70,7 @@ import type { PureProtocolProcessorPlugin } from '../../PureProtocolProcessorPlu
70
70
  import {
71
71
  V1_buildCompilationError,
72
72
  V1_buildExecutionError,
73
+ V1_buildExternalFormatDescription,
73
74
  V1_buildGenerationConfigurationDescription,
74
75
  V1_buildImportConfigurationDescription,
75
76
  V1_buildParserError,
@@ -92,6 +93,9 @@ import { V1_ExecutionError } from './execution/V1_ExecutionError';
92
93
  import { V1_PureModelContextText } from '../model/context/V1_PureModelContextText';
93
94
  import { V1_QuerySearchSpecification } from './query/V1_QuerySearchSpecification';
94
95
  import type { ExecutionOptions } from '../../../../../graphManager/AbstractPureGraphManager';
96
+ import type { ExternalFormatDescription } from '../../../../../graphManager/action/externalFormat/ExternalFormatDescription';
97
+ import { V1_ExternalFormatDescription } from './externalFormat/V1_ExternalFormatDescription';
98
+ import { V1_ExternalFormatModelGenerationInput } from './externalFormat/V1_ExternalFormatModelGeneration';
95
99
 
96
100
  class V1_EngineConfig extends TEMPORARY__AbstractEngineConfig {
97
101
  private engine: V1_Engine;
@@ -500,6 +504,34 @@ export class V1_Engine {
500
504
  )
501
505
  ).map((output) => V1_GenerationOutput.serialization.fromJson(output));
502
506
  }
507
+ // ------------------------------------------- External Format -----------------------------------------
508
+
509
+ async getAvailableExternalFormatsDescriptions(): Promise<
510
+ ExternalFormatDescription[]
511
+ > {
512
+ const externalFormatDescriptions =
513
+ await this.engineServerClient.getAvailableExternalFormatsDescriptions();
514
+ return externalFormatDescriptions.map((des) =>
515
+ V1_buildExternalFormatDescription(
516
+ V1_ExternalFormatDescription.serialization.fromJson(des),
517
+ ),
518
+ );
519
+ }
520
+
521
+ async generateModel(
522
+ input: V1_ExternalFormatModelGenerationInput,
523
+ ): Promise<string> {
524
+ const pmcd = (await this.engineServerClient.generateModel(
525
+ V1_ExternalFormatModelGenerationInput.serialization.toJson(input),
526
+ )) as unknown as PlainObject<V1_PureModelContextData>;
527
+ const pureCode =
528
+ ((
529
+ await this.engineServerClient.transformJSONToGrammar({
530
+ modelDataContext: pmcd,
531
+ })
532
+ ).code as string | undefined) ?? '';
533
+ return pureCode;
534
+ }
503
535
 
504
536
  // ------------------------------------------- Schema Import -------------------------------------------
505
537
 
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  import {
18
+ assertNonEmptyString,
18
19
  guaranteeNonEmptyString,
19
20
  guaranteeNonNullable,
20
21
  } from '@finos/legend-shared';
@@ -45,7 +46,10 @@ import {
45
46
  GenerationPropertyItem,
46
47
  getGenerationPropertyItemType,
47
48
  } from '../../../../../graphManager/action/generation/GenerationConfigurationDescription';
48
- import type { V1_GenerationConfigurationDescription } from './generation/V1_GenerationConfigurationDescription';
49
+ import type {
50
+ V1_GenerationConfigurationDescription,
51
+ V1_GenerationProperty,
52
+ } from './generation/V1_GenerationConfigurationDescription';
49
53
  import type { V1_CompilationError } from './compilation/V1_CompilationError';
50
54
  import type { V1_ParserError } from './grammar/V1_ParserError';
51
55
  import {
@@ -64,6 +68,8 @@ import {
64
68
  import { V1_TaggedValue } from '../model/packageableElements/domain/V1_TaggedValue';
65
69
  import { V1_TagPtr } from '../model/packageableElements/domain/V1_TagPtr';
66
70
  import { V1_StereotypePtr } from '../model/packageableElements/domain/V1_StereotypePtr';
71
+ import type { V1_ExternalFormatDescription } from './externalFormat/V1_ExternalFormatDescription';
72
+ import { ExternalFormatDescription } from '../../../../../graphManager/action/externalFormat/ExternalFormatDescription';
67
73
 
68
74
  export const V1_buildLightQuery = (
69
75
  protocol: V1_LightQuery,
@@ -299,6 +305,57 @@ export const V1_buildImportConfigurationDescription = (
299
305
  return metamodel;
300
306
  };
301
307
 
308
+ export const V1_buildGenerationProperty = (
309
+ protocol: V1_GenerationProperty,
310
+ ): GenerationProperty => {
311
+ const metamodel = new GenerationProperty();
312
+ metamodel.name = guaranteeNonNullable(
313
+ protocol.name,
314
+ `Generation property 'name' field is missing`,
315
+ );
316
+ metamodel.description = guaranteeNonNullable(
317
+ protocol.description,
318
+ `Generation property 'description' field is missing`,
319
+ );
320
+ metamodel.type = getGenerationPropertyItemType(
321
+ guaranteeNonNullable(
322
+ protocol.type,
323
+ `Generation property 'type' field is missing`,
324
+ ),
325
+ );
326
+ if (protocol.items) {
327
+ const generationPropertyItem = new GenerationPropertyItem();
328
+ generationPropertyItem.types = protocol.items.types.map(
329
+ getGenerationPropertyItemType,
330
+ );
331
+ generationPropertyItem.enums = protocol.items.enums;
332
+ metamodel.items = generationPropertyItem;
333
+ }
334
+ metamodel.defaultValue = protocol.defaultValue;
335
+ metamodel.required = protocol.required;
336
+ return metamodel;
337
+ };
338
+ export const V1_buildExternalFormatDescription = (
339
+ protocol: V1_ExternalFormatDescription,
340
+ ): ExternalFormatDescription => {
341
+ assertNonEmptyString(
342
+ protocol.name,
343
+ `External configuration description 'name' field is missing`,
344
+ );
345
+ const metamodel = new ExternalFormatDescription(protocol.name);
346
+ metamodel.contentTypes = protocol.contentTypes;
347
+ // model generation
348
+ metamodel.supportsModelGeneration = protocol.supportsModelGeneration;
349
+ metamodel.modelGenerationProperties = protocol.modelGenerationProperties.map(
350
+ V1_buildGenerationProperty,
351
+ );
352
+ // schema generation
353
+ metamodel.supportsSchemaGeneration = protocol.supportsSchemaGeneration;
354
+ metamodel.schemaGenerationProperties =
355
+ protocol.schemaGenerationProperties.map(V1_buildGenerationProperty);
356
+ return metamodel;
357
+ };
358
+
302
359
  export const V1_buildGenerationOutput = (
303
360
  protocol: V1_GenerationOutput,
304
361
  ): GenerationOutput => {
@@ -327,34 +384,7 @@ export const V1_buildGenerationConfigurationDescription = (
327
384
  protocol.label,
328
385
  `Generation configuration description 'label' field is missing`,
329
386
  );
330
- metamodel.properties = protocol.properties.map((_property) => {
331
- const property = new GenerationProperty();
332
- property.name = guaranteeNonNullable(
333
- _property.name,
334
- `Generation property 'name' field is missing`,
335
- );
336
- property.description = guaranteeNonNullable(
337
- _property.description,
338
- `Generation property 'description' field is missing`,
339
- );
340
- property.type = getGenerationPropertyItemType(
341
- guaranteeNonNullable(
342
- _property.type,
343
- `Generation property 'type' field is missing`,
344
- ),
345
- );
346
- if (_property.items) {
347
- const generationPropertyItem = new GenerationPropertyItem();
348
- generationPropertyItem.types = _property.items.types.map(
349
- getGenerationPropertyItemType,
350
- );
351
- generationPropertyItem.enums = _property.items.enums;
352
- property.items = generationPropertyItem;
353
- }
354
- property.defaultValue = _property.defaultValue;
355
- property.required = _property.required;
356
- return property;
357
- });
387
+ metamodel.properties = protocol.properties.map(V1_buildGenerationProperty);
358
388
  metamodel.generationMode = guaranteeNonNullable(
359
389
  Object.values(GenerationMode).find(
360
390
  (mode) => mode === protocol.generationMode,